Skip to main content
This is the object you get back from POST /v1/calls, GET /v1/calls, and GET /v1/calls/{id}. It’s also the body of webhook deliveries.

Fields

Core

FieldTypeDescription
iduuidCall ID
to_numberstringDestination phone number (E.164)
from_numberstringCaller ID (E.164)
statusstringCurrent status (see Statuses)
directionstringAlways outbound for now
promptstringThe prompt you sent
contextobjectThe context you sent
returnsobjectThe return schema you defined
languagestringLanguage code

Result

FieldTypeDescription
resultobject | nullExtracted data matching your returns schema
result_statusstringpending, completed, or failed
result_errorstring | nullWhy extraction failed, if it did

Timing

FieldTypeDescription
created_atISO 8601When the call was created
started_atISO 8601 | nullWhen it started ringing
answered_atISO 8601 | nullWhen someone picked up
ended_atISO 8601 | nullWhen it ended
duration_secondsinteger | nullTotal duration in seconds

Billing

FieldTypeDescription
billed_duration_secondsinteger | nullConnected time you’re charged for
billing_amount_milli_centsinteger | nullCharge in milli-cents
reservation_statusstringreserved, settled, or released

Webhook (per-call inline)

The fields below are a compatibility layer for the per-call inline webhook. They summarize delivery of the call.completed event to webhook_url. For full delivery history, the other seven event types, and fan-out to multiple endpoints, see Webhooks and webhook delivery object.
FieldTypeDescription
webhook_urlstring | nullPer-call inline URL. Receives every lifecycle event for this call, signed with the org’s default secret.
webhook_statusstringnone, pending, delivered, or failed. Reflects the latest inline delivery for this call.
webhook_errorstring | nullError from the last failed inline delivery.

Error

FieldTypeDescription
error_codestring | nullTelephony provider error code
error_messagestring | nullWhat went wrong
hangup_causestring | nullTelephony-level hangup reason

Metadata

FieldTypeDescription
metadataobjectArbitrary metadata on the call
updated_atISO 8601Last update time

Example response

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "to_number": "+15551234567",
  "from_number": "+15559876543",
  "status": "completed",
  "direction": "outbound",
  "prompt": "Confirm dental appointment tomorrow at 2pm",
  "context": { "patient": "Maria Lopez", "doctor": "Dr. Chen" },
  "returns": { "confirmed": "boolean", "reschedule_to": "string" },
  "result": {
    "confirmed": true,
    "reschedule_to": null
  },
  "result_status": "completed",
  "result_error": null,
  "language": "en",
  "created_at": "2025-04-15T14:30:00Z",
  "started_at": "2025-04-15T14:30:01Z",
  "answered_at": "2025-04-15T14:30:05Z",
  "ended_at": "2025-04-15T14:30:39Z",
  "duration_seconds": 38,
  "billed_duration_seconds": 34,
  "reservation_status": "settled",
  "webhook_url": "https://your-server.com/hook",
  "webhook_status": "delivered",
  "webhook_error": null,
  "error_code": null,
  "error_message": null,
  "hangup_cause": null,
  "metadata": {},
  "updated_at": "2025-04-15T14:30:45Z"
}