Skip to main content
GET
Get a human call

Authorizations

X-API-Key
string
header
required

Your AI calling API key (vak_call_…). Authorization: Bearer <key> also works.

Path Parameters

id
string
required

Response

The human call.

id
string
Example:

"hcall_7d2e9b1c4a6f8e0d3b5c7a9e"

object
string
Allowed value: "human_call"
status
enum<string>
Available options:
queued,
ringing_counsellor,
connecting,
in_progress,
completed,
no_answer,
busy,
failed,
canceled
status_reason
string

Why a call failed, in plain words. Present only when there is one.

no_answer_by
enum<string> | null

Only on no_answer / busy: which phone did not pick up, when the provider says so.

Available options:
counsellor,
contact,
null
counsellor
object
phone_number
string
contact
object
crm_lead_linked
boolean

The call was filed on the one lead in your account with this number (it shows on the lead's timeline).

metadata
object
analyze
boolean
status_updates
enum<string>

How live status is on your provider: Vacademy Voice realtime, Exotel final_only, Airtel delayed (after its call record is imported).

Available options:
realtime,
final_only,
delayed
created_at
string<date-time>
dialed_at
string<date-time> | null
answered_at
string<date-time> | null

When the contact picked up, when known.

ended_at
string<date-time> | null
duration_seconds
integer | null
recording_url
string | null

A temporary link to the recording (24 hours). Fetch the call again for a fresh link.

recording_expires_at
string<date-time> | null
disposition
object | null

The outcome recorded by the counsellor or by you. null until set.

analysis
object

AI analysis of the conversation. Fields beyond status are present once it is completed.

cost
object | null

null while the call runs. Only Vacademy Voice talk time is charged to your credits; Exotel and Airtel bill you directly.

idempotent_replay
boolean

Only on POST /human-calls: true when this is the call created by an earlier request with the same Idempotency-Key.