---
title: "Supported languages"
description: "Every language ThunderPhone agents can speak, which voices support each one, and how per-minute pricing differs between included and premium languages."
---

{/*
  GENERATED FILE — do not edit by hand.
  Source: api/thunderphone_api/data/voice_catalog.json
  Regenerate: python3 scripts/docs-freshness/generate_supported_languages.py
  CI regenerates this page and fails on drift
  (scripts/docs-freshness/generators.d/10-supported-languages.sh).
*/}

ThunderPhone agents speak **47 languages** with **127
voices**. A call starts in the agent's primary language and switches
automatically when a caller uses one of the agent's additional
languages. Set both in the agent builder's **Config** tab, or via the
`primary_language` and `additional_languages` fields on the
[Agent](/api-reference/agents).

## Keep one voice or switch to native voices

By default, the agent keeps its configured voice when it switches languages.
Open **Voice Agents**, select the agent, and in **Config** add at least one
language under **Additional languages**. Turn on **Switch to native voices**, test the
draft in **Talk**, and select **Deploy**.

The switch uses a catalog voice native to the detected additional language,
matched to the configured voice's gender. The agent returns to its configured
voice for the primary language and keeps the current voice if no match is
available. Custom voices do not switch automatically. The switch itself has no
surcharge; a premium language still adds its listed price. API clients can set
`native_voice_switching: true` through the [Agents API](/api-reference/agents).

Two pricing tiers:

- **Included** languages (15) cost nothing beyond the
  agent's engine rate.
- **Premium** languages (32) add +3¢/min to the
  agent's per-minute rate.

<Note>
  Voice availability differs by language — the table shows how many
  voices speak each one. Filter live via
  [`GET /v1/voices?languages=<codes>`](/api-reference/agents#voices);
  the dashboard's voice picker applies the same filter as you select
  languages.
</Note>

| Language | Code | Voices | Pricing |
|----------|------|--------|---------|
| Arabic | `ar` | 8 | Included |
| Bengali | `bn` | 8 | Premium (+3¢/min) |
| Bulgarian | `bg` | 8 | Premium (+3¢/min) |
| Cantonese | `yue` | 6 | Premium (+3¢/min) |
| Chinese | `zh` | 8 | Included |
| Croatian | `hr` | 8 | Premium (+3¢/min) |
| Czech | `cs` | 8 | Premium (+3¢/min) |
| Danish | `da` | 8 | Premium (+3¢/min) |
| Dutch | `nl` | 8 | Included |
| English | `en` | 50 | Included |
| Estonian | `et` | 6 | Premium (+3¢/min) |
| Finnish | `fi` | 8 | Premium (+3¢/min) |
| French | `fr` | 8 | Included |
| German | `de` | 8 | Included |
| Greek | `el` | 8 | Premium (+3¢/min) |
| Gujarati | `gu` | 8 | Premium (+3¢/min) |
| Hebrew | `he` | 8 | Included |
| Hindi | `hi` | 8 | Included |
| Hungarian | `hu` | 8 | Premium (+3¢/min) |
| Indonesian | `id` | 8 | Premium (+3¢/min) |
| Italian | `it` | 8 | Included |
| Japanese | `ja` | 8 | Included |
| Kannada | `kn` | 8 | Premium (+3¢/min) |
| Korean | `ko` | 8 | Included |
| Latvian | `lv` | 6 | Premium (+3¢/min) |
| Lithuanian | `lt` | 6 | Premium (+3¢/min) |
| Malayalam | `ml` | 8 | Premium (+3¢/min) |
| Marathi | `mr` | 8 | Premium (+3¢/min) |
| Norwegian | `nb` | 8 | Premium (+3¢/min) |
| Polish | `pl` | 8 | Included |
| Portuguese | `pt` | 8 | Included |
| Punjabi | `pa` | 8 | Premium (+3¢/min) |
| Romanian | `ro` | 8 | Premium (+3¢/min) |
| Russian | `ru` | 8 | Included |
| Serbian | `sr` | 6 | Premium (+3¢/min) |
| Slovak | `sk` | 8 | Premium (+3¢/min) |
| Slovenian | `sl` | 6 | Premium (+3¢/min) |
| Spanish | `es` | 12 | Included |
| Swahili | `sw` | 6 | Premium (+3¢/min) |
| Swedish | `sv` | 8 | Premium (+3¢/min) |
| Tamil | `ta` | 8 | Premium (+3¢/min) |
| Telugu | `te` | 8 | Premium (+3¢/min) |
| Thai | `th` | 8 | Premium (+3¢/min) |
| Turkish | `tr` | 8 | Premium (+3¢/min) |
| Ukrainian | `uk` | 7 | Premium (+3¢/min) |
| Urdu | `ur` | 8 | Premium (+3¢/min) |
| Vietnamese | `vi` | 8 | Premium (+3¢/min) |
