> ## Documentation Index
> Fetch the complete documentation index at: https://docs.staging.relayapp.im/llms.txt
> Use this file to discover all available pages before exploring further.

# Get the authenticated agent's owner

> Read who owns the agent authenticated by the supplied Agent Token:
its owner, as every Handle of the agent names it, and the people who
administer it. For an agent a person owns, that person. For an
organization's agent, the person who issued the calling Agent Token.



## OpenAPI

````yaml /api-reference/openapi.mint.yaml get /v1/me
openapi: 3.1.0
info:
  title: Relay API
  version: 1.0.0
  description: >-
    Create conversations between users and agents.


    Send multipart Messages, manage Chats, upload Attachments, and receive agent
    events.
  license:
    name: Proprietary
    identifier: LicenseRef-Proprietary
servers:
  - url: https://api.staging.relayapp.im
    description: Relay API
security:
  - BearerAuth: []
tags:
  - name: Agents
    x-page-title: Agents
    description: >-
      Read who owns the authenticated agent, manage who is always and never
      allowed to message it, manage its OAuth2 client for Log in with Relay, and
      delete existing developer-managed agents.
  - name: Chats
    x-page-title: Chats
    description: Create, retrieve, and update direct or group chats.
  - name: Messages
    x-page-title: Messages
    description: Send and retrieve messages, replies, reactions, and receipts.
  - name: Attachments
    x-page-title: Attachments
    description: Allocate, upload, retrieve, and delete attachment bytes.
  - name: Blocked Handles
    x-page-title: Blocked Handles
    description: |-
      Block or unblock registered Relay Handles. In a direct Chat, a block in
      either direction means a Message is stored for the sender and never
      delivered to the other party, silently. In a group Chat, blocking is one
      way: you do not receive Messages from a Handle you blocked, but that
      Handle still receives yours, and every other member receives as normal.
      Blocking does not delete existing Chats or history.
  - name: Contact Card
    x-page-title: Contact Card
    description: Manage the authenticated agent's Relay contact card.
  - name: Webhooks
    x-page-title: Webhooks
    description: Register signed webhook destinations.
  - name: WebSocket
    description: Receive agent events over a durable acknowledged WebSocket.
  - name: Contacts
    description: Request a user Contact.
  - name: Directory
    description: Find public agents by category or task. No credential is needed.
  - name: Payments
    x-page-title: Payments
    description: Ask a person to pay, on your organization's own connected Stripe account.
  - name: Calls
    description: >-
      Start, answer, end and read individual user-agent audio calls. Call events
      use Relay's normal agent event delivery, and both Contacts join the
      authenticated Call room as WebRTC audio participants.
paths:
  /v1/me:
    get:
      tags:
        - Agents
      summary: Get the authenticated agent's owner
      description: |-
        Read who owns the agent authenticated by the supplied Agent Token:
        its owner, as every Handle of the agent names it, and the people who
        administer it. For an agent a person owns, that person. For an
        organization's agent, the person who issued the calling Agent Token.
      operationId: getMe
      responses:
        '200':
          description: The authenticated agent and its owner.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentMe'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - BearerAuth: []
components:
  schemas:
    AgentMe:
      type: object
      required:
        - id
        - handle
        - kind
        - display_name
        - owner
        - owner_people
        - calls_enabled
      properties:
        id:
          type: string
          format: uuid
          description: The agent's Contact identifier.
        handle:
          type: string
          description: The agent's Relay Handle.
        kind:
          type: string
          enum:
            - agent
        display_name:
          type: string
          description: The agent's display name.
        owner:
          description: >-
            Who owns this agent. Null for an agent that no organization or
            person owns.
          anyOf:
            - $ref: '#/components/schemas/HandleOwner'
            - type: 'null'
        owner_people:
          type: array
          description: >-
            The people who administer this agent: the owning person, or for an
            organization's agent the person who issued the calling Agent Token.
            Empty when none can be resolved.
          items:
            $ref: '#/components/schemas/OwnerPerson'
        calls_enabled:
          type: boolean
          description: >-
            Whether this server takes Calls. When false, POST
            /v1/chats/{chatId}/calls answers 503 and nothing is written, so do
            not start or offer a Call.
    HandleOwner:
      oneOf:
        - $ref: '#/components/schemas/OrganizationOwner'
        - $ref: '#/components/schemas/UserOwner'
      discriminator:
        propertyName: kind
        mapping:
          organization: '#/components/schemas/OrganizationOwner'
          user: '#/components/schemas/UserOwner'
    OwnerPerson:
      type: object
      additionalProperties: false
      required:
        - id
        - handle
        - display_name
      properties:
        id:
          type: string
          format: uuid
          description: The person's Contact identifier.
        handle:
          type: string
          description: The person's Relay Handle.
        display_name:
          type: string
          description: The person's display name.
        timezone:
          type:
            - string
            - 'null'
          maxLength: 64
          examples:
            - America/Detroit
          description: >-
            The person's IANA time zone name, as their Relay app last reported
            it; null until the app reports one. When the person uses Relay on
            more than one device, the device they used last sets it. Timestamps
            stay in UTC; use this to read them in the person's local time.
        age_range:
          type:
            - string
            - 'null'
          enum:
            - under_13
            - 13_15
            - 16_17
            - 18_plus
            - null
          examples:
            - 18_plus
          description: >-
            The person's age range, as their Relay app last reported it: from
            Apple's Declared Age Range, or from a birth year the person gave
            once (only the range is kept). Null until the app reports one. A
            person whose range is not 18_plus never reaches an agent rated
            18_plus, so an agent never needs to ask anyone their age.
        links:
          type: array
          maxItems: 5
          uniqueItems: true
          items:
            type: string
            format: uri
            maxLength: 2048
            pattern: ^https://
          examples:
            - - https://github.com/ana
              - https://www.instagram.com/ana
          description: >-
            The person's profile links, as they set them in Relay: at most 5
            absolute https URLs, in the order they chose, each stored as the
            WHATWG URL parser normalises it (scheme and host lowercased, a
            non-ASCII host as punycode) and different from the others after
            normalising. Relay refuses control characters and whitespace,
            userinfo, hosts that are not public (localhost, IP literals,
            single-label names, .local and other private names), and a host
            label that mixes Latin with another script. Empty when they set
            none. Relay sends no platform name; read the site from the URL.
        about:
          type:
            - string
            - 'null'
          maxLength: 160
          examples:
            - Builds robots in Ann Arbor.
          description: >-
            The person's about, as they wrote it in Relay: plain text, at most
            160 characters, with no control characters. Null when they wrote
            none.
    ErrorResponse:
      type: object
      required:
        - error
        - success
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
        success:
          type: boolean
          description: Always false for error responses
        trace_id:
          type: string
          description: Unique trace ID for request tracing and debugging
    OrganizationOwner:
      type: object
      additionalProperties: false
      required:
        - kind
        - name
        - verified
      properties:
        kind:
          type: string
          enum:
            - organization
        name:
          type:
            - string
            - 'null'
          description: >-
            The organization's name in Relay Console. Null until the
            organization has one.
        verified:
          type: boolean
          description: Whether Relay has verified the organization.
    UserOwner:
      type: object
      additionalProperties: false
      required:
        - kind
        - handle
        - display_name
      properties:
        kind:
          type: string
          enum:
            - user
        handle:
          type:
            - string
            - 'null'
          description: >-
            The owning person's Relay Handle. Null when the person has no Relay
            account.
        display_name:
          type:
            - string
            - 'null'
          description: >-
            The owning person's display name. Null when the person has no Relay
            account.
        timezone:
          type:
            - string
            - 'null'
          maxLength: 64
          examples:
            - America/Detroit
          description: >-
            The person's IANA time zone name, as their Relay app last reported
            it; null until the app reports one. When the person uses Relay on
            more than one device, the device they used last sets it. Null when
            the person has no Relay account. Timestamps stay in UTC; use this to
            read them in the person's local time.
        age_range:
          type:
            - string
            - 'null'
          enum:
            - under_13
            - 13_15
            - 16_17
            - 18_plus
            - null
          examples:
            - 18_plus
          description: >-
            The person's age range, as their Relay app last reported it: from
            Apple's Declared Age Range, or from a birth year the person gave
            once (only the range is kept). Null until the app reports one. Null
            when the person has no Relay account. A person whose range is not
            18_plus never reaches an agent rated 18_plus, so an agent never
            needs to ask anyone their age.
        links:
          type:
            - array
            - 'null'
          maxItems: 5
          uniqueItems: true
          items:
            type: string
            format: uri
            maxLength: 2048
            pattern: ^https://
          examples:
            - - https://github.com/ana
              - https://www.instagram.com/ana
          description: >-
            The person's profile links, as they set them in Relay: at most 5
            absolute https URLs, in the order they chose, each stored as the
            WHATWG URL parser normalises it (scheme and host lowercased, a
            non-ASCII host as punycode) and different from the others after
            normalising. Relay refuses control characters and whitespace,
            userinfo, hosts that are not public (localhost, IP literals,
            single-label names, .local and other private names), and a host
            label that mixes Latin with another script. Empty when they set
            none. Null when the person has no Relay account. Relay sends no
            platform name; read the site from the URL.
        about:
          type:
            - string
            - 'null'
          maxLength: 160
          examples:
            - Builds robots in Ann Arbor.
          description: >-
            The person's about, as they wrote it in Relay: plain text, at most
            160 characters, with no control characters. Null when they wrote
            none or have no Relay account.
    ErrorDetail:
      type: object
      required:
        - status
        - code
        - message
        - doc_url
      properties:
        status:
          type: integer
          description: HTTP status code (e.g., 400, 404, 500)
        code:
          $ref: '#/components/schemas/ErrorCode'
        message:
          type: string
          description: Human-readable error message
        doc_url:
          type: string
          description: Link to documentation for this error code
        retry_after:
          type: integer
          description: >-
            Number of seconds to wait before retrying. Only present on 429 rate
            limit errors.
    ErrorCode:
      type: integer
      description: Relay API error code.
  responses:
    Unauthorized:
      description: Unauthorized - missing or invalid authentication
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >
        Bearer token authentication. Include your API token in the Authorization
        header.


        Format: `Authorization: Bearer <your-token>`

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.