Complete
Final outcome, summary and answers; adds ``call_completed`` to the timeline. Idempotent. The first completion also stores the transcript and queues the post-call AI analysis (summary + extracted fields, shown on ``GET /calls/{call_id}``).
API key access
/api/v1/calls/{call_id}/completePer-call token issued when the call was created (job metadata api_token).
In: header
Path Parameters
uuidHeader Parameters
Workspace of the call (must match the token).
uuidWhat the conversation achieved. Decided by the voice agent's code, not the LLM
(same values as reachout_voice.api_client.CallOutcome).
"booked" | "callback_scheduled" | "not_qualified" | "opted_out" | "human_requested" | "wrong_person" | "no_decision" | "caller_hung_up"""length <= 10000Empty Object
The conversation (at most 1000 turns), for the post-call analysis (RO-042). Stored on the first completion only.
items <= 1000Response Body
curl -X POST "http://localhost:8000/api/v1/calls/497f6eca-6276-4993-bfeb-53cbbbba6f08/complete" \ -H "X-Workspace-Id: string" \ -H "Content-Type: application/json" \ -d '{ "lead_id": "9bddab70-98e6-43a9-8f32-c9788b9de0c0", "outcome": "booked" }'{
"status": "queued",
"outcome": {},
"ignored_answer_fields": [
"string"
]
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Book Meeting
Book a slot offered on this call; adds ``meeting_booked`` to the lead timeline.
Dial Result
The outbound SIP leg was never answered (busy, no answer, rejected, failed). Ends a queued or ringing call with that status and adds ``call_completed`` (0 seconds, disposition ``sip_<code>``) to the timeline; the dial attempt keeps counting toward the calling frequency caps. Idempotent (``recorded: false`` once the call has ended); 409 for a call in progress. ``voicemail`` (RO-043): an answering machine picked up (also for a call in progress); ``message_left`` says whether the agent left its message (disposition ``voicemail_message_left`` or ``voicemail_hung_up``).