Skip to main content

Calls

Calls use a hybrid relay pipeline: the provider answers, plays the greeting, records caller speech, transcribes it (Deepgram), and your agent replies with text that is spoken back (TTS). The full transcript is saved automatically.

Make an outbound call

The call is placed from the agent’s assigned number (or from_number_id if provided). Returns a call_id you use to control and inspect the call.

Control and inspect

Pushing context to a live call (relay mode)

If your backend (Hermes, OpenClaw, Claude Code, Codex, or another agent) needs to answer a live caller after a call.utterance event, use the persistent Agent Relay or push context over HTTP. Every response is bound to the exact turn_id from that event.
Returns delivered=true with status: "live" or "duplicate". A 409 means the turn is stale or cancelled; a 410 means the call has ended. Never reuse context from one turn for another. The response is spoken verbatim and then retained as the assistant turn in the call conversation. Keep it caller-ready and concise. The hosted LLM is only a fallback if direct TTS fails.
Transcripts are a list of {role, text, timestamp} turns where role is human (caller) or assistant (the AI agent).