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

# Get a conversation by ID

> Retrieve a single conversation, including turns, metrics, and function events. Served from api.{region}.poly.ai, not the api.{region}-1.platform.polyai.app host.



## OpenAPI

````yaml GET /v1/agents/{agentId}/conversations/{conversationId}
openapi: 3.0.1
info:
  title: PolyAI Conversations API v3
  description: >-
    Query conversations, recordings, and debug chat for a PolyAI agent.


    Compared to v1, v3:

    - Exposes additional turn-level fields (latency, translated_user_input,
    english_agent_response).

    - Normalizes empty text fields as empty strings rather than null.
  license:
    name: MIT
  version: 3.0.0
servers:
  - url: https://api.us-1.platform.polyai.app
    description: US base url
  - url: https://api.uk-1.platform.polyai.app
    description: UK base url
  - url: https://api.euw-1.platform.polyai.app
    description: EUW base url
security:
  - ApiKeyAuth: []
tags:
  - name: Conversations
    description: Query conversations and audio recordings.
  - name: Debug Chat
    description: Create and respond to debug chat sessions for testing an agent.
paths:
  /v1/agents/{agentId}/conversations/{conversationId}:
    get:
      tags:
        - Conversations
      summary: Get a conversation by ID
      description: >-
        Retrieves a single conversation, including turn-by-turn transcript,
        metrics, and function events.


        **Host:** this endpoint is served from `api.{region}.poly.ai` — *not*
        the `api.{region}-1.platform.polyai.app` host used by the
        list-conversations and audio endpoints.
      parameters:
        - name: agentId
          in: path
          description: Agent ID.
          required: true
          schema:
            type: string
        - name: conversationId
          in: path
          description: Unique conversation ID.
          required: true
          schema:
            type: string
          example: CAabcd1234567abcdef1250065d4fc7389
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationDetailResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      servers:
        - url: https://api.us.poly.ai
          description: US base url
        - url: https://api.eu.poly.ai
          description: EU base url
        - url: https://api.uk.poly.ai
          description: UK base url
        - url: https://api.studio.poly.ai
          description: Studio base url
components:
  schemas:
    ConversationDetailResponse:
      type: object
      description: >-
        Public-facing conversation detail (includes turns, metrics, and function
        events).
      required:
        - conversationId
        - accountId
        - projectId
      properties:
        conversationId:
          type: string
          description: Unique ID for this conversation.
          example: CAabcd1234567abcdef1250065d4fc7389
        accountId:
          type: string
          description: ID of the customer account this conversation is under.
        projectId:
          type: string
          description: ID of the project this conversation is under.
        createdAt:
          type: string
          format: date-time
        startedAt:
          type: string
          format: date-time
        finishedAt:
          type: string
          format: date-time
        channel:
          type: string
          description: Conversation medium (e.g. `WEBCHAT`, `VOICE-SIP`).
        fromNumber:
          type: string
          description: Caller phone number.
        toNumber:
          type: string
          description: Agent phone number.
        language:
          type: string
          description: Conversation language code.
        variantId:
          type: string
          description: Variant ID the conversation ran in.
        clientEnv:
          type: string
          description: Client environment (`sandbox`, `pre-release`, or `live`).
        totalDuration:
          type: integer
          description: Total call duration in seconds.
        polyaiDuration:
          type: integer
          description: PolyAI-handled duration in seconds.
        duration:
          type: integer
          description: Duration in seconds.
        inProgress:
          type: boolean
          description: Whether the conversation is still in progress.
        handoff:
          type: boolean
          description: Whether handoff occurred.
        handoffDestination:
          type: string
          description: If multiple handoff destinations exist, which one was used.
        handoffReason:
          type: string
          description: Brief handoff reason.
        direction:
          type: string
          description: Call direction (e.g. `inbound`, `outbound`).
        tags:
          type: array
          description: Tags applied to the conversation.
          items:
            type: string
        polyScore:
          type: number
          description: PolyScore quality measure.
        shortSummary:
          type: string
          description: Short summary of the conversation.
        deploymentId:
          type: string
          description: Deployment ID.
        note:
          type: string
          description: Free-text note saved on the conversation.
        audioUrl:
          type: string
          description: URL to the audio recording.
        turns:
          type: array
          description: Ordered list of conversation turns.
          items:
            $ref: '#/components/schemas/ConversationTurn'
        metrics:
          type: object
          description: Custom metrics recorded for the conversation.
        functionEvents:
          type: object
          description: Function execution events that occurred during the conversation.
    ConversationTurn:
      type: object
      description: Info about a single turn.
      properties:
        user_input:
          type: string
          description: >-
            The transcription of what the user spoke or typed. May be an empty
            string when no input is present.
        user_input_dtmf:
          type: string
          description: >-
            DTMF digits captured for this turn (e.g. keypad input). May be an
            empty string when no DTMF was entered.
        user_input_datetime:
          type: string
          format: date-time
          description: >-
            The time when the agent received the user's input. For speech, this
            is when ASR finished transcribing.
        agent_response:
          type: string
          description: >-
            The transcription of the agent's response to the user. May be an
            empty string when no response was produced.
        agent_response_datetime:
          type: string
          format: date-time
          description: >-
            The time when the agent responded. For speech, this is when the
            agent started speaking.
        latency:
          type: number
          description: >-
            Agent latency for this turn (for example, time in seconds between
            receiving user input and starting the agent response).
        translated_user_input:
          type: string
          description: >-
            User input translated into the agent's working language (typically
            English) if translation is enabled. May be an empty string when not
            applicable.
        english_agent_response:
          type: string
          description: >-
            Agent response in English when translation is enabled. May be an
            empty string when not applicable.
        intents:
          type: array
          description: The list of intents that were found in this turn's input.
          items:
            type: string
        entities:
          type: array
          description: The list of entities that were found in this turn's input.
          items:
            type: object
            description: Mapping entity name -> value(s)
            additionalProperties:
              oneOf:
                - type: string
                - type: array
                  items:
                    type: string
        is_ood:
          type: boolean
          description: Whether the turn is classified as Out of Domain (OOD).
        is_silence:
          type: boolean
          description: Whether the turn is classified as a silence.
    Error:
      type: object
      properties:
        error_message:
          description: Reason for error.
          type: string
  responses:
    BadRequest:
      description: Bad Request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Not Found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalError:
      description: Internal Server Error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Contact your PolyAI representative.

````