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

# Get call data by external ID

> Get call data by externalId.

Pull call data by `externalId`, Strada's correlation ID for inbound SIP calls. Same response as [phone lookup](/api-reference/calls/get-call-data-by-phone) — written via **Set Call Session Data**, only returned while the TTL is active.

```bash theme={null}
curl https://api.getstrada.com/api/calls/external/my-external-id \
  -H "Authorization: Bearer $YOUR_API_KEY"
```


## OpenAPI

````yaml get /api/calls/external/{externalId}
openapi: 3.1.0
info:
  title: Strada Voice API
  version: 1.0.0
  description: API for managing voice calls
servers:
  - url: https://api.getstrada.com
    description: Production server
security: []
paths:
  /api/calls/external/{externalId}:
    get:
      tags:
        - Calls
      summary: Get call data by external ID
      description: Get call data by externalId.
      parameters:
        - name: externalId
          in: path
          required: true
          schema:
            type: string
          description: Inbound call externalId
      responses:
        '200':
          description: Successfully retrieved call data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallDataResponse'
        '403':
          description: Forbidden - invalid authentication or authorization
        '404':
          description: No inbound call found for this external ID
      security:
        - bearerAuth: []
components:
  schemas:
    CallDataResponse:
      type: object
      description: Call data with TTL, plus linked call record.
      properties:
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Key-value data from Set Call Session Data, or null if expired
        ttl:
          type: integer
          nullable: true
          description: Seconds until data expires
        latestCall:
          allOf:
            - $ref: '#/components/schemas/Call'
          nullable: true
          description: Linked call record, or null
    Call:
      type: object
      properties:
        callId:
          type: string
        agentId:
          type: string
        createdAt:
          type: string
          format: date-time
        status:
          type: string
          enum:
            - queued
            - ringing
            - in-progress
            - ended
            - busy
            - canceled
            - failed
            - no-answer
        type:
          type: string
          enum:
            - inboundPhoneCall
            - outboundPhoneCall
        campaignName:
          type: string
        startedAt:
          type: string
          format: date-time
        recordingUrl:
          type: string
        endedAt:
          type: string
          format: date-time
        endedBy:
          type: string
          enum:
            - Agent ended the call
            - Customer ended the call
            - Ended due to inactivity timeout
            - Reached maximum conversation duration
        customerNumber:
          type: string
        endedReason:
          type: string
        summary:
          type: string
        analysis:
          type: object
          additionalProperties: true
        transcript:
          type: array
          items:
            $ref: '#/components/schemas/CallMessage'
        url:
          type: string
        callVariables:
          type: object
          additionalProperties: true
        sessionVariables:
          type: object
          additionalProperties: true
          description: >-
            Key-value pairs stored during the conversation by Set Session
            Variable workflow nodes, if any
        qa:
          type: object
          description: Summary of the call's most recent QA review, if QA ran for this call
          properties:
            overallPassed:
              type: boolean
              description: >-
                Whether the call passed all criteria in its most recent QA
                review
            sentiment:
              type: string
              description: >-
                Overall sentiment label from the call's most recent QA review,
                if assigned
            rubricOutcomes:
              type: object
              additionalProperties:
                type: boolean
              description: Pass/fail outcome per QA rubric criterion name
        phoneNumber:
          type: string
        campaignParentCallIds:
          type: array
          items:
            type: string
        transferDestination:
          type: string
        externalId:
          type: string
          description: External identifier from the inbound call request, if available
      required:
        - callId
        - agentId
        - createdAt
        - status
    CallMessage:
      type: object
      properties:
        role:
          type: string
          enum:
            - bot
            - user
            - tool_call_result
        message:
          type: string
        secondsFromStart:
          type: number
        time:
          type: string
        endTime:
          type: string
        duration:
          type: number
        name:
          type: string
        result:
          type: object
        toolCall:
          type: object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: API Key authentication

````