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

# Get an External Call Recording with the API

> Retrieve an external call session and its chronological recording legs, including transcripts and summaries when processing completes.

Returns the session-level call data plus each visible recording leg in chronological order. Transcripts and summaries are `null` while processing is incomplete.

`recording_presigned_urls` contains a URL for every playable recording in the session, in chronological order. URLs expire after one hour. Recordings awaiting required audio redaction are omitted until they are playable. If URL signing temporarily fails for a recording, its URL is omitted and the call data is still returned. The array is empty when no recording URLs are available.

Learn how Simple AI represents call data in the [AI phone calls guide](/calls).

Recording links in `recording_presigned_urls` are temporary HTTPS playback URLs. Use each complete URL as returned, including its query parameters; the hostname and URL structure may change. Anyone with a valid link can access its recording until the link expires.


## OpenAPI

````yaml GET /external_calls/{uuid}
openapi: 3.1.0
info:
  title: Public API v1
  description: >-
    Public API v1 requiring API keys.


    **Timestamps:** All datetime fields in API responses are returned in UTC
    using ISO 8601 format (e.g., `2024-01-15T14:30:00Z`). When filtering by date
    parameters, provide timestamps in ISO 8601 format.
  version: 0.1.0
servers:
  - url: https://api.usesimple.ai/api/v1
    description: Production API Server
security: []
paths:
  /external_calls/{uuid}:
    get:
      tags:
        - External Calls
      summary: Get External Call
      description: >-
        Fetch one external call and its visible recording legs, transcripts, and
        summaries.
      operationId: get_external_call
      parameters:
        - name: uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: External call returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalCallDetails'
        '404':
          description: External call not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    ExternalCallDetails:
      allOf:
        - $ref: '#/components/schemas/ExternalCallSummary'
        - type: object
          required:
            - recordings
          properties:
            recordings:
              type: array
              items:
                $ref: '#/components/schemas/ExternalCallRecording'
      title: External Call Details
    ErrorResponse:
      type: object
      required:
        - status
        - success
        - error
        - errors
      properties:
        status:
          type: string
          default: error
        success:
          type: boolean
          default: false
        error:
          type: string
          title: Error
        errors:
          items:
            type: string
          type: array
          title: Errors
      title: Error Response
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ExternalCallSummary:
      type: object
      required:
        - id
        - external_call_id
        - title
        - direction
        - from_number
        - to_number
        - duration_seconds
        - started_at
        - status
        - recording_count
        - source
        - created_at
        - updated_at
        - recording_presigned_urls
      properties:
        id:
          type: string
          format: uuid
        external_call_id:
          type: string
        title:
          anyOf:
            - type: string
            - type: 'null'
        direction:
          anyOf:
            - type: string
              enum:
                - inbound
                - outbound
            - type: 'null'
        from_number:
          anyOf:
            - type: string
            - type: 'null'
        to_number:
          anyOf:
            - type: string
            - type: 'null'
        duration_seconds:
          anyOf:
            - type: integer
            - type: 'null'
        started_at:
          type: string
          format: date-time
        status:
          type: string
          enum:
            - processing
            - transcribed
            - error
        recording_count:
          type: integer
          minimum: 0
        source:
          anyOf:
            - $ref: '#/components/schemas/ExternalCallSource'
            - type: 'null'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        recording_presigned_urls:
          type: array
          items:
            type: string
            format: uri
          description: >-
            Presigned URLs for all playable recordings in chronological order.
            External calls can have multiple recordings per session. URLs expire
            after one hour. Deleted, excluded, and recordings awaiting required
            audio redaction are omitted; an empty array means no recordings are
            currently playable. If URL signing fails for a recording, its URL is
            omitted and the call data is still returned.
      title: External Call Summary
    ExternalCallRecording:
      type: object
      required:
        - id
        - file_name
        - status
        - started_at
        - transcript
        - summary
        - created_at
        - updated_at
      properties:
        id:
          type: string
          format: uuid
        file_name:
          type: string
        status:
          type: string
          enum:
            - pending
            - transcribing
            - transcribed
            - error
        started_at:
          type: string
          format: date-time
        transcript:
          anyOf:
            - type: array
              items:
                $ref: '#/components/schemas/ExternalCallTranscriptUtterance'
            - type: 'null'
        summary:
          anyOf:
            - type: string
            - type: 'null'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      title: External Call Recording
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    ExternalCallSource:
      type: object
      required:
        - id
        - name
        - provider
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        provider:
          type: string
      title: External Call Source
    ExternalCallTranscriptUtterance:
      type: object
      required:
        - speaker
        - text
        - start
        - end
        - confidence
        - channel
      properties:
        speaker:
          type: string
        text:
          type: string
        start:
          type: number
          description: Start time in milliseconds.
        end:
          type: number
          description: End time in milliseconds.
        confidence:
          type: number
        channel:
          anyOf:
            - type: string
            - type: 'null'
      title: External Call Transcript Utterance
  securitySchemes:
    APIKeyHeader:
      type: http
      scheme: bearer
      description: 'Your API key, sent as `Authorization: Bearer YOUR_API_KEY`'

````

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