Skip to main content
Outbound calls let your agents proactively reach out to contacts — for appointment reminders, sales follow-ups, lead qualification, notifications, and more. This guide walks through placing a single call via the API, handling the response, and monitoring call progress.
Need to call hundreds or thousands of contacts? Use Batch Calls instead. This guide focuses on one-off, programmatically triggered calls.

Prerequisites

Before placing an outbound call, verify that:
  1. You have an active agent — the agent must be published, not in draft. You can confirm this in the dashboard under Agents, or by checking status: "active" on the agent object.
  2. A phone number is assigned to the agent — outbound calls are placed from a Truedy number that belongs to your account and is linked to the agent. If no number is assigned, the call will fail immediately with a no_phone_number_configured error.
  3. You have a valid API key — all API requests require Authorization: Bearer YOUR_API_KEY in the request headers.
You can assign a phone number to an agent from the dashboard under Settings → Phone Numbers, or programmatically via the phone numbers API.

Placing a Call

Send a POST request to /calls with the agent and destination phone number.

Endpoint

Request Body

call_settings fields (all optional):

About variables

Your agent’s prompt can include template placeholders using double curly braces: {{first_name}}, {{appointment_date}}, etc. When you pass a variables object with the call, Truedy substitutes those values into the prompt before the conversation starts. This lets a single agent handle personalised calls at scale without creating separate agents per contact. For example, a prompt containing:
…would be rendered with the values you pass in variables.

Examples

Response

A successful request returns HTTP 201 Created with the newly created call object:
The id field is the call identifier you will use to poll for status or match against webhook events.

Monitoring Call Progress

Once you have the call ID, you can track the call to completion using polling or webhooks.

Option 1: Polling

Call GET /calls/{id} repeatedly until the status reaches a terminal state (ended, failed, or cancelled).
Polling is simple but inefficient. Avoid polling intervals shorter than 5 seconds, and prefer webhooks for any integration processing more than a few dozen calls per day.
Register a webhook endpoint and Truedy will deliver a call.ended event to your server automatically when the call finishes — no polling required. See Webhooks Overview to set up your endpoint. The call.ended event payload includes the full call object, including transcript and recording URL.

Phone Number Format

The phone_number field must use E.164 format:
  • Starts with +
  • Followed by the country code and subscriber number, no spaces or dashes
  • Examples: +14155551234 (US), +447911123456 (UK), +61291234567 (AU)
Passing a phone number in any other format (e.g. (415) 555-1234, 415-555-1234, or 14155551234 without the leading +) will result in a 422 Unprocessable Entity error.

Common Errors


Next Steps

Calls Overview

Understand call statuses, directions, and lifecycle

Batch Calls & Campaigns

Call many contacts at once with campaigns

Webhooks Overview

Receive real-time events instead of polling

Call Management

List, filter, and retrieve call records