Skip to content

Arabic token cost: why Arabic uses more tokens and the fix

Why the same text costs more tokens in Arabic than in English, measured on a real tokenizer, with a cost example and ways to cut Arabic token use.

Updated November 1, 2026Markdown version

Arabic usually costs more per message than English: the price per token is the same in every language, but the same meaning splits into more tokens. On o200k_base, OpenAI's tokenizer for its recent GPT models, our Arabic test texts used 1.2 to 1.5 times the tokens of their English originals. Diacritics and Arabic-Indic digits widen the gap.

Why Arabic uses more tokens#

A model doesn't read words. A tokenizer first cuts the text into pieces from a fixed vocabulary, and the provider bills every piece the model reads and writes. Common English words are often one piece each. Many Arabic words split into two to four.

Attached letters are not the main cause. «وسيكتبونها» is 4 tokens, while "and they will write it" is 5. «وبكتبهم» is 3, while "and with their books" is 4. The gap comes from ordinary words that split:

TextTokensHow it splits
Your subscription renews automatically every month.8Your · subscription · renew · s · automatically · every · month · .
يتجدد اشتراكك تلقائيًا كل شهر.12يت · ج · دد · اشت · راك · ك · تلق · ائي · ًا · كل · شهر · .

Across our four test texts, English used 1.13 tokens per word and Arabic used 1.91. The Arabic versions had fewer words (204 against 269), but not enough to close the gap.

What we measured#

We wrote four English texts, translated each into Modern Standard Arabic and counted both with OpenAI's tiktoken library (version 0.14.0) on o200k_base, on 2026-11-01:

TextEnglishArabicArabic ÷ English
Support reply811011.25
Product description701041.49
Model instruction73851.16
Short explainer801001.25
All four3043901.28

Three more results from the same test:

  • Older tokenizers are much worse. On cl100k_base, which OpenAI's library maps to its older GPT models, the English counts stayed the same and the four Arabic texts took 858 tokens: 2.82 times the English.
  • Diacritics multiply the count. The support reply with full diacritics took 345 tokens, against 101 without them: 3.4 times.
  • Digits matter too. A short order notice with dates and amounts took 39 tokens in English, 43 in Arabic with Western digits (0–9) and 53 with Arabic-Indic digits (٠–٩).

We also counted the prose of 48 pages of our own documentation, which we publish in both languages. There, Arabic took 1.18 times the English tokens (median 1.20, range 1.06 to 1.34). Technical pages keep model names, commands and paths in Latin script, and those count the same in both languages, so the gap narrows. The ratio depends on the text, so count your own.

Do Claude and Gemini count Arabic the same way?#

No. Each provider uses its own tokenizer, so the same Arabic text gives a different count on each one, and the ratios above hold for o200k_base only.

ModelsTokenizerHow to count
GPTo200k_baseOffline, with the tiktoken library
ClaudeAnthropic's ownThe count_tokens endpoint
GeminiGoogle's ownThe countTokens method

Anthropic describes its token count as an estimate, and notes that its newer Claude models use a newer tokenizer that produces more tokens for the same text, so recount your prompts after you switch models. Google's rule of thumb, about 4 characters per token or 60 to 80 English words per 100 tokens, is a general estimate; count Arabic text directly. Either way, the bill follows the usage field in each response.

A cost example#

Say a support bot handles 3,000 chats a month. In English, each chat averages 1,500 input tokens (instructions, history and the customer's message) and 300 output tokens. That is 4.5 million input and 0.9 million output tokens a month on gpt-5.6-sol:

GPT-5.6 Sol price per 1M tokens
Input$1.20Official price: $4
Output$6Official price: $20

Official price from the provider's page, checked October 19, 2026.

Example: what GPT-5.6 Sol costs

4.5M input tokens and 900K output tokens

Our price$10.8070% below the official price
Official price$36.00

Official price from the provider's page, checked October 19, 2026.

The same bot in Arabic, at about 1.3 times the tokens (the ratio across our four texts), uses 5.85 million input and 1.17 million output tokens:

Example: what GPT-5.6 Sol costs

5.9M input tokens and 1.2M output tokens

Our price$14.0470% below the official price
Official price$46.80

Official price from the provider's page, checked October 19, 2026.

The price per token is identical in both runs. Only the count changes, and the difference grows with your volume.

Six ways to cut Arabic tokens#

  1. Keep fixed instructions in English. The system prompt is sent with every request. Our model instruction took 73 tokens in English and 85 in Arabic, and the model can still reply in Arabic.
  2. Skip diacritics unless the meaning depends on them. Full diacritics took 345 tokens against 101 for the same reply.
  3. Use Western digits in data. Keep 0–9 in prompts and stored data, and convert to Arabic-Indic digits for display if you need them.
  4. Cap and shorten replies. Output costs more than input on every chat model in our list. Ask for short answers and set a limit: max_completion_tokens in Chat Completions, max_output_tokens in Responses or max_tokens in Messages.
  5. Cache long fixed parts. Long instructions or reference text that repeat on every request can be cached, and cache reads are billed below normal input. Claude needs cache_control, and GPT caches long repeated prefixes automatically. The details are in Prompt caching.
  6. Use a smaller model for simple tasks. GPT models on the same tokenizer count the same text the same way, so a smaller model cuts the price per token, not the count. Compare prices on the models page.

Count tokens before you send#

For GPT models you can count offline. This script counts the two sentences from the table above:

count_tokens.py
import tiktoken

enc = tiktoken.get_encoding("o200k_base")
for text in ["Your subscription renews automatically every month.", "يتجدد اشتراكك تلقائيًا كل شهر."]:
    print(len(enc.encode(text)), text)

It prints 8 and 12. For Claude models, send the request body without max_tokens to POST /v1/messages/count_tokens. It returns input_tokens without running the model. If it returns 404, send one short real request and read its usage. For Gemini models, use countTokens. In production, log usage from every response: it holds the tokens you are billed for.

How it works on 5abeer#

Each model on 5abeer has one price per million tokens for input and one for output, the same for Arabic and English text. A request costs the tokens in its usage times that model's price, and every API price is below the model's official price.

  1. Create a key#

    Create an API key in your dashboard. The steps are in Create a key.

  2. Add balance#

    Top up your balance with one of the payment methods. Requests draw from it, as described in Balance.

  3. Measure your own text#

    Send a few typical Arabic prompts and read usage in each response. That gives your real ratio and cost per request.

  4. Watch usage#

    Check spending by key and by model in Usage.

Prices for every model are on the models page and the API page.

Questions#

Is Arabic priced higher per token?#

No. A token costs the same in every language. An Arabic message costs more only because the same meaning takes more tokens.

How many tokens is one Arabic word?#

On o200k_base, our four Arabic texts averaged about 1.9 tokens per word, counting words by spaces, against about 1.1 for the English texts. Arabic attaches small words such as "and" and "the" to the next word, so the same meaning takes fewer words, but each word splits into more tokens.

Should I translate Arabic to English before sending?#

Usually not. The translation costs tokens of its own and can shift the meaning. Keep the fixed instructions in English and send the customer's text as it is.

Do these ratios hold for Claude and Gemini?#

No. We measured o200k_base, the tokenizer of recent GPT models. Claude and Gemini use their own tokenizers, so count with count_tokens or countTokens.

Are cached tokens billed at the full price?#

No. Cached tokens are billed at the lower cache read price shown on each model's page.

Sources#

Checked on 2026-11-01:

Get started#

Compare prices on the API page, or create a key and measure your own Arabic text in usage.