What 200+ languages cost on AI tokenizers
We sent the same 1,012 sentences, in 221 languages and English, through eight tokenizers, including Claude and Gemini. Saying the same thing costs anywhere from about the same as English to more than seventeen times as many tokens, depending on the language and the model.
What we found
No tokenizer is cheapest everywhere
Among the three big commercial tokenizers, OpenAI’s o200k is the cheapest for 98 of the 221 languages, Claude’s for 62 and Gemini’s for 61. Gemini 3 has the lowest average premium, 2.11×, while o200k has the lowest median, 1.77×: it is the best choice for a typical language and weaker on rare scripts. Which model is cheapest depends on your language, so the table below shows it for each one.
The highest costs fall on languages with their own scripts
The most expensive languages are written in scripts that few tokenizers have learned: Chakma (up to 17.52×), Mongolian script (up to 16.20×), Santali in Ol Chiki, Manipuri in Meitei Mayek, N’Ko and Tifinagh. Several are languages of India: Santali and Manipuri are both among India’s scheduled languages, and Chakma is spoken in India’s north-east and in Bangladesh.
The script matters more than the language
Some languages appear twice in the corpus, written in two scripts. On every commercial tokenizer, Manipuri costs about 3× English in Bengali script but 9 to 12.5× in Meitei Mayek; Mongolian about 2× in Cyrillic but 11 to 16× in Mongolian script; and Tamasheq about 2× in Latin but 5 to 10× in Tifinagh. Same language, same sentences: the difference is entirely the writing system.
Chinese, Japanese and Korean are close to English
Mandarin costs only 1.1 to 1.4× English on the three commercial tokenizers, Korean 1.4 to 1.6× and Japanese 1.2 to 1.7×. These scripts are well represented in the text tokenizers were built from, and each character carries a lot of meaning.
The Latin alphabet isn’t free either
The 134 languages written in Latin script average about 1.8× English on the commercial tokenizers. Most of them are smaller languages, such as Yoruba or Quechua, whose words the tokenizers rarely saw, so they are split into more pieces even though the letters are familiar.
Claude is strong on Latin, Cyrillic and Chinese, weakest on Indian scripts
Claude is competitive for Latin, Cyrillic and Chinese-family text. For Indian scripts it costs the most of the three: Punjabi averages 6.47× on Claude against 2.69× on Gemini and 2.62× on GPT. Our Indian languages study looks at this in detail.
By writing system
Each cell is the average premium for the languages written in that script: how many times more tokens they need than English for identical content. Writing systems are ordered from most to least expensive on average, and tokenizers from cheapest to most expensive.
| Gemini 3via API | Gemma 2open | Claudevia API | GPT o200kopen | Qwen 2.5open | Llama 3open | Mistralopen | GPT cl100kopen | |
|---|---|---|---|---|---|---|---|---|
| Chakma1 language | 17.37 | 7.91 | 11.24 | 17.52 | 12.97 | 16.54 | 15.73 | 17.33 |
| Mongolian1 language | 11.35 | 6.32 | 11.28 | 16.20 | 7.84 | 15.36 | 15.09 | 15.69 |
| Meitei Mayek1 language | 9.35 | 4.92 | 9.02 | 12.49 | 12.17 | 12.36 | 11.83 | 12.35 |
| Ol Chiki1 language | 5.25 | 5.16 | 9.41 | 13.70 | 8.92 | 12.74 | 12.33 | 12.74 |
| N’Ko1 language | 11.08 | 6.23 | 9.01 | 11.32 | 7.57 | 11.20 | 10.18 | 11.20 |
| Myanmar2 languages | 3.77 | 5.38 | 5.61 | 5.55 | 9.68 | 13.21 | 10.23 | 13.30 |
| Odia1 language | 3.51 | 4.99 | 5.10 | 4.99 | 9.70 | 12.16 | 11.97 | 12.40 |
| Tifinagh2 languages | 4.82 | 5.16 | 7.94 | 10.19 | 5.16 | 10.07 | 6.99 | 10.07 |
| Tibetan2 languages | 3.94 | 3.85 | 5.02 | 8.54 | 7.63 | 11.67 | 7.46 | 11.66 |
| Lao1 language | 2.62 | 4.59 | 4.04 | 8.23 | 5.69 | 8.79 | 10.69 | 9.54 |
| Gurmukhi1 language | 2.69 | 3.23 | 6.47 | 2.62 | 7.28 | 7.81 | 10.40 | 7.85 |
| Malayalam1 language | 1.85 | 3.24 | 4.04 | 1.96 | 7.23 | 8.94 | 10.82 | 8.94 |
| Khmer1 language | 2.73 | 5.35 | 4.04 | 3.34 | 6.47 | 8.72 | 6.13 | 8.71 |
| Kannada1 language | 1.92 | 3.31 | 5.82 | 1.97 | 6.92 | 8.86 | 6.27 | 8.86 |
| Sinhala1 language | 2.29 | 4.08 | 3.03 | 2.69 | 6.88 | 8.63 | 7.40 | 8.68 |
| Ge’ez (Ethiopic)2 languages | 2.21 | 3.26 | 2.90 | 5.87 | 4.10 | 7.68 | 6.60 | 7.69 |
| Telugu1 language | 1.78 | 2.87 | 2.83 | 1.93 | 6.99 | 8.29 | 7.18 | 8.29 |
| Gujarati1 language | 1.86 | 3.02 | 2.77 | 1.79 | 6.74 | 7.67 | 8.63 | 7.66 |
| Georgian1 language | 2.29 | 3.68 | 2.43 | 1.78 | 5.19 | 9.76 | 4.84 | 9.75 |
| Armenian1 language | 2.84 | 3.04 | 2.27 | 1.79 | 5.27 | 8.65 | 5.30 | 9.88 |
| Tamil1 language | 1.47 | 2.60 | 3.07 | 1.98 | 6.11 | 7.65 | 5.84 | 7.64 |
| Bengali–Assamese3 languages | 1.91 | 3.20 | 2.99 | 2.25 | 5.34 | 6.18 | 5.31 | 6.22 |
| Greek1 language | 2.18 | 2.29 | 2.48 | 2.13 | 4.90 | 2.23 | 5.24 | 5.12 |
| Devanagari10 languages | 1.56 | 2.16 | 2.32 | 1.80 | 4.37 | 2.59 | 4.50 | 4.78 |
| Hebrew2 languages | 2.19 | 2.12 | 1.98 | 1.75 | 2.11 | 4.59 | 4.07 | 4.59 |
| Thai1 language | 1.60 | 1.84 | 2.68 | 1.96 | 2.54 | 2.19 | 4.22 | 4.34 |
| Arabic23 languages | 1.80 | 1.96 | 2.12 | 1.85 | 2.37 | 2.30 | 3.88 | 3.52 |
| Cyrillic17 languages | 2.04 | 2.18 | 1.75 | 1.92 | 2.69 | 2.66 | 2.50 | 3.36 |
| Latin134 languages | 1.81 | 1.81 | 1.81 | 1.75 | 2.00 | 2.04 | 2.03 | 2.09 |
| Hangul1 language | 1.37 | 1.64 | 1.63 | 1.47 | 1.63 | 1.49 | 2.45 | 2.37 |
| Japanese1 language | 1.21 | 1.18 | 1.27 | 1.66 | 1.40 | 1.51 | 2.14 | 2.27 |
| Chinese, traditional2 languages | 1.14 | 1.14 | 1.19 | 1.48 | 1.21 | 1.41 | 1.86 | 2.21 |
| Chinese, simplified1 language | 1.08 | 1.08 | 1.14 | 1.25 | 1.00 | 1.28 | 1.61 | 1.87 |
| Average221 languages | 2.11 | 2.17 | 2.30 | 2.34 | 2.85 | 3.15 | 3.24 | 3.52 |
The legend runs to 12×; a few cells are higher. Script averages hide differences between languages, so use the table below for any one language.
Every language
Search by language, script or code, and click a column heading to sort. The lowest premium in each row is highlighted, and the last column shows which of the three big commercial tokenizers is cheapest for that language.
Premium = tokens for the language ÷ tokens for the same sentences in English, so English is 1.00 on every tokenizer. “Big three” means Claude, Gemini 3 and GPT o200k.
Method
The corpus is the devtest split of FLORES+: 1,012 sentences professionally translated into each language and aligned line by line, so every language expresses identical content. We used every FLORES+ variety whose file had exactly as many sentences as English: 221 varieties plus English. Where FLORES+ gives two varieties the same name, such as Valencian and standard Catalan, we label them separately. For each tokenizer we counted the tokens needed for the whole set in each language and divided by the count for English.
Open tokenizers were run locally, sentence by sentence. Claude and Gemini publish no tokenizer, so we measured them through each provider’s free token-counting endpoint. To keep the run practical at this scale, each language’s sentences were sent as one request with a line break between sentences. For every language we also counted five sentences one by one to measure what a line break costs; in all 444 measurements it was exactly one token, so we subtracted one token per line break, which gives the same totals as counting each sentence separately. The fixed overhead each endpoint adds to every request was measured and subtracted too. As a check, the Indian languages in this study match our Indian languages study exactly.
Measured on 31 October and 1 November 2026.
| Tokenizer | How measured | Exact source |
|---|---|---|
| Gemini 3 | Provider counting API | gemini-3.8-flash (countTokens) |
| Gemma 2 | Open tokenizer, run locally | mlx-community/gemma-2-2b |
| Claude | Provider counting API | claude-sonnet-5-5 (count_tokens) |
| GPT o200k | Open tokenizer, run locally | tiktoken 0.14.0, o200k_base |
| Qwen 2.5 | Open tokenizer, run locally | Qwen/Qwen2.5-0.5B |
| Llama 3 | Open tokenizer, run locally | Xenova/llama3-tokenizer |
| Mistral | Open tokenizer, run locally | Xenova/mistral-tokenizer-v1 |
| GPT cl100k | Open tokenizer, run locally | tiktoken 0.14.0, cl100k_base |
Limitations
- Gemini was measured on
gemini-3.8-flash, which gave counts identical togemini-3.6-flashon every Indian language, and Claude onclaude-sonnet-5-5, which counts identically toclaude-sonnet-5. Gemini 4 Argon uses a different tokenizer and isn’t in this study yet; see the Indian languages study for how it differs. - FLORES+ is formal, news-domain text. Everyday writing, transliterated text and code-mixed text may give different premiums.
- Language and script names follow FLORES+ and ISO 15924. The Mongolian-script row is labelled Halh Mongolian, as in FLORES+.
- Community copies of open tokenizers may differ marginally from the versions vendors run in production.
Data
world-languages-premiums.csv has every premium on this page, with total token counts for every language and tokenizer: 1,776 rows. It’s released under CC BY-SA 4.0, matching the corpus it was measured on. It contains measurements only. The FLORES+ sentences themselves aren’t included: the dataset’s terms ask that they not be re-hosted where web crawlers can reach them.
Every number on this page came from counting real text. You can do the same with yours, across every major model.
Measure your own prompt