Get Call Metadata
Allowlisted metadata for a single call.
Request
- Base URLhttps://dev.whispa.net (the document declares no server; this is the origin it was published from)
- Authnone declared
Path parameters
Response
Successful Response
Call mode enumeration.
Call source enumeration.
Direction of the call.
- INCOMING: Customer called agent
- OUTGOING: Agent called customer
- INTERNAL: Extension-to-extension call
Call lifecycle state.
- ONGOING: Call is currently in progress
- COMPLETED: Call finished (regardless of whether it was answered)
- ERROR: Technical error/exception during call processing
- UNANSWERED: DEPRECATED - Use status=COMPLETED + telephony_result=NO_ANSWER instead. Kept for backwards compatibility with existing database records.
AI-classified judgement of what kind of conversation occurred.
Only applicable when answered_by=HUMAN. Runtime actions such as scheduling a callback or transferring the caller are recorded independently in WorkflowDisposition and must never overwrite this judgement.
Deterministic action the autonomous workflow took before finalizing.
NONE is explicit for finalized autonomous calls with no special handoff/follow-up action. NULL means the dimension does not apply (human copilot, uploaded, or legacy calls), rather than overloading NULL with two meanings.
Normalized reason an autonomous call ended.
The raw runtime string remains in analyzer_artifacts for diagnostics. This enum is the stable operational projection: semantic reasons exposed to the voice model plus bounded technical termination categories. Novel runtime endings degrade to OTHER instead of failing finalization.
Who answered the call (AI-classified from transcript).
This is the first stage of call classification - determining whether a human or voicemail answered the call.
Telephony-level call connection result.
Represents what happened at the telephony level before any conversation. This is typically provided by the PBX/telephony system, not AI-classified.
Identity-verification outcome for a call, denormalized from the IDV analyzer.
Only set when IDV was required and a verdict was produced. A NULL column can mean IDV was not applicable, is still pending, or no verdict was available; API consumers use idv_required plus call status to distinguish those states. Derived from the terminal identity_verification_state["status"]:
- VERIFIED: status complete — identity confirmed per the scenario's policy.
- PARTIAL: at least one identity factor was confirmed, but the scenario's completion rule was never satisfied.
- INCOMPLETE: required, and not a single factor was confirmed.
PARTIAL exists because "not verified" covers two operationally different calls: one where the customer engaged with verification and it ran out of road, and one where it never started. Only the second is a candidate for "the agent didn't try". Note this is tracking state, not an adherence grade — the leadership IDV rate deliberately reads the reviewed QA scorecard instead (see shared.idv), because a human reviewer can correct it and the analyzer cannot.
There is deliberately no skipped outcome. The live state machine still has a skipped terminal so the analyzer stops firing on a call that is not going to verify, but as a result it said nothing true that incomplete doesn't: verification was required and did not happen. It also read as a third, ambiguous colour on any report — neither pass nor fail — while the thing a reviewer actually needs to know (was skipping appropriate here?) is a transcript judgement the tracker never made.
Which mechanism produced the call's persisted IDV state.
- LIVE: the in-call IDV analyzer's terminal state (the normal path).
- POST_CALL: the post-call IDV judge — runs when the live analyzer never produced a state (e.g. no scenario reached the session) or the scenario was reclassified after the call, judging the full transcript against the resolved scenario's IDV rules.
- INHERITED: the origin leg of a transfer verified the customer, and this recipient leg inherits that verdict — verification travels with the conversation, not the leg (see calls.idv_resolution). The verification exchange is on the origin leg's transcript, not this one's.
Opaque Whispa account row id (the Accounts page id) the call is linked to; null when unlinked or the account was never synced
Changes
No recorded changes to this operation across all 1 revision of this API.