Get a call
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.
id*stringThe call id from the route, as carried by call webhooks and the calls list, for example call_9f2ab000-0000-4000-8000-000000000001
x-profile-id?stringProfile UUID to scope the request to a child profile. Only organization API keys can use this header. The profile must belong to the calling organization.
uuidCall retrieved successfully
application/json- response
Standard API response envelope for all v3 endpoints
success?booleanIndicates whether the request was successful
data?|nullThe response data (null if error)
error?|nullError details (null if successful)
meta?Metadata about the request and response
curl -X GET 'https://api.sent.dm/v3/voice/calls/call_9f2ab000-0000-4000-8000-000000000001'{ "success": true, "data": { "id": "call_9f2ab000-0000-4000-8000-000000000001", "mode": "inapp", "agent_id": null, "direction": "outbound", "from": { "kind": "user", "value": "agent-42" }, "to": { "kind": "number", "value": "+12025550142" }, "number": "+12025550123", "connected_number": "+12025550142", "caller_id_used": "+12025550123", "status": "COMPLETED", "failure_reason": null, "started_at": "2026-07-22T12:00:00+00:00", "answered_at": "2026-07-22T12:00:05+00:00", "ended_at": "2026-07-22T12:00:47+00:00", "duration_seconds": 42, "price": 0.015, "legs": [ { "direction": "outbound", "number": "+12025550142", "billed_minutes": 1, "cost": 0.015, "currency": "USD" } ], "recording_available": false, "timeline": [ { "status": "INITIATED", "timestamp": "2026-07-22T12:00:00+00:00" }, { "status": "ANSWERED", "timestamp": "2026-07-22T12:00:05+00:00" }, { "status": "COMPLETED", "timestamp": "2026-07-22T12:00:47+00:00" } ] }, "error": null, "meta": { "request_id": "req_7X9zKp2jDw", "timestamp": "2026-11-12T15:32:26.4112667+00:00", "version": "v3" }}List calls GET
Retrieves a paginated list of your calls, most recent first. Filter by direction, status, the owning number, the mode (inapp, or agent for calls your voice agents answered), the agent that answered, and the time the call started (from and to are inclusive). Use the call webhooks for real-time updates; this list is for looking calls up afterwards.
Hang up a call POST
Ends one of your live calls. The call then ends the way any other call does once the disconnect is reported: an answered call as COMPLETED with call.completed, a call still ringing as NO_ANSWER, REJECTED or FAILED with call.failed. A call that has already ended answers 409, as do a call with no phone leg, such as one between two app users, and a call one of your voice agents answers.