Skip to content

Read truthful live handoff and supervision prerequisites for a call

GET
/v1/calls/{call_id}/handoff-readiness
curl --request GET \
--url https://api.vocapable.com/v1/calls/example/handoff-readiness \
--header 'Authorization: Bearer <token>'

Return a conservative capability answer; never imply carrier media exists.

It intentionally yields 200 with active: false for an absent/expired call rather than using the permanent calls resource as a live-state oracle. A caller can poll this during a conversation without learning whether an arbitrary historical call id exists, and no follow-up mutation becomes possible from this response alone.

call_id
required
Call Id
string

Successful Response

Media typeapplication/json
HandoffReadiness

Truthful live-call capability view, not a promise that the carrier supports it.

manual_available_rep_ids is a dashboard advertisement only. It is deliberately not called an eligible-target list: no current executor can auto-transfer a caller from a REST heartbeat, and both live-action flags stay false until the gateway/media path exists.

object
call_id
required
Call Id
string
active
required
Active
boolean
transport
Any of:
string
Allowed values: phone browser
state
Any of:
string
Allowed values: active handoff_pending transferred ended expired
expires_at
Any of:
string format: date-time
manual_available_rep_ids
Manual Available Rep Ids
Array<string>
transfer_available
required
Transfer Available
boolean
listen_in_available
required
Listen In Available
boolean
blockers
Blockers
Array<string>
Example
{
"transport": "phone",
"state": "active"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}