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

# Get call

> Fetch full details for a call by ID — transcript, AI summary, and transfer metadata.

## When to use this endpoint

Call webhooks include `data.callId` and basic metadata (direction, duration, transfer flags). `CALL` events from [`GET /leads/{leadId}/events`](/api-reference/leads/list-events) carry the same metadata, and the event's top-level `id` field is the call ID. Neither includes the full transcript or every transfer detail.

Use `GET /calls/{callId}` to enrich a call after a webhook fires — for example, to pull the AI-generated summary and full transcript into your CRM or data warehouse.

## Recordings

Call recordings are **not** returned by this endpoint today. Use the Apten dashboard for playback until recording access is added to the public API.

## Webchat calls

For webchat voice calls, the response includes `sessionId` instead of `leadId`.


## OpenAPI

````yaml get /calls/{callId}
openapi: 3.0.1
info:
  title: AttentPublicAPI
  version: '2024-05-17T21:09:13Z'
servers:
  - url: https://api.attent.app/v1
security: []
paths:
  /calls/{callId}:
    get:
      tags:
        - Calls
      description: >-
        Fetch full details for a call by ID — transcript, AI summary, and
        transfer metadata.
      operationId: getCall
      parameters:
        - name: callId
          in: path
          required: true
          schema:
            type: string
          description: >-
            Call ID from `data.callId` (webhooks) or the event `id` (CALL
            events).
      responses:
        '200':
          description: Call details fetched successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/callDetail'
              example:
                id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                leadId: c4f23a1b-d8e5-4f67-90c1-2a5b8d3e9f7c
                direction: OUTBOUND
                callStatus: COMPLETE
                durationSeconds: 145
                createdAt: '2026-06-15T14:30:00.000Z'
                updatedAt: '2026-06-15T14:32:25.000Z'
                summary: >-
                  Customer inquired about pricing and requested a follow-up
                  meeting.
                transcript:
                  - role: assistant
                    content: Hi, this is Apten calling about your inquiry.
                    startTime: '2026-06-15T14:30:01.000Z'
                    endTime: '2026-06-15T14:30:05.000Z'
                  - role: user
                    content: Yes, I had some questions about pricing.
                    startTime: '2026-06-15T14:30:06.000Z'
                    endTime: '2026-06-15T14:30:10.000Z'
                isTransfer: false
                endedBy: LEAD
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Call not found, or the call belongs to another organization.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: 'Resource not found: Call'
        '500':
          $ref: '#/components/responses/500'
      security:
        - api_key: []
components:
  schemas:
    callDetail:
      type: object
      description: Full call record returned by `GET /calls/{callId}`.
      properties:
        id:
          type: string
          description: Stable unique identifier for the call.
        leadId:
          type: string
          description: The lead (room) this call belongs to. Absent for webchat-only calls.
        sessionId:
          type: string
          description: >-
            The webchat session ID. Present for webchat voice calls instead of
            `leadId`.
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
        callStatus:
          type: string
          description: >-
            Current or final status of the call (e.g. `COMPLETE`, `NO_ANSWER`,
            `IN_PROGRESS`).
        durationSeconds:
          type: integer
          description: Length of the call in seconds.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        summary:
          type: string
          description: >-
            AI-generated summary of the conversation. Present after the call is
            processed; may be absent immediately after a terminal webhook if
            processing is still in flight.
        transcript:
          type: array
          description: >-
            Ordered transcript turns. Empty array if no transcript is stored
            yet.
          items:
            $ref: '#/components/schemas/transcriptMessage'
        isTransfer:
          type: boolean
          description: '`true` if this was a transfer to a human agent.'
        midCallTransfer:
          type: boolean
          description: '`true` if a transfer happened mid-call.'
        hasVoicemail:
          type: boolean
          description: '`true` if the call left a voicemail.'
        transferNumber:
          type: string
          description: E.164 number the call was transferred to, if applicable.
        fallbackTransferNumber:
          type: string
          description: Fallback transfer number used when the primary transfer failed.
        transferAnswerStatus:
          type: string
          enum:
            - answered
            - no_answer
            - pending
        transferAnsweredBy:
          type: string
          enum:
            - human
            - machine_start
            - machine_end_beep
            - machine_end_silence
            - machine_end_other
            - unknown
        transferFallbackAttempted:
          type: boolean
        transferFallbackAnswerStatus:
          type: string
          enum:
            - answered
            - no_answer
            - pending
        transferFallbackAnsweredBy:
          type: string
          enum:
            - human
            - machine_start
            - machine_end_beep
            - machine_end_silence
            - machine_end_other
            - unknown
        midCallTransferDuration:
          type: integer
          description: >-
            Seconds the lead was connected to a transfer recipient during a
            mid-call transfer.
        endedBy:
          type: string
          enum:
            - LEAD
            - AGENT
            - SYSTEM
            - UNKNOWN
        aiCallWithoutHumanResponse:
          type: boolean
          description: '`true` if the lead never spoke during an AI-initiated call.'
        isFollowUp:
          type: boolean
        isAiInitiated:
          type: boolean
        hitCallScreening:
          type: boolean
        reachedHumanAfterScreening:
          type: boolean
        isForward:
          type: boolean
      required:
        - id
        - direction
        - callStatus
        - durationSeconds
        - createdAt
        - updatedAt
        - transcript
    transcriptMessage:
      type: object
      properties:
        role:
          type: string
          enum:
            - assistant
            - user
          description: '`assistant` for Apten AI; `user` for the lead or caller.'
        content:
          type: string
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
      required:
        - role
        - content
  responses:
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
            example:
              message: 'Invalid format for field: phone'
    '401':
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
            example:
              message: Unauthorized
    '500':
      description: Internal Server Error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
            example:
              message: Internal Server Error
  securitySchemes:
    api_key:
      type: apiKey
      name: x-api-key
      in: header

````