Run outbound voice AI calls with Bolna, the voice AI platform built for India. Place single or scheduled calls with per-call variables, run CSV batch campaigns, read transcripts, summaries, extracted data, recordings, and costs, create and update agents, and search and buy phone numbers. Bolna can also trigger workflows when a call ends.
Buy a phone number found with Search Phone Numbers. This charges your Bolna account a recurring monthly rental fee (the price shown by Search Phone Numbers) that renews every month until the number is deleted.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) countrystring Yes Country of the number: US or IN phoneNumberstring Yes Number to buy in E.164 format, as returned by Search Phone Numbers providerstring No Telephony provider of the number: twilio, plivo, or vobiz complianceApplicationIdstring No Approved compliance application to buy under, when the account has more than one (India DLT)
Parameter Type Description idstring ID of the purchased phone number record phoneNumberstring Purchased number (E.164) agentIdstring Agent linked to the number pricenumber Monthly price in cents telephonyProviderstring Telephony provider renewalboolean Whether the monthly rental auto-renews bolnaOwnedboolean Whether Bolna owns the number paymentUuidstring Payment transaction ID telephonySidstring Number's ID at the telephony provider createdAtstring When the number was bought updatedAtstring When the record last changed
Create an English Bolna voice AI agent from a name, system prompt, and welcome message, with an OpenAI-compatible LLM, an ElevenLabs voice, and an optional webhook URL for call results.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) agentNamestring Yes Name of the agent systemPromptstring Yes System prompt the agent follows on every call. Use {{variable}} placeholders for per-call user data welcomeMessagestring No First thing the agent says when the call connects webhookUrlstring No URL that receives the execution payload as each call progresses llmProviderstring No LLM provider: openai (default), anthropic, google, deepseek, azure-openai, or openrouter llmModelstring No LLM model ID for that provider (default gpt-5.4-mini) voiceNamestring No ElevenLabs voice name (default Angelica) voiceIdstring No ElevenLabs voice ID matching the voice name voiceModelstring No ElevenLabs model (default eleven_turbo_v2_5) telephonyProviderstring No Telephony provider: plivo (default), twilio, exotel, or vobiz callSummaryEnabledboolean No Generate an AI summary after each call
Parameter Type Description agentIdstring ID of the new agent statestring Creation state (created) versionIdstring ID of the initial agent version
Create a batch calling campaign for a Bolna agent from a CSV of recipients. The CSV needs a contact_number column (E.164); every other column becomes a prompt variable. The batch does not dial until it is scheduled with Schedule Batch.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) agentIdstring Yes ID of the Bolna agent that places the batch calls csvContentstring Yes Recipients as CSV text with a header row, e.g. "contact_number,customer_name\n+919876543210,Asha" fromPhoneNumbersstring No Comma-separated caller IDs (E.164) to spread the batch across webhookUrlstring No URL that receives the batch payload when it finishes processing and again when every call ends
Parameter Type Description batchIdstring ID of the new batch; pass it to Schedule Batch statestring Batch state (created)
Get a Bolna voice AI agent's configuration, including its system prompt and task setup.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) agentIdstring Yes ID of the Bolna agent
Parameter Type Description idstring Agent ID agentNamestring Agent name agentTypestring Agent type agentStatusstring Agent status (seeding or processed) callSummaryEnabledboolean Whether a summary is generated after each call createdAtstring When the agent was created updatedAtstring When the agent was last updated systemPromptstring System prompt of the first task (agent_prompts.task_1) agentPromptsjson Prompts per task, keyed task_1, task_2, ... each with system_prompt tasksarray Agent tasks with their task_type, tools_config (llm_agent, synthesizer, transcriber, input, output), toolchain, and task_config
Get a Bolna call by execution ID: status, transcript, summary, extracted data, recording, cost, and telephony details. Duration, cost, recording, and extractions are final only once status is completed or another terminal status.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) executionIdstring Yes Execution ID returned by Make Call
Parameter Type Description executionIdstring Execution ID of a placed or stopped call messagestring Response message from Bolna statusstring Call status idstring Execution, agent, or phone number record ID agentIdstring Agent ID batchIdstring Batch ID conversationDurationnumber Conversation length in seconds totalCostnumber Total call cost in cents transcriptstring Call transcript ("assistant:" / "user:" turns) summarystring AI call summary, when enabled on the agent extractedDatajson Post-call extracted data errorMessagestring Call error message answeredByVoiceMailboolean Whether voicemail answered recordingUrlstring Call recording URL toNumberstring Recipient phone number fromNumberstring Caller phone number hangupBystring Which side ended the call hangupReasonstring Why the call ended callTypestring inbound or outbound createdAtstring Creation timestamp updatedAtstring Last update timestamp costBreakdownjson Cost breakdown in cents (llm, network, platform, synthesizer, transcriber, totalCostToDeduct) telephonyDatajson Telephony details (duration, toNumber, fromNumber, recordingUrl, provider, providerCallId, hangupBy, hangupReason, hangupProviderCode, ...) contextDetailsjson Recipient context the call ran with executionsjson Calls on this page (id, status, conversationDuration, createdAt, telephonyData) totalnumber Total matching calls pageNumbernumber Page returned pageSizenumber Results per page hasMoreboolean Whether another page is available agentsjson Agents (id, agentName, agentType, agentStatus, callSummaryEnabled, createdAt, updatedAt) agentNamestring Agent name agentTypestring Agent type agentStatusstring Agent status callSummaryEnabledboolean Whether call summaries are on systemPromptstring Agent system prompt (task_1) agentPromptsjson Prompts per task (task_1, ...) tasksjson Agent task configuration statestring Result state (created, updated, scheduled) versionIdstring Initial version ID of a created agent phoneNumbersjson Phone numbers: owned (id, phoneNumber, agentId, price, telephonyProvider, rented, renewalAt) or available (phoneNumber, region, locality, provider, price) phoneNumberstring Purchased phone number pricenumber Monthly price of the purchased number in cents telephonyProviderstring Telephony provider of the number renewalboolean Whether the number rental auto-renews bolnaOwnedboolean Whether Bolna owns the number paymentUuidstring Payment transaction ID telephonySidstring Number's ID at the telephony provider
List an agent's calls created within a date range of at most 7 days, newest first, with optional status, call type, provider, voicemail, and batch filters. List results are a trimmed projection; use Get Execution for the full call record.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) agentIdstring Yes ID of the Bolna agent whose calls to list fromstring Yes Start of the created_at range, UTC ISO 8601 (e.g. 2026-06-07T00:00:00.000Z). At most 7 days before To tostring Yes End of the created_at range, UTC ISO 8601 (e.g. 2026-06-14T00:00:00.000Z) statusstring No Only calls with this status (e.g. completed, no-answer, busy, failed) callTypestring No Only inbound or outbound calls providerstring No Only calls on this provider: twilio, plivo, exotel, vobiz, trunk, sip-trunk, web-call, or websocket answeredByVoiceMailboolean No Filter by whether voicemail answered the call batchIdstring No Only calls from this batch pageNumbernumber No Page to return, starting at 1 (default 1) pageSizenumber No Results per page, 1-50 (default 20)
Parameter Type Description executionsarray Calls on this page, newest first totalnumber Total matching calls pageNumbernumber Page returned pageSizenumber Results per page hasMoreboolean Whether another page is available
List every voice AI agent in the Bolna account with its name, type, and status.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys)
Parameter Type Description agentsarray Agents in the account ↳ id string Agent ID ↳ agentName string Agent name ↳ agentType string Agent type ↳ agentStatus string Agent status (seeding or processed) ↳ callSummaryEnabled boolean Whether a summary is generated after each call ↳ createdAt string When the agent was created ↳ updatedAt string When the agent was last updated
List the phone numbers in the Bolna account with their linked agent, provider, monthly price, and renewal date.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys)
Parameter Type Description phoneNumbersarray Phone numbers in the account ↳ id string Phone number record ID ↳ phoneNumber string Phone number (E.164) ↳ agentId string Agent linked to the number ↳ price string Monthly rental price (e.g. $5.0) ↳ telephonyProvider string Telephony provider ↳ rented boolean Whether the number was bought from Bolna ↳ renewalAt string Next renewal date ↳ createdAt string When the number was added ↳ updatedAt string When the number was last updated
Place an outbound phone call from a Bolna voice AI agent, now or at a scheduled time. Returns the execution ID used to track the call.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) agentIdstring Yes ID of the Bolna agent that places the call recipientPhoneNumberstring Yes Phone number to call, in E.164 format (e.g. +919876543210) fromPhoneNumberstring No Caller ID in E.164 format; must be a number in your Bolna account. Defaults to the account's default number scheduledAtstring No When to place the call, as ISO 8601 with a time zone offset (e.g. 2026-06-05T16:35:00+05:30). Leave empty to call now userDatajson No Variables injected into the agent prompt and welcome message, e.g. {"customer_name": "Asha"} fills {{customer_name}} bypassCallGuardrailsboolean No Ignore the agent's calling-hours guardrails and call immediately
Parameter Type Description executionIdstring Execution ID of the call; use it with Get Execution statusstring Initial call status (queued) messagestring Response message from Bolna
Schedule a created Bolna batch to start calling at a time up to 30 days ahead. Times less than 10 minutes ahead start immediately.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) batchIdstring Yes ID of the batch returned by Create Batch scheduledAtstring Yes Start time as ISO 8601 with a numeric offset (e.g. 2026-06-23T18:30:00+05:30), within 30 days bypassCallGuardrailsboolean No Ignore the agent's calling-hours guardrails for every call in the batch
Parameter Type Description messagestring Response message (success) statestring Batch state (scheduled)
Search phone numbers available to buy in the US or India, optionally by a 3-digit prefix and provider, with their monthly price in USD.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) countrystring Yes Country to search: US or IN patternstring No 3-character prefix the number should start with providerstring No Telephony provider: twilio, plivo, or vobiz
Parameter Type Description phoneNumbersarray Numbers available to buy ↳ phoneNumber string Phone number (E.164) ↳ region string Region of the number ↳ locality string Locality, when available ↳ friendlyName string Friendly label, when set ↳ provider string Telephony provider ↳ price number Monthly price in USD
Cancel a Bolna call that is still queued or scheduled. Calls already dialing or in progress cannot be stopped.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) executionIdstring Yes Execution ID of the queued or scheduled call to stop
Parameter Type Description executionIdstring Execution ID of the stopped call statusstring New call status (stopped) messagestring Response message from Bolna
Partially update a Bolna agent: name, welcome message, system prompt, webhook URL, calling-hours window, or call summary. Fields left empty keep their saved values.
Parameter Type Required Description apiKeystring Yes Bolna API key (Bolna dashboard → Developers → API Keys) agentIdstring Yes ID of the Bolna agent to update agentNamestring No New agent name welcomeMessagestring No New welcome message spoken when the call connects systemPromptstring No New system prompt for the first task (task_1) webhookUrlstring No New URL that receives the execution payload as each call progresses callStartHournumber No Start of the allowed outbound calling window, 0-23 in the recipient's time zone. Set together with the end hour callEndHournumber No End of the allowed outbound calling window, 0-23 in the recipient's time zone, at or after the start hour callSummaryEnabledboolean No Generate an AI summary after each call
Parameter Type Description messagestring Response message (success) statestring Update state (updated)
A Trigger is a block that starts a workflow when an event happens in this service.
Trigger workflow when a Bolna call reaches a final status, with its transcript, summary, extracted data, recording, and cost
Parameter Type Required Description completedOnlyboolean No Run only when the call status is completed. When off, the trigger also runs for no-answer, busy, failed, canceled, stopped, error, and balance-low calls. restrictToBolnaIpsboolean No Reject deliveries that do not come from Bolna’s documented webhook IPs (13.203.39.153, 13.126.9.249, 13.202.133.53).
Parameter Type Description idstring Execution (call) ID agentIdstring Agent that ran the call batchIdstring Batch the call belongs to, if any statusstring Final call status: completed, no-answer, busy, failed, canceled, stopped, error, or balance-low conversationDurationnumber Conversation length in seconds; 0 means no conversation happened totalCostnumber Total call cost in cents transcriptstring Newline-delimited transcript of "assistant:" and "user:" turns summarystring AI call summary (only when the agent's call summary is enabled) extractedDatajson Post-call extractions configured on the agent, keyed by category then field errorMessagestring Error message, if any answeredByVoiceMailboolean Whether voicemail answered the call recordingUrlstring Call recording URL toNumberstring Recipient phone number (E.164) fromNumberstring Caller phone number (E.164) hangupBystring Which side ended the call hangupReasonstring Why the call ended callTypestring inbound or outbound createdAtstring When the execution was created updatedAtstring When the execution last changed costBreakdownobject costBreakdown output from the tool ↳ llm number LLM cost in cents ↳ network number Telephony cost in cents ↳ platform number Bolna platform cost in cents ↳ synthesizer number Voice synthesis cost in cents ↳ transcriber number Transcription cost in cents ↳ totalCostToDeduct number Wallet deduction in cents telephonyDataobject telephonyData output from the tool ↳ duration number Provider-reported call duration in seconds ↳ toNumber string Recipient number (E.164) ↳ fromNumber string Caller number (E.164) ↳ recordingUrl string Call recording URL ↳ hostedTelephony boolean Whether the number is Bolna-hosted ↳ providerCallId string Telephony provider's call ID ↳ callType string inbound or outbound ↳ provider string Telephony provider ↳ hangupBy string Which side ended the call ↳ hangupReason string Normalized hangup reason ↳ hangupProviderCode number Provider's raw hangup code ↳ ringDuration number Seconds spent ringing ↳ postDialDelay number Seconds from dial to first ring ↳ toNumberCarrier string Carrier of the dialed number contextDetailsjson Recipient context the call ran with (recipient_phone_number, recipient_data) payloadjson The full execution payload as Bolna delivered it