Skip to main content

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

Response: 201 Created with 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-lived joinUrl; pass it to the Ultravox client in your browser. This is the Web Call variant of the Calls API, not a separate product area.
The response contains 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. Only context 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.
Response: 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.
Response: 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.