Skip to main content

📘 Create Agent API reference now covers every provider

The Create Agent API reference documented a fraction of what the API actually accepts — two transcribers and four synthesizers. It now lists the full set, with the exact provider and model values each one takes:
  • 11 transcribers — Deepgram (including Flux), Sarvam, OpenAI, Azure, ElevenLabs, AssemblyAI, Gladia, Smallest, Soniox, Gemini and Google
  • 12 synthesizers — ElevenLabs, Cartesia, Sarvam, Smallest, Deepgram, Polly, Azure, Rime, Maya, Kalpa, OpenAI and Gemini
  • 18 accepted LLM provider values, including the LiteLLM-routed ones that have no reference page
Several corrections are worth knowing if you build agents through the API:
  • Sarvam transcription takes a plain language code — send "language": "hi", not "hi-IN", which is rejected
  • cartesia, sarvam, smallest, rime, openai and polly require a language key inside provider_config
  • Two provider values don’t match their product names: the AssemblyAI transcriber is assembly, and the Azure synthesizer is azuretts
  • keywords is read by Deepgram and ElevenLabs only, and a word:boost suffix is stripped before storage — send plain terms
  • POST /v2/agent returns a version_id alongside agent_id and state
The ElevenLabs voice used throughout the API examples had been retired and failed agent creation; every example now uses a voice from the live catalogue.Create Agent API · Audio tab · Choosing providers

Extraction categories API

Extraction categories are now first-class API objects. A category is the set of dispositions evaluated together in a single LLM pass — one category means one LLM call per conversation — and the category owns the model used for that pass.New endpoints:
  • POST /agent/{agent_id}/extraction-categories — create a category (name + model) and attach it to an agent
  • GET /agent/{agent_id}/extraction-categories — list an agent’s categories with their dispositions
  • PATCH /extraction-categories/{category_id} — rename a category or change its model; renames propagate to all its dispositions
  • DELETE /extraction-categories/{category_id} — delete a category and all of its dispositions
The disposition endpoints accept category_id (preferred) alongside the existing category name — a name that does not match one of the agent’s categories creates a fresh category — and every disposition response includes category_id. Move a disposition between categories by updating it with a new category_id; a category emptied by a move or delete is removed automatically.

Call summary toggle

  • Call summaries are an agent-level toggle: call_summary_enabled (boolean, off by default) on the agent create and update APIs and in agent responses. When on, a platform summary pass runs after each call and writes the summary to the execution’s summary field and to extracted_data under General > Call Summary with only a subjective value; agents with the toggle off produce no call summary.
Extraction Categories API · Dispositions API · Using Extractions

Kalpa Labs joins Bolna as a new voice synthesizer

Kalpa Labs is now available as a text-to-speech provider. Its kalpa-tts-multilingual-beta-v0.1 model speaks English, Hindi, and code-switched Hinglish from a single model, with no language parameter to set. An English-only kalpa-tts-beta-v0.1 model is also available.
  • Runs over a persistent WebSocket, so model output is spoken as it streams in rather than in fixed chunks
  • Named voices from Kalpa’s catalog, addressed by name or voice id
  • Supports both telephony (mu-law) and web (native 24 kHz) audio
Kalpa Labs voice provider docs

📦 Migration guide: moving off legacy extraction fields

Custom Analytics (custom_extractions), Agent Extraction (agent_extraction), and flat extracted_data keys are being retired on 18th September, 2026 in favor of Extractions. A new guide walks through what changes in the payload, how to rebuild each legacy feature, and how to verify a migration against real transcripts before switching off the old read path.📘 Migrating to Extractions

🛒 Bolna is now on AWS Marketplace

You can now buy Bolna directly through AWS Marketplace, with Pilot and Enterprise contract tiers available as monthly or annual terms. Procuring this way lets you draw down your existing AWS committed spend and consolidate billing onto your AWS invoice.An “AWS Marketplace” tile is also now available on the Providers page in your dashboard, linking straight to the listing.📘 Buy Bolna on AWS Marketplace

🌐 More accurate language switching for multilingual agents

If your voice agent speaks more than one language, it’s now much better at telling when a caller has actually switched languages, instead of reacting to a single stray word.Before: one borrowed word — like an English word inside a Hindi sentence — could make the agent switch languages by mistake.Now:
  • The agent only switches when the caller speaks a full sentence in another language, or clearly asks for one by name.
  • Everyday things like “okay,” a phone number, or an OTP no longer count as a language change, even mid-sentence.
  • If the agent misreads a word, it recovers on the caller’s next turn instead of staying stuck in the wrong language.
This works automatically for every multilingual agent — no setup changes needed.📘 How Language Switching Works