---
title: "Get a call"
method: GET
path: "/v3/voice/calls/{id}"
tags: ["Voice"]
---

# Get a call

`GET /v3/voice/calls/{id}`

## Request

- Base URL: `https://api.sent.dm`
- URL: `https://api.sent.dm/v3/voice/calls/{id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Retrieves one of your calls by id: the parties, the owning number, the phone number the call was connected to and the caller id it showed, the current status with its failure reason, duration, price with the billed legs and what each cost, recording availability, and a timeline of when the call entered each status.

## Path parameters

- `id` string, required

## Headers

- `x-profile-id` string, uuid

## Response `200`

Call retrieved successfully

- SentDmServicesEndpointsCustomerAPIv3SharedApiResponseOfCallResponse: Standard API response envelope for all v3 endpoints
  - `success` boolean: Indicates whether the request was successful
  - `data` SentDmServicesEndpointsCustomerAPIv3VoiceCallsResponsesCallResponse: A call record
    - `id` string: The call id, the same one carried by the call.request question and every call webhook
    - `mode` string: The calling mode: inapp for a call between people in your app and phone numbers, routed by your number's callback URL; agent for a call one of your voice agents answered
    - `agent_id` string, nullable: The voice agent that answered the call, such as agent_9f2ab000-0000-4000-8000-000000000001. Null for an inapp call
    - `direction` string: outbound for a call placed from your app, inbound for a call to one of your numbers
    - `from` SentDmServicesEndpointsCustomerAPIv3VoiceCallsResponsesCallParty: One end of a call
      - `kind` string: user for one of your app users, number for a phone number, conference for a room, anonymous for a caller who withheld their number
      - `value` string, nullable: The app user's identity, the phone number in E.164 format, or the room name. Null when the kind is anonymous
    - `to` SentDmServicesEndpointsCustomerAPIv3VoiceCallsResponsesCallParty: One end of a call
      - `kind` string: user for one of your app users, number for a phone number, conference for a room, anonymous for a caller who withheld their number
      - `value` string, nullable: The app user's identity, the phone number in E.164 format, or the room name. Null when the kind is anonymous
    - `number` string: Your number that owns the call, in E.164 format: the dialed number for an inbound call, the caller's bound number for a call placed from your app
    - `connected_number` string, nullable: The phone number the call was connected to, in E.164 format: the number your answer dialed, or the fallback number a call to one of your voice agents reached. Null when the call was not connected to a phone number
    - `caller_id_used` string, nullable: The caller id shown on the phone leg, in E.164 format: the one your answer chose, or the owning number when it chose none. Null for a call with no phone leg
    - `status` string: INITIATED, RINGING, ANSWERED, COMPLETED, FAILED, NO_ANSWER or REJECTED
    - `failure_reason` string, nullable: Why the call did not complete: callback_timeout, invalid_answer, insufficient_balance, destination_blocked, callback_not_configured, rejected, no_answer, or for an agent call agent_busy or agent_unreachable. Null while the call is live, when it completed, and when it failed without a recorded reason
    - `started_at` string, date-time: When the call was placed (UTC)
    - `answered_at` string, date-time, nullable: When the call was answered (UTC). Null until then, and always null for a call between two of your app users
    - `ended_at` string, date-time, nullable: When the call ended (UTC). Null while the call is live
    - `duration_seconds` integer, nullable: Billable duration in seconds. Null while the call is live
    - `price` number, nullable: What the call cost. Null until it has been priced
    - `legs` SentDmServicesEndpointsCustomerAPIv3VoiceCallsResponsesCallLegResponse[], nullable: The legs the price covers, one entry per billed leg, each with its own cost: a call your answer connected to a phone number ran the caller's leg to your number and the leg to the connected number at once, and both are billed. Null until the call has been priced
      - `direction` string: inbound for the caller's leg to your number, outbound for a leg placed on your behalf
      - `number` string, nullable: The phone number the leg reached, in E.164 format: your number for the inbound leg, the number dialed for an outbound one. Null for a leg to one of your app users or a room
      - `billed_minutes` integer: The whole minutes the leg was billed for
      - `cost` number: What the leg cost, in the same unit as the call's price
      - `currency` string: The currency of the cost: USD
    - `recording_available` boolean: True once a recording of the call is available
    - `timeline` SentDmServicesEndpointsCustomerAPIv3VoiceCallsResponsesCallTimelineEntry[], nullable: When the call entered each status, oldest first. Only returned when reading one call
      - `status` string: INITIATED, RINGING, ANSWERED, COMPLETED, FAILED, NO_ANSWER or REJECTED
      - `timestamp` string, date-time: When the call entered this status (UTC)
  - `error` SentDmServicesEndpointsCustomerAPIv3SharedApiError: Error information
    - `code` string: Machine-readable error code (e.g., "RESOURCE_001")
    - `message` string: Human-readable error message
    - `details` object, nullable: Additional validation error details (field-level errors)
    - `doc_url` string, nullable: URL to documentation about this error
  - `meta` SentDmServicesEndpointsCustomerAPIv3SharedApiMeta: Request and response metadata
    - `request_id` string: Unique identifier for this request (for tracing and support)
    - `timestamp` string, date-time: Server timestamp when the response was generated
    - `version` string: API version used for this request

## Other responses

- `400`: Invalid call id format
- `401`: Unauthorized - Invalid API credentials
- `403`: Forbidden
- `404`: Call not found
- `500`: Internal server error

## Changes

- **2026-10-28** `41acb2ceb84d`: 4 info
  - added the optional property `data/allOf[#/components/schemas/SentDmServicesEndpointsCustomerAPIv3VoiceCallsResponsesCallResponse]/agent_id` to the response with the `200` status
  - added the optional property `data/allOf[#/components/schemas/SentDmServicesEndpointsCustomerAPIv3VoiceCallsResponsesCallResponse]/caller_id_used` to the response with the `200` status
  - added the optional property `data/allOf[#/components/schemas/SentDmServicesEndpointsCustomerAPIv3VoiceCallsResponsesCallResponse]/connected_number` to the response with the `200` status
  - added the optional property `data/allOf[#/components/schemas/SentDmServicesEndpointsCustomerAPIv3VoiceCallsResponsesCallResponse]/legs` to the response with the `200` status
- **2026-10-23** `1a451bbb5736`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sentdm/apis/sent-dm-api-v3/changes/v3/voice/calls/:id/get.md)

---

[API](https://skmtc.dev/sentdm/apis/sent-dm-api-v3.md) - [All operations](https://skmtc.dev/sentdm/apis/sent-dm-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/sentdm/apis/sent-dm-api-v3/revisions/bdcca958cac7?raw)
