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

# Get v1conversations 1



## OpenAPI

````yaml /api-reference/openapi.json get /v1/conversations/{id}
openapi: 3.1.0
info:
  title: Aide API
  version: '1'
  description: >-
    Aide's public API. The dashboard, personal access tokens and the MCP server
    all use these endpoints.


    **Authentication.** `Authorization: Bearer oat_…` (a teammate's access
    token) or `Authorization: Bearer aide_live_…` (a workspace API key, created
    by an owner or admin under Settings > Developers). Either is bound to one
    account; every resource is scoped to it, and another account's id answers
    404.


    **API keys** act as the workspace, not as a teammate. Operations that list
    `apiKey` under security accept them; everything else (the session, `me`,
    members, teams, billing, conversations, saved views, notifications, helpdesk
    and widget settings, and API keys themselves) answers 403
    `api_key_not_allowed`. A key with only the `read` scope gets 403
    `insufficient_scope` on writes (every method but `GET`, except `POST
    /v1/knowledge/search`, which only reads). A revoked, expired or unknown key
    answers 401 `invalid_api_key`. Requests are rate limited per key.


    **Webhooks.** Each delivery is a `POST` of the event JSON with
    `Aide-Event-Id`, `Aide-Event-Type`, `Aide-Delivery-Attempt` and
    `Aide-Signature: t=<unix seconds>,v1=<hex>`. `v1` is the HMAC-SHA256 of
    `${t}.${raw body}` keyed with the endpoint secret (`whsec_…`, the whole
    string). For 24 h after a rotation a second `v1`, signed with the previous
    secret, is included; accept the request if any `v1` matches and `t` is
    within 5 minutes. Answer 2xx within 10 s; anything else is retried with
    exponential backoff (8 attempts over about 4 h). An endpoint is disabled
    after 25 failed attempts in a row with no success for 24 h. Deduplicate on
    the event id.


    **Responses.** Successful bodies are wrapped as `{ data }`. Page-numbered
    lists add `metadata`: `total` (exact up to 10,000, then 10,000 with
    `totalIsCapped: true`), `totalIsCapped`, `perPage`, `currentPage`,
    `lastPage` and `hasMore`. `page` runs from 1 to 500, and a page that starts
    past the first 10,000 rows answers 422 `page_too_deep`. `GET
    /v1/conversations` also takes a `cursor` (not with `page`): its
    `metadata.nextCursor` pages on in the same sort without counting, and a
    cursor page has null `total`, `currentPage` and `lastPage`. Message threads
    page with `before` and `meta.nextCursor`.


    **Errors.** Every error is `{ error: { type, code, message, requestId,
    fields? } }`. Validation failures are 422 with one entry per field in
    `fields`.


    **Rate limits.** Throttled routes return `X-RateLimit-Limit` and
    `X-RateLimit-Remaining`; a 429 adds `Retry-After` and `X-RateLimit-Reset`.
servers:
  - url: https://app-api.aide.app
    description: Aide API
security: []
tags:
  - name: Account
  - name: Agent
  - name: AgentEntryPoint
  - name: AgentLinks
  - name: AgentPanelEvent
  - name: AgentPanelSessions
  - name: AgentTestConversation
  - name: Analytics
  - name: ApiKey
  - name: Attachment
  - name: Auth
  - name: Billing
  - name: ChannelActivity
  - name: ChannelConfiguration
  - name: ChannelSettings
  - name: ConnectedApp
  - name: ContactSync
  - name: Conversation
  - name: ConversationAi
  - name: ConversationCustomerContext
  - name: ConversationDraft
  - name: ConversationMacro
  - name: ConversationOrder
  - name: CustomField
  - name: EmailMailbox
  - name: EmailPreferences
  - name: GoogleSessions
  - name: HelpdeskSetting
  - name: Integration
  - name: IntegrationAiAgentRule
  - name: IntegrationSidebar
  - name: Invitation
  - name: KnowledgeCollection
  - name: KnowledgeDocument
  - name: KnowledgeEntity
  - name: KnowledgeSource
  - name: Macro
  - name: Me
  - name: Member
  - name: MessageFeedback
  - name: MessageSender
  - name: Notification
  - name: NotificationChannel
  - name: OauthAuthorization
  - name: Order
  - name: OrderAction
  - name: Plan
  - name: PolicyQuestion
  - name: Product
  - name: ProductPairing
  - name: Proposal
  - name: ReplyTemplate
  - name: RoutingRule
  - name: SavedView
  - name: Scenario
  - name: ScenarioBackfill
  - name: Schedule
  - name: SenderClassification
  - name: SenderRule
  - name: ShopifyStaffLinks
  - name: SlaPolicy
  - name: Team
  - name: Topic
  - name: TopicSuggestion
  - name: WebhookEndpoint
  - name: Widgets
paths:
  /v1/conversations/{id}:
    get:
      tags:
        - Conversation
      operationId: conversation.show
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Conversation'
                required:
                  - data
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        default:
          $ref: '#/components/responses/Error'
      security:
        - accessToken: []
components:
  headers:
    X-RateLimit-Limit:
      description: Requests allowed in the current window.
      schema:
        type: integer
    X-RateLimit-Remaining:
      description: Requests left in the current window.
      schema:
        type: integer
    Retry-After:
      description: Seconds until the window resets.
      schema:
        type: integer
    X-RateLimit-Reset:
      description: When the window resets.
      schema:
        type: string
        format: date-time
  schemas:
    Conversation:
      type: object
      properties:
        object:
          type: string
          const: conversation
        preview:
          type: string
        sla:
          type:
            - object
            - 'null'
          properties:
            status:
              type: string
            pausedReason:
              type:
                - string
                - 'null'
            breachedAt:
              type:
                - string
                - 'null'
            firstResponseDueAt:
              type:
                - string
                - 'null'
            firstResponseMetAt:
              type:
                - string
                - 'null'
            nextResponseDueAt:
              type:
                - string
                - 'null'
            policyId:
              type: string
            resolutionDueAt:
              type:
                - string
                - 'null'
            resolutionMetAt:
              type:
                - string
                - 'null'
            policyName:
              type: string
          required:
            - status
            - pausedReason
            - breachedAt
            - firstResponseDueAt
            - firstResponseMetAt
            - nextResponseDueAt
            - policyId
            - resolutionDueAt
            - resolutionMetAt
            - policyName
        csat:
          type:
            - object
            - 'null'
          properties:
            createdAt:
              type:
                - string
                - 'null'
            comment:
              type:
                - string
                - 'null'
            leg:
              type: string
            rating:
              type: number
          required:
            - createdAt
            - comment
            - leg
            - rating
        tags:
          type: array
          items:
            type: string
        topics:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              id:
                type: string
              emoji:
                type:
                  - string
                  - 'null'
              messageId:
                type: string
              confidence:
                type: number
            required:
              - name
              - id
              - emoji
              - messageId
              - confidence
        createdAt:
          type:
            - string
            - 'null'
        id:
          type: string
        status:
          type: string
        updatedAt:
          type:
            - string
            - 'null'
        locale:
          type:
            - string
            - 'null'
        externalId:
          type:
            - string
            - 'null'
        assignedToAide:
          type: boolean
        firstResponseAt:
          type:
            - string
            - 'null'
        handoffReason:
          type:
            - string
            - 'null'
        handoffState:
          type: string
        humanEngagedAt:
          type:
            - string
            - 'null'
        onHoldReason:
          type:
            - string
            - 'null'
        priority:
          type: string
        requesterRelayed:
          type: boolean
        resolvedAt:
          type:
            - string
            - 'null'
        resolvedBy:
          type:
            - string
            - 'null'
        snoozedUntil:
          type:
            - string
            - 'null'
        spamReason:
          type:
            - string
            - 'null'
        subject:
          type:
            - string
            - 'null'
        trashedAt:
          type:
            - string
            - 'null'
        waitingSince:
          type:
            - string
            - 'null'
        events:
          type: array
          items:
            type: object
            properties:
              host:
                type:
                  - string
                  - 'null'
              name:
                type:
                  - string
                  - 'null'
              state:
                type:
                  - string
                  - 'null'
              createdAt:
                type:
                  - string
                  - 'null'
              id:
                type: string
              until:
                type:
                  - string
                  - 'null'
              from:
                type:
                  - string
                  - 'null'
              reason:
                type:
                  - string
                  - 'null'
              actions:
                type: array
                items:
                  type: string
              team:
                type:
                  - object
                  - 'null'
                properties:
                  name:
                    type: string
                  id:
                    type: string
                required:
                  - name
                  - id
              to:
                type:
                  - string
                  - 'null'
              rating:
                type:
                  - number
                  - 'null'
              previous:
                type:
                  - string
                  - 'null'
                enum:
                  - automated
                  - customer
                  - form_submission
                  - ignore
                  - transcript
                  - null
              type:
                type: string
              field:
                type:
                  - string
                  - 'null'
              outcome:
                type:
                  - string
                  - 'null'
                enum:
                  - automated
                  - customer
                  - form_submission
                  - ignore
                  - transcript
                  - null
              order:
                type:
                  - object
                  - 'null'
                properties:
                  name:
                    type:
                      - string
                      - 'null'
                  status:
                    type:
                      - string
                      - 'null'
                  action:
                    type:
                      - string
                      - 'null'
                required:
                  - name
                  - status
                  - action
              command:
                type:
                  - string
                  - 'null'
              messageId:
                type:
                  - string
                  - 'null'
              actor:
                type:
                  - object
                  - 'null'
                properties:
                  name:
                    type: string
                  id:
                    type: string
                  avatarUrl:
                    type:
                      - string
                      - 'null'
                  initials:
                    type: string
                required:
                  - name
                  - id
                  - avatarUrl
                  - initials
              by:
                type: string
                enum:
                  - aide
                  - customer
                  - person
                  - system
              assignee:
                type:
                  - object
                  - 'null'
                properties:
                  name:
                    type: string
                  id:
                    type: string
                  avatarUrl:
                    type:
                      - string
                      - 'null'
                  initials:
                    type: string
                required:
                  - name
                  - id
                  - avatarUrl
                  - initials
              clock:
                type:
                  - string
                  - 'null'
              call:
                type:
                  - object
                  - 'null'
                properties:
                  provider:
                    type: string
                    const: whatsapp
                  startedAt:
                    type: string
                  outcome:
                    type: string
                    enum:
                      - answered
                      - failed
                      - missed
                      - rejected
                      - ringing
                      - voicemail
                  direction:
                    type: string
                    enum:
                      - inbound
                      - outbound
                  endedAt:
                    type:
                      - string
                      - 'null'
                  durationSeconds:
                    type:
                      - number
                      - 'null'
                  voicemailMessageId:
                    type:
                      - string
                      - 'null'
                required:
                  - provider
                  - startedAt
                  - outcome
                  - direction
                  - endedAt
                  - durationSeconds
                  - voicemailMessageId
            required:
              - host
              - name
              - state
              - createdAt
              - id
              - until
              - from
              - reason
              - actions
              - team
              - to
              - rating
              - previous
              - type
              - field
              - outcome
              - order
              - command
              - messageId
              - actor
              - by
              - assignee
              - clock
              - call
        customer:
          type:
            - object
            - 'null'
          properties:
            email:
              type:
                - string
                - 'null'
            name:
              type:
                - string
                - 'null'
            avatarUrl:
              type:
                - string
                - 'null'
            phone:
              type:
                - string
                - 'null'
            visitorId:
              type:
                - string
                - 'null'
            verified:
              type: boolean
            online:
              type: boolean
          required:
            - email
            - name
            - avatarUrl
            - phone
            - visitorId
            - verified
            - online
        team:
          type:
            - object
            - 'null'
          properties:
            name:
              type: string
            id:
              type: string
          required:
            - name
            - id
        requester:
          type:
            - object
            - 'null'
          properties:
            email:
              type:
                - string
                - 'null'
            name:
              type:
                - string
                - 'null'
            visitorId:
              type:
                - string
                - 'null'
          required:
            - email
            - name
            - visitorId
        channel:
          type: string
        automated:
          type: boolean
        topic:
          type:
            - object
            - 'null'
          properties:
            name:
              type: string
            id:
              type: string
            emoji:
              type:
                - string
                - 'null'
          required:
            - name
            - id
            - emoji
        scenarioRan:
          type: boolean
        draftReady:
          type: boolean
        assignee:
          type:
            - object
            - 'null'
          properties:
            name:
              type: string
            id:
              type: string
            avatarUrl:
              type:
                - string
                - 'null'
            initials:
              type: string
          required:
            - name
            - id
            - avatarUrl
            - initials
        numMessages:
          type: number
        numMessagesRead:
          type: number
        latestMessageIsAgentReply:
          type: boolean
        latestMessageAt:
          type: string
        latestCustomerMessageAt:
          type:
            - string
            - 'null'
        firstCustomerMessageAt:
          type:
            - string
            - 'null'
        emailSender:
          type:
            - object
            - 'null'
          properties:
            name:
              type:
                - string
                - 'null'
            address:
              type: string
            replyTo:
              type:
                - string
                - 'null'
            usesOwnDomain:
              type: boolean
          required:
            - name
            - address
            - replyTo
            - usesOwnDomain
        fieldValues:
          type: array
          items:
            type: object
            properties:
              value:
                anyOf:
                  - type: array
                    items:
                      type: string
                  - type: boolean
                  - type: number
                  - type: string
              key:
                type: string
              status:
                type: string
                enum:
                  - asked
                  - corrected
                  - extracted
                  - set_by_person
                  - set_by_rule
              scope:
                type: string
                enum:
                  - conversation
                  - customer
              fieldId:
                type: string
              setAt:
                type:
                  - string
                  - 'null'
            required:
              - value
              - key
              - status
              - scope
              - fieldId
              - setAt
        replyWindow:
          type:
            - object
            - 'null'
          properties:
            expiresAt:
              type:
                - string
                - 'null'
            state:
              type: string
              enum:
                - closed
                - human_agent_only
                - open
                - template_only
          required:
            - expiresAt
            - state
        canReply:
          type: object
          properties:
            reason:
              type:
                - string
                - 'null'
              enum:
                - medium_unsupported
                - not_in_control
                - not_verified
                - paused
                - public_policy
                - shadow
                - template_required
                - unavailable
                - unmapped_sender
                - window_closed
                - null
            allowed:
              type: boolean
            message:
              type:
                - string
                - 'null'
          required:
            - reason
            - allowed
            - message
        replyFiles:
          type: object
          properties:
            reason:
              type:
                - string
                - 'null'
            allowed:
              type: boolean
            maxBytes:
              type:
                - number
                - 'null'
          required:
            - reason
            - allowed
            - maxBytes
        scenarioRuns:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              id:
                type: string
              isActive:
                type: boolean
              priority:
                type:
                  - string
                  - 'null'
              origin:
                type: string
                enum:
                  - backfill
                  - live
              actions:
                type: array
                items:
                  type: object
                  properties:
                    value:
                      type:
                        - string
                        - 'null'
                    id:
                      type: string
                    type:
                      type: string
                    macroId:
                      type:
                        - string
                        - 'null'
                  required:
                    - value
                    - id
                    - type
                    - macroId
              skipped:
                type: array
                items:
                  type: string
              messageId:
                type: string
              feedback:
                type: object
                properties:
                  note:
                    type:
                      - string
                      - 'null'
                  isPositive:
                    type:
                      - boolean
                      - 'null'
                required:
                  - note
                  - isPositive
              applyAlways:
                type: boolean
              delay:
                type:
                  - string
                  - 'null'
              conditions:
                type: array
                items:
                  type: object
                  properties:
                    value:
                      type:
                        - string
                        - 'null'
                    id:
                      type: string
                    type:
                      type: string
                    group:
                      type: number
                    customFieldName:
                      type:
                        - string
                        - 'null'
                    fieldKey:
                      type:
                        - string
                        - 'null'
                    operator:
                      type: string
                  required:
                    - value
                    - id
                    - type
                    - group
                    - customFieldName
                    - fieldKey
                    - operator
              scenarioId:
                type: string
              ranAt:
                type:
                  - string
                  - 'null'
            required:
              - name
              - id
              - isActive
              - priority
              - origin
              - actions
              - skipped
              - messageId
              - feedback
              - applyAlways
              - delay
              - conditions
              - scenarioId
              - ranAt
      required:
        - object
        - preview
        - sla
        - csat
        - tags
        - topics
        - createdAt
        - id
        - status
        - updatedAt
        - locale
        - externalId
        - assignedToAide
        - firstResponseAt
        - handoffReason
        - handoffState
        - humanEngagedAt
        - onHoldReason
        - priority
        - requesterRelayed
        - resolvedAt
        - resolvedBy
        - snoozedUntil
        - spamReason
        - subject
        - trashedAt
        - waitingSince
        - events
        - customer
        - team
        - requester
        - channel
        - automated
        - topic
        - scenarioRan
        - draftReady
        - assignee
        - numMessages
        - numMessagesRead
        - latestMessageIsAgentReply
        - latestMessageAt
        - latestCustomerMessageAt
        - firstCustomerMessageAt
        - emailSender
        - fieldValues
        - replyWindow
        - canReply
        - replyFiles
        - scenarioRuns
    Error:
      type: object
      description: Every error response, whatever the status (app/exceptions/handler.ts).
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - api_error
                - authentication_error
                - invalid_request_error
                - permission_error
                - rate_limit_error
            code:
              type: string
              description: Stable, machine-readable error code.
            message:
              type: string
            requestId:
              type: string
            fields:
              type: array
              description: Per-field problems, on validation errors.
              items:
                type: object
                properties:
                  field:
                    type: string
                  code:
                    type: string
                  message:
                    type: string
                required:
                  - field
                  - code
                  - message
          required:
            - type
            - code
            - message
            - requestId
      required:
        - error
  responses:
    Unauthenticated:
      description: Missing or invalid credentials (`authentication_error`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The credential may not do this (`permission_error`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: No such resource for this credential (`not_found`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Rate limited (`too_many_requests`).
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        Retry-After:
          $ref: '#/components/headers/Retry-After'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Error:
      description: Any other error, in the same envelope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    accessToken:
      type: http
      scheme: bearer
      bearerFormat: oat_…
      description: An access token, bound to one account.

````

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