Skip to main content
POST
cURL
Places an outbound call from a Bolna agent to a phone number. Returns an execution_id you use to track and retrieve the call result.

Minimal example

Only two fields are required — agent_id and recipient_phone_number. Omit from_phone_number to use your account’s default number.
Minimal request
Response

Realistic example with personalization

Pass user_data to inject variables into your agent’s prompt and welcome message (e.g. {customer_name} in the prompt becomes “Asha”):
Request with personalization

Tracking the call

Use the returned execution_id to poll GET /executions/{execution_id} for status. The call goes through these stages:
Wait for completed, not call-disconnected. The call-disconnected event fires the instant the line drops, but conversation_duration, total_cost, recording_url, and extracted_data are not yet populated. The completed event (a few seconds later) has all finalized fields. See Get Execution.

Common 400 errors

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Make a phone call from agent

agent_id
string<uuid>
required

Agent id which will initiate the outbound call

recipient_phone_number
string
required

Phone number of the recipient along with country code (in E.164 format)

from_phone_number
string

Phone number of the sender along with country code (in E.164 format). Optional — if omitted, Bolna uses the account's default number.

scheduled_at
string

The scheduled date and time in ISO 8601 format with time zone

Example:

"2024-06-05T16:35:00.000+05:30"

user_data
object

Additional user dynamic variables as defined in the agent prompt

agent_data
object

Agent configuration to override the default configuration. Currently, only voice_id for the same provider is supported.

retry_config
object

Configuration for auto-retry of failed calls. See auto-retry documentation for details.

bypass_call_guardrails
boolean
default:false

Skip time validation checks and make call immediately regardless of agent's calling_guardrails configuration

Response

agent status response

message
string

Response message for the call initiated

Example:

"done"

status
enum<string>

Status of the call.

Available options:
queued
Example:

"queued"

execution_id
string

Unique execution_id or call_id identifier of the call.

Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}
Example:

"123e4567-e89b-12d3-a456-426614174000"