Skip to main content
An Urdu voice agent on Bolna is a regular agent whose transcriber (speech-to-text) and voice (text-to-speech) are both set to Urdu, with a prompt written in Urdu (Perso-Arabic) script. This page lists the providers whose Bolna docs confirm Urdu support, the language code to send, and a minimal API example. Bolna’s language code for Urdu is ur. Urdu is one of the languages Bolna detects automatically mid-call. If you want one agent that handles both English and Urdu on the same call, start here for the Urdu side, then follow Set up multilingual voice AI agents. For every language, see the languages overview.

Choose an Urdu transcriber

The transcriber turns the caller’s Urdu speech into text. Send the plain code ur as transcriber.language, not a locale such as ur-IN (Create Agent). Sarvam does not accept Urdu through Bolna yet (see Notes). Compare all transcribers in Choosing a speech-to-text provider.

Choose an Urdu voice

The voice (synthesizer) speaks the agent’s replies. Most providers require language inside provider_config, so set it to ur (Create Agent). Voice catalogs change over time. Confirm a valid model and voice_id pair with List voices, or preview voices in the Languages tab. See Choosing a text-to-speech provider for a wider comparison.

Write the prompt for Urdu

  • Write in Urdu (Perso-Arabic) script, not romanized Urdu. السلام علیکم! آپ کیسے ہیں؟ rather than Assalam-o-alaikum! Aap kaise hain?. Native script gives more accurate pronunciation and stops the text being treated as English.
  • Keep common English loanwords in Latin script. Callers say “order”, “OTP” and “support ticket” in English, so keep those words as they are inside Urdu (Perso-Arabic) script text instead of forcing a pure Urdu translation.
  • Set gender and politeness explicitly. These are often carried by verb forms, so name the forms you want for the agent’s persona rather than writing “be polite”.
  • Read alphanumerics character by character, in English. For OTPs, registration numbers and order IDs, this avoids misheard and mispronounced digits.
  • Leave language switching out of the prompt. Bolna switches languages itself.
The full guidance, with examples, is in Writing prompts in non-English languages.

Create an Urdu agent over the API

This uses the same body shape as the API quickstart, with AssemblyAI for transcription and Soniox for the voice.
1

Write the agent config

Save this as agent.json:
Soniox addresses built-in voices by name, so voice and voice_id carry the same value. The docs don’t name an Urdu-specific Soniox voice, so treat Priya as a placeholder and pick a voice that suits Urdu callers in the Languages tab or with List voices.
2

Create the agent

The response contains the new agent_id.
3

Place a test call

Call the agent with POST /call, as in the API quickstart, and check the transcript with GET /executions/{id}.
To use another provider, swap the transcriber or synthesizer block for one from the provider’s page. Every combination is validated when you create the agent: an unsupported transcriber model and language pair returns 400 Provided language: <language> is not available for the model: <model>.

Improve recognition with keywords and context

Brand names, product names and place names are where Urdu transcription most often goes wrong. Bolna has two transcriber fields for this:
  • keywords: a comma-separated list of terms callers say.
  • context: a sentence or two describing the call.
Support for Urdu transcribers:
  • AssemblyAI: reads both. Up to 100 terms, and context up to 1,750 characters.
See Keywords and context for the full provider support table and how to write good terms.

Serve Urdu and English on one agent

Many callers move between Urdu and English. Bolna handles this in two ways:
  • Code-mixing within a sentence. AssemblyAI universal-3-6-pro code-switches across its 32 languages, so a caller who mixes Urdu and English mid-sentence is handled without changing configuration. A sentence with a few English words is still treated as Urdu.
  • A full language switch. Add both English and Urdu to one agent with multilingual_config, each with its own transcriber, voice and prompt. Urdu is one of the languages Bolna detects automatically, so with the default “requested or auto detected” trigger the agent follows a caller who moves into Urdu. The multilingual quickstart shows the API shape.
On a multilingual agent, you can also:
  • Start a call in Urdu with "agent_data": { "language": "ur" } on POST /call, or an agent_language column set to ur in a batch CSV. Inbound calls can return agent_language from your caller data source.
  • Let system messages such as the hangup and “are you still there?” checks follow the active language.
  • Read How language switching works for what does and doesn’t trigger a switch.
Hindi, Marathi and Urdu are look-alike languages, so Bolna decides a switch between them from the grammar of the whole sentence. Configure every language your callers use, each with its own voice and transcriber.

Notes

  • Sarvam’s Saaras models cover Urdu on Sarvam’s own API, but Urdu is not yet available through Bolna on Sarvam. "language": "ur" on saaras:v4 or saaras:v3 fails agent creation with 400 Provided language: ur is not available for the model: <model>.
  • Use AssemblyAI universal-3-6-pro to transcribe Urdu. universal-3-5-pro does not cover it.
  • Soniox tts-rt-v2 is the only voice provider whose page lists Urdu. The Cartesia page notes that Urdu is not yet selectable in Bolna on sonic-3.6.

Phone numbers for Urdu agents in India


Next steps

Languages overview

Every language with a guide, and its providers

Multilingual setup

Indian language support by provider, and per-language voices and prompts

AssemblyAI speech-to-text

Universal-3.6 Pro, its 32 languages and biasing limits

Soniox text-to-speech

tts-rt-v2, named voices and required settings

Start a call in a language

Pick the opening language per call, batch row or inbound caller

How language switching works

What does and doesn’t trigger a mid-call switch