Don’t have a key yet? Follow Generate an API key first. Telephone calls consume wallet credits, so keep a test number handy.
Prerequisites
- A Bolna API key (
export BOLNA_API_KEY="bn-xxxx") - A recipient phone number in E.164 format, e.g.
+919876543210 - A voice and transcription provider for each language — this guide uses ElevenLabs (English) and Sarvam (Hindi); see supported providers for other options
1
Start from a single-language agent
This is the same minimal body as the API Quickstart — nothing multilingual yet:
2
Add a multilingual_config block
Add
multilingual_config inside the same tools_config, with an entry for each language. The top-level transcriber/synthesizer from Step 1 become the English entry’s base:enabled: true and at least two entries in languages are required. See the Config Reference for every field, how per-language overrides layer onto the base, and language_switch_trigger.3
Create the agent
Nest the block from Step 2 into Step 1’s
tools_config and create the agent:201 Response
4
Place a test call
Call it exactly as in the API Quickstart, using this
agent_id. Answer in English, then reply in Hindi — the agent should switch recognition, voice, and replies together within that turn. See How Language Switching Works for exactly what should (and shouldn’t) trigger a switch, and pull the transcript from GET /executions/{id} to confirm.Adding this to an existing agent
multilingual_config lives under tools_config, which isn’t in the PATCH endpoint’s updatable-attributes list. To add multilingual support to an agent you already have, use PUT /v2/agent/{agent_id} with your full existing config plus the multilingual_config block from Step 2 — PUT replaces the whole agent, so include everything, not just what changed.
Next steps
How Language Switching Works
The decision engine behind mid-call switching, and what triggers it
Config Reference (API)
Every
multilingual_config field, in depthAuto-Switch System Messages
Localize the hangup, user-online, and tool-call messages too
Non-English Prompts
Write each language’s prompt well — native script, code-mixing, register

