List calls
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). Each call carries the phone number it was connected to, the caller id it showed, and the billed legs with what each cost. Use the call webhooks for real-time updates; this list is for looking calls up afterwards.
page*integerPage number (1-indexed)
int32page_size*integerNumber of items per page
int32direction?|Optional direction filter: outbound for calls placed from your app, inbound for calls to one of your numbers
status?|Optional status filter: initiated, ringing, answered, completed, failed, no_answer or rejected
number?|Optional filter on the number that owns the call, one of your voice-enabled numbers in E.164 format
mode?|Optional mode filter: inapp for calls routed by your number's callback URL, agent for calls one of your voice agents answered
agent_id?|Optional filter on the voice agent that answered the call, such as agent_9f2ab000-0000-4000-8000-000000000001
from?|Only calls started at or after this time (ISO 8601)
date-timeto?|Only calls started at or before this time (ISO 8601)
date-timex-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.
uuidCalls 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?page=1&page_size=20&direction=outbound&status=COMPLETED&number=%2B12025550123&from=2026-07-22T00%3A00%3A00%2B00%3A00&to=2026-07-22T23%3A59%3A59%2B00%3A00'{ "success": true, "data": { "calls": [ { "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": null } ], "pagination": { "page": 1, "page_size": 20, "total_count": 1, "total_pages": 1, "has_more": false, "cursors": null } }, "error": null, "meta": { "request_id": "req_7X9zKp2jDw", "timestamp": "2026-11-12T15:32:26.462363+00:00", "version": "v3" }}Create a voice token POST
Mints a short-lived token for one of your app users. Call this from your backend and return the token to your app, which passes it to the voice client SDK to register. The identity is bound to the given number, or to your default app-call number when omitted, and calls placed by that identity are routed through the bound number. Minting again re-binds the identity, so an identity can move between numbers.
Get a call GET
Retrieves one of your calls by id: the parties, the owning number, the current status with its failure reason, duration, price, recording availability, and a timeline of when the call entered each status.