Read a call
const url = 'https://api.vocapable.com/v1/calls/example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.vocapable.com/v1/calls/example \ --header 'Authorization: Bearer <token>'The call detail, with its analysis object once post-call scoring has run.
analysis is null until the worker scores the call (docs/04-api.md Step 8a). It is
also served null - with a warning logged - when the stored verdict was written by a
results schema this deploy cannot read (a rollback across a schema bump): the call
detail is the primary resource and must not fail for a sidecar document, and the
verdict itself stays in the eval_runs ledger, readable again once the deploy
catches up.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”Successful Response
object
object
Preview of a saved action, distinct from generated post-call analysis.
object
Terminal outcome of a contact attempt (docs/06-campaign-engine.md).
object
object
One immutable receipt; latest caller evidence per kind/subject is current.
Revisions record database arrival order and break ties within the same caller turn. Evidence-free legacy receipts rank below receipts with validated caller evidence.
object
object
object
Runtime-created attestation, never a model-authored tool argument.
This attests the trusted runtime’s ledger, not independently verified audio. A fresh native tool call is still required before dispatch.
object
object
Known playback completion followed by a trusted caller speech onset.
Queue/send times do not establish playback start or completion. Receive time is not caller onset. Unknown or cleared playback cannot produce this proof.
object
object
Pinned answers and the current review state for a call’s source receipt.
object
A review applies only to its source receipt, never to later corrections.
object
object
Complete configured question inventory for one current receipt, not a page total.
The customer-facing post-call analysis on the call detail (docs/04-api.md Step 8a).
object
The verdict block. rubric_version pins the AgentVersion whose rubric scored the
call, so re-publishing an agent never restates past analyses (docs/04-api.md Step 8a).
object
The per-dimension P1 verdicts (docs/08-ai-quality.md §Production auto-scoring).
The floor dimensions - disclosure_given and optout_honored - appear on every call
and are never waivable; no field here is optional because the worker scores all of
them or writes nothing.
object
One scored dimension inside analysis.success_evaluation (docs/04-api.md Step 8a).
not_applicable means the call gave the dimension nothing to judge (no opt-out was
signalled, no pack is pinned); unscored means it could not be evaluated - reachable
only for a judge dimension, never for the compliance floor. claims_checked is
populated on pack_grounded alone.
One scored dimension inside analysis.success_evaluation (docs/04-api.md Step 8a).
not_applicable means the call gave the dimension nothing to judge (no opt-out was
signalled, no pack is pinned); unscored means it could not be evaluated - reachable
only for a judge dimension, never for the compliance floor. claims_checked is
populated on pack_grounded alone.
One scored dimension inside analysis.success_evaluation (docs/04-api.md Step 8a).
not_applicable means the call gave the dimension nothing to judge (no opt-out was
signalled, no pack is pinned); unscored means it could not be evaluated - reachable
only for a judge dimension, never for the compliance floor. claims_checked is
populated on pack_grounded alone.
One scored dimension inside analysis.success_evaluation (docs/04-api.md Step 8a).
not_applicable means the call gave the dimension nothing to judge (no opt-out was
signalled, no pack is pinned); unscored means it could not be evaluated - reachable
only for a judge dimension, never for the compliance floor. claims_checked is
populated on pack_grounded alone.
Per-call latency against the voice SLO, from the persisted turn ledger.
object
Example
{ "direction": "outbound", "state": "initiated", "recorded_responses": [ { "kind": "shift_response", "note_truncated": false, "value_truncated": false, "fit_review": { "status": "good_fit", "reason_truncated": false } } ], "recorded_response_count": 0, "end_reason": "agent_completed", "disposition": "completed_goal", "disposition_set_by": "agent_llm", "conversation_actions": [ { "kind": "shift_response", "action_confirmation": { "kind": "shift_response", "response": "accepted", "policy_version": "exact_action_v1", "method": "explicit_statement" } } ], "qualification_reviews": { "additionalProperty": { "fit_review": { "status": "unreviewed", "latest_review": { "decision": "good_fit" } }, "qualification_coverage": { "status": "available", "questions": [ { "answer_status": "answered" } ] } } }, "analysis": { "success_evaluation": { "verdict": "success", "dimensions": { "goal_completion": { "result": "pass" }, "disclosure_given": { "result": "pass" }, "optout_honored": { "result": "pass" }, "pack_grounded": { "result": "pass" }, "latency": { "turns_measured": 0 } } } }}Validation Error
object
object
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}