Calls
Create and manage outbound voice calls. The public API creates outbound calls only. Inbound calls are handled automatically when a phone number is assigned to an agent. For UUID / phone / datetime formats used below, see Data formats.List Calls
Parameters
Query parameters:Response
data (array of call objects), pagination (total, limit, offset, has_more), meta.
Get Call
Create Call
Place an outbound call using a specified agent. The call is always outbound when created via the public API.Request Body
call_settings Fields
Outbound call requirements:
- The agent must have at least one phone number assigned for outbound (see Telephony — Assign Number), or you must provide
from_number. - If no outbound number is available, the API returns 422.
- The telephony provider (Telnyx, Twilio, Plivo) is determined from the number’s credential.
Example
data (call object: id, agent_id, phone_number, direction, status, etc.) and meta. Send X-Idempotency-Key for safe retries.
Create Web Call
Start a browser-based voice call without a phone number. The API returns a short-livedjoinUrl; pass it to the Ultravox client in your browser. This is the Web Call variant of the Calls API, not a separate product area.
data.id for the Truedy call record and data.joinUrl for the browser client. The URL is single-use and expires if it is not joined promptly. See Quickstart: Web Call for the browser integration.
Update Call
Update metadata on a call. Onlycontext and call_settings can be updated after creation.
Body: context (object, any key-value data to store on the call record) and/or call_settings (object with recording_enabled, transcription_enabled). Only included fields are updated.
Delete Call
Cannot delete active calls (queued, ringing, in_progress). Completed, failed, and other terminal calls can be deleted.
Bulk Delete Calls
Body:ids — array of call UUIDs to delete. Active calls in the list are skipped.
Response: data: { deleted_count, failed_count, deleted_ids, failed_ids }, meta.
Get Recording
Returns a URL to the call recording audio. The URL is fetched from the telephony provider and cached on the call record.data: { recording_url }. Returns 404 if no recording exists (e.g. recording was disabled).
Get Transcript
Returns the full transcript and summary for a completed call.data: { transcript: [...], summary }. Returns 404 if no transcript is available yet.
Call Object
Call Statuses
Errors
Failed calls: When a call is created but the provider fails to place it, the call record has
status: "failed". The provider error message is stored in context.last_error. Fix the underlying issue and retry.
