GET /calls/{call_id}
https://api.voygr.tech/calls/{call_id}
Overview
Poll a single call. Returns the full detail fields (including transcript_full) that the list endpoint omits.
Authentication
- API key in header
X-API-Key: Your customer API key (pk_live_...), sent on every request. Self-serve at https://api.voygr.tech/checkout.
Parameters
| Name | Location | Required | Type | Description and constraints |
|---|---|---|---|---|
call_id | path | required | string |
Responses
200
Successful Response
application/json
Schema: CallDTO
401
Missing or invalid X-API-Key.
application/json
X-API-Key header absent
{
"detail": {
"error": "API key required"
}
}X-API-Key doesn't resolve to an active key
{
"detail": {
"error": "invalid API key"
}
}404
Call not found, or isn't yours.
application/json
notfound
{
"detail": "Call not found"
}Schemas
CallDTO
Type: object
A call. GET /calls list entries omit transcript_full; fetch GET /calls/{call_id} for the transcript.
| Field | Type | Required | Description and constraints |
|---|---|---|---|
call_id | string | required | Example: "c_abc123" |
customer_id | string | required | Example: "cus_xyz" |
target_phone | string | required | Example: "+15551234567" |
language | string | required | one of en, es, fr, de, hi, ru, pt, ja, it, nl, sr, tr, pl, auto |
status | string | required | one of queued, dialing, in_progress, completed, failed, cancelled |
started_at | string (date-time) | null | optional | |
ended_at | string (date-time) | null | optional | |
duration_sec | integer | null | optional | |
outcome_type | string (one of success_booked, success_refused, success_no_booking, failed_no_answer, failed_voicemail, failed_busy, failed_short_hangup, failed_technical, failed_no_agent_available, failed_no_disclosure, failed_call_dropped, failed_wrong_number, failed_cancelled, failed_no_engagement, failed_agent_mute) | null | optional | Set when the call is terminal. success_* outcomes cost 10 credits; failed_* cost 0. failed_no_agent_available means no human answered before the call's hold-time limit. |
outcome_summary | string | null | optional | |
outcome_charge_cents | integer | optional | Settled charge in credits, despite the field name: 10 for a successful call, 0 for an unsuccessful call. This is not the refundable hold. default 0 |
created_at | string (date-time) | required | |
has_recording | boolean | optional | default False |
recording_url | string | null | optional | Relative recording path /calls/{call_id}/recording when a recording exists; null when has_recording is false. Recording retrieval is not documented here. |
reservation_signals | array of string | null | optional | Short free-text signals (<10 short strings) about the reservation outcome. Always included (not detail-gated like transcript_full). |
transcript_full | array of TranscriptTurn | null | optional | Only populated on GET /calls/{call_id}, not on the GET /calls list. |
TranscriptTurn
Type: object
One line of a call transcript.
| Field | Type | Required | Description and constraints |
|---|---|---|---|
ts | string (date-time) | required | |
role | string | required | operator = the callee; bot = the agent; supervisor_stt = an additional callee transcript; system = lifecycle markers. one of operator, bot, supervisor_stt, system |
text | string | required |
On this page
