Skip to Content
Welcome to 10ex Docs — explore Tutorials, Guides, Reference, Concepts, Use Cases, and the Agent Store.
Reference

voice

Base path: /api/v1/voice

The voice module exposes realtime voice surfaces backed by OpenAI’s Realtime API. It powers the voice-lead-qualifier agent, inbound-call qualification flows, and outbound voice campaigns. Resources include voice sessions, call recordings, qualification transcripts, agent voice profiles, and webhook subscriptions for call events. Schemas live in app/modules/voice/schemas.py.

What you can do with the voice API

  • Configure an inbound number that routes to the voice qualifier
  • Trigger an outbound call to a list of leads with a defined objective
  • Stream a live call’s transcript via SSE for in-app monitoring
  • Fetch a completed call’s transcript, summary, and qualification verdict
  • Read aggregate call metrics (connect rate, qualified rate, average duration)

Common operations

  • Provision a voice session for an inbound or outbound call
  • List recent calls filtered by lead, agent, or outcome
  • Fetch the full transcript and recording URL for a single call
  • Update the agent’s system prompt or voice profile
  • Trigger an outbound batch with lead_ids and an objective

Authentication & scoping

Workspace-scoped via API key in the Authorization: Bearer tnx_... header. Call recordings respect retention policy at the workspace level.

Pagination & filtering

Call list endpoints paginate cursor-style with filters by lead, outcome (qualified, unqualified, no-answer), and date. See Pagination.

How voice qualification works end to end

A call starts (inbound or outbound). The qualifier agent runs on top of the OpenAI Realtime session, hitting your knowledge corpus and CRM as tools. When the call ends, a structured verdict (qualified/unqualified, scheduled meeting, follow-up reasons) writes back to the lead’s CRM record and emits an agent.run.completed webhook.

MCP equivalents

MCP prompt

run_voice_qualifier({ lead_ids: [...], objective: "qualify_for_demo", calendar_connector_id })

MCP prompt

get_call_results({ call_batch_id })

Last updated on