If a human edits the output before it ships, the machine translation API is the cheapest line in your localisation budget by two or three orders of magnitude. Choose the engine that leaves the fewest edits on your language pairs and stop optimising the meter. At full post-editing rates, a million source characters costs roughly $13,600 to $25,500 to review. Google's NMT bill for the same text is $20. A batched small LLM is under a dollar.
For raw translation that nobody reviews (support tickets, internal search, user-generated content), price does decide it. A batched small model such as GPT-6 Luna or Claude Haiku 5.5 beats every per-character engine by a factor of 40 or more, as long as you rebuild the placeholder and tag checks the dedicated engines give you for free. Keep Google NMT or DeepL for formatted documents and markup-heavy strings.
All prices below were checked on each vendor's live pricing page on October 12, 2026, except DeepL, whose own page did not render for us and is quoted from a dated third-party capture.
The Numbers, Normalised to One Unit
The workload: 1 million characters of English UI and help-centre text into one European target language, sent as 5,000 segments of about 200 characters. LLM rows assume about 250,000 tokens each way and a 600-token system prompt with glossary, either batched at 50 segments per call or sent one segment per call.
| Engine | Published rate (Oct 12, 2026) | Cost per 1M source chars | Glossary and tags | Who should skip it |
|---|---|---|---|---|
| Google Cloud Translation NMT | $20 per 1M chars, first 500K/month free | $20 | Native glossary, case-sensitive by default | Teams with a cheap LLM that already passes their QA |
| Google Translation LLM | $10 per 1M input chars + $10 per 1M output chars | ~$20 | Native glossary plus contextual glossary | Anyone expecting "LLM" to mean cheaper here |
| Google Adaptive Translation | $25 input + $25 output per 1M chars | ~$50 | Native glossary, adapts to your examples | Anyone who has not tested few-shot prompting first |
| DeepL API Growth | $32.50/month incl. 1M chars, $27.50 per extra 1M | $27.50 at the margin | Glossaries, HTML tag handling | Low-volume users paying the base fee for a few strings |
| Amazon Translate | $15 per 1M chars; Active Custom Translation $60 | $15 / $60 | Custom terminology; parallel data for ACT | Teams paying 4x for ACT without a measured edit reduction |
| Azure AI Translator (S1) | ~$10 per 1M chars (third-party reported), 2M free/month on F0 | ~$10 | Custom translation from $40 per 1M chars | Teams who need a published S1 rate in writing |
| GPT-6 Luna / Claude Haiku 5.5 | $0.10 / $0.50 per 1M tokens in / out | $0.16 batched, $0.45 per segment | Prompt only; you validate | Anyone without a placeholder checker |
| Gemini 3.8 Flash | $0.75 / $3.75 per 1M tokens | $1.17 batched, $3.38 per segment | Prompt only | Anyone without a placeholder checker |
| Claude Sonnet 5.5 | $2 / $10 per 1M tokens | $3.12 batched, $9.00 per segment | Prompt only | Raw MT nobody reviews (overpaying) |
| GPT-6 Astra | $10 / $50 per 1M tokens | $15.60 batched; past $100 with heavy reasoning output | Prompt only | Bulk translation of any kind |
| Self-hosted MADLAD-400 on one L4 | $0.44-$0.59 per GPU hour | ~$320-$430/month fixed | Whatever you build | Anyone under ~20M chars/month |
Sources for each row are in the sections below. The loser is the frontier reasoning model used as a bulk translator: it costs about as much as NMT before reasoning tokens and several times more after, for a job where the batched small models cost about a hundredth as much. Google Adaptive Translation and Amazon's Active Custom Translation are the runners-up: both charge 2.5x to 4x the base engine for adaptation you should first try to buy with a few examples in a cheap model's prompt.
What Each Engine Actually Charges
Per-character engines bill once, on the source text, and they bill every character you send. Google charges $20 per million characters for NMT after a monthly allowance of 500,000 free characters, applied as a $10 credit. The same page bills its Translation LLM at $10 per million input characters and $10 per million output characters, which lands at the NMT price whenever the translation is about as long as the source. Adaptive Translation, the mode that conditions on your own example pairs, costs $25 in and $25 out. Document translation of DOCX, PPTX and PDF files is billed per page, at $0.08 a page on NMT. Google counts whitespace and markup as billable characters, including text it leaves untranslated.
Google also added LoRA fine-tuning to Translation LLM in February 2026. Custom-model training and hosting are priced separately on the same page; get the figure in writing before you plan around it.
Amazon Translate charges $15 per million characters for real-time and batch text, $30 for real-time DOCX, and $60 per million for Active Custom Translation, its mode that adapts output to your parallel data. The free tier is 2 million characters a month for 12 months.
Azure's Translator pricing page renders its S1 pay-as-you-go rates only through the calculator. What it does print: the F0 tier includes 2 million characters a month of translation and custom training, and on the D3 volume tier custom translation costs $40 per million characters and training $10 per million characters, capped at $300 per run. The S1 standard rate is reported at $10 per million characters by third parties. Microsoft's own support answer confirms the counting rules that matter for budgets: every Unicode code point counts, HTML tags count, and each target language is a separate charge, so 3,000 characters into three languages bills as 9,000.
DeepL moved new API customers off the old Free and Pro plans in mid-2026. The replacement Growth plan costs $32.50 a month with 1 million characters included and $27.50 per additional million (EUR €29.75 and €22.00), per a capture of DeepL's pricing page dated September 22, 2026; SimpleLocalize's June 2026 comparison reports the same structure and a 50 million character monthly cap. Existing Pro customers keep their plan. Enterprise is contact sales. Confirm the USD figures on DeepL's live page before you sign, because we could not load it directly.
Why a Token Price Has to Be Scaled Before It Fits the Table
A token is the unit an LLM bills in: a chunk of text that averages about 4 characters in English. So a million characters is roughly 250,000 tokens, and a per-million-token price must be divided by four before it sits next to a per-million-character price. Do that for GPT-6 Luna's $0.10 input rate and you get $0.025 per million characters, a number that makes every NMT engine look absurd.
That figure is wrong for three reasons, and each one moves the bill.
First, output tokens are the half nobody models. A translation is about as long as its source, so per-token MT is always a two-sided bill, while NMT charges once. For Luna the output side ($0.50 per million tokens) is 80% of the batched cost. For Claude Sonnet 5.5 at $2 in and $10 out, output is $2.50 of a $3.12 bill.
Second, the system prompt is resent with every call. A 600-token prompt with instructions and a glossary, sent once per 50-segment batch, adds 60,000 tokens per million characters. Sent once per segment, it adds 3 million, twelve times the text you are translating. That is the difference between $3.12 and $9.00 on Sonnet, and between $1.17 and $3.38 on Gemini 3.8 Flash at $0.75 in and $3.75 out. Prompt caching recovers most of the per-segment penalty: Anthropic bills a cached read on Haiku 5.5 at $0.01 per million tokens. Batch APIs at OpenAI, Google and Anthropic halve the rest.
Third, non-English text tokenises worse, and in translation the non-English side is your output. The 4-characters-per-token rule is an English rule. Oxford researchers found that the same text can produce token counts up to 15 times apart across languages, and the gap persists in tokenizers built to be multilingual. Translating into Hindi, Thai or Amharic can multiply the output side several times over. Per-character engines do not have this problem, which is why the crossover moves for non-Latin targets.
Two further traps sit on the token side. Claude Haiku 5.5 bills $0.50 in and $2.50 out once a prompt passes 100,000 tokens, five times its short-prompt rate, so a team that pastes a full termbase into every call pays for it twice. And reasoning models bill their thinking as output: in a July 2026 three-task test, two open models emitted 1,900 to 2,850 output tokens to return translations of about 50, making them roughly 7.6 and 9.4 times more expensive per translation than Claude Sonnet despite lower list prices, with no detectable quality gain. Turn reasoning off, or pick a model without it, for translation.
Glossaries, Tags and Placeholders: What You Rebuild
Dedicated engines enforce terminology and markup natively; with an LLM you write that enforcement yourself and pay for it in re-translations when it slips.
Google's glossaries work with NMT, Translation LLM and custom NMT models, hold up to 10.4 million bytes of terms, and are case-sensitive by default. Only Translation LLM supports contextual glossary translation, where a term is inflected to fit the sentence instead of pasted in. DeepL's API extracts text from HTML when you set tag_handling=html, translates it and places it back into the same structure, and skips any element marked translate="no".
An LLM does none of that unless the prompt asks, and nothing checks that it complied. The failure modes are the ones localisation teams already know from older MT: a dropped %s, a reordered {count}, a <b> closed in the wrong place. Git's translation guide for AI agents shows the rule you will end up writing: preserve escape sequences, placeholders and quotes exactly, and use positional %n$ syntax when word order changes. Budget a validator that diffs placeholders, tags and glossary terms between source and target for every segment, and an automatic retry when it fails. Retries are cheap on Luna; a broken string that reaches production and comes back through a bug report is not.
How to Judge Quality per Language Pair
There is no single best engine; the winner changes by language pair and content type, so measure on your own text before you sign anything. The organisers of WMT24, the annual machine translation shared task, titled their findings "The LLM Era Is Here but MT Is Not Solved Yet": they compared eight LLMs and four online providers across 11 language pairs using professional annotators. Intento's 2025 report evaluated 46 engines and LLMs on the same number of pairs and gave its best results to a multi-agent workflow (translator, reviewer and post-editor agents), which costs several LLM calls per segment.
Run the test yourself in two layers. First, score each candidate engine on a few hundred of your real segments per pair with COMET, which compares output against a reference, or CometKiwi, its reference-free quality-estimation model, which scores output with no human reference at all. CometKiwi checkpoints require accepting a licence on Hugging Face before use. Public benchmarks such as FLORES-200 tell you which engines deserve a slot in that test; your own segments decide the winner. Second, give a sample from the top two engines to the people who will post-edit, and time them. Their minutes per thousand words is the number that sets your budget.
Self-Hosted Open NMT Is the Floor, With a Catch in the Licence
Self-hosting replaces the per-character meter with GPU hours and an engineer, and it only wins at sustained volume. MADLAD-400 3B is Apache 2.0 and lists 419 languages, although its own card notes evaluation covered 204 of them. Meta's NLLB-200 is licensed CC-BY-NC 4.0 and described by its card as "a research model and is not released for production deployment", which rules it out for most commercial pipelines regardless of its quality.
One always-on NVIDIA L4 on RunPod lists at $0.44 to $0.59 an hour, or about $320 to $430 a month. That equals Google NMT's bill for 16 to 21 million characters a month, before anyone's time to patch, monitor and re-evaluate it. Below that volume self-hosting loses. Above it, self-hosting wins if your own throughput test shows one GPU keeps up, and most clearly when a data-residency rule already forces you to run models in-house.
The Line No API Price Includes
Human post-editing dominates every other cost for published content, so price the pipeline end to end or the API comparison means nothing. Post-editing is the human review and correction of machine output, sold as "light" (fix errors that change meaning) or "full" (bring it to publishable quality).
Rates are not published by a neutral body, so treat these as vendor and trade figures. One agency puts light post-editing at $0.03 to $0.08 a word and full post-editing at $0.08 to $0.15, against $0.15 to $0.30 for human translation. A 2026 UK agency guide puts light post-editing at 40-50% and full at 50-70% of the human per-word rate, with throughput of 3,000 to 5,000 words a day against about 2,000 for translating from scratch. Nimdzi argues light post-editing justifies discounts of up to 35-40% off the regular word rate, and warns that edit distance is an unreliable measure of the effort saved.
Our working conversion is about 170,000 English words per million characters (roughly six characters per word including spaces). On that basis:
| Line, per 1M source characters | Cost |
|---|---|
| GPT-6 Luna, batched | ~$0.16 |
| Google NMT | $20 |
| Google Adaptive Translation | ~$50 |
| Light post-editing at $0.03-$0.08/word | ~$5,100-$13,600 |
| Full post-editing at $0.08-$0.15/word | ~$13,600-$25,500 |
At full post-editing rates, Google's NMT line is about 0.1% of the total. A 10% cut in editing effort is worth $1,360 or more per million characters. The difference between Luna and Sonnet is about $3. On reviewed content, any measurable drop in edit time pays for the dearest engine on this page many times over.
The Decision: What Actually Predicts Regret
Three questions decide this, in order.
First, does a human review the output before it ships? If yes, the API price is noise. Pick per language pair by edit time, and be willing to pay Sonnet or Adaptive Translation rates if the editors are faster on them. If no, the API price is most of the bill, and a batched small LLM with a validator is the default.
Second, how much markup is in the source? Formatted documents, HTML with inline tags, and strings full of ICU placeholders favour Google NMT and DeepL, whose tag handling is built in. Plain sentences favour LLMs. Mixed pipelines route by content type.
Third, which target languages? For non-Latin scripts, measure tokens per character on your own text before trusting any per-token estimate, because the output side can grow several times over while per-character engines stay flat.
What changes the answer: a data-residency rule that pushes you toward self-hosting, a termbase too large to fit in a short prompt (which favours an engine with a native glossary), or a volume past 20 million characters a month, where a single GPU starts to pay for itself.
What to Do Next
This Week:
- Pull last quarter's localisation invoices and split them into API spend and human review. If review is more than 95% of the total, stop negotiating per-character rates.
- Count characters, not words, on your real source: include tags and placeholders, and multiply by the number of target languages, because every vendor bills each target separately.
This Month:
- Pick 300 real segments per top language pair and run them through two per-character engines and two LLMs. Score with CometKiwi, then hand the top two to your editors and time them.
- Write the placeholder, tag and glossary validator before any LLM translation reaches production, and log every retry it triggers.
Before Next Budget Cycle:
- Route by content type: reviewed marketing and docs to whichever engine your editors correct least, unreviewed support content to a batched small LLM, formatted documents to an engine with native tag handling.
- Re-check every vendor price on this page. DeepL changed its API plans in mid-2026 and Gemini 3.8 Flash's list price is scheduled to double on January 1, 2027.
The Bottom Line
Per-character pricing dates from a time when the engine was a large share of the translation bill. A batched small LLM now does a million characters for well under a dollar, and Google's own Translation LLM is priced to match its NMT. On reviewed content the remaining cost is the editors, so their minutes per thousand words is the figure to buy against. On unreviewed content, take the cheap model and spend the savings on the validator.
Time your editors on two engines before you compare another rate card.
Continue Reading
- Inference Cost per Million Tokens: Price the Task, Not the Rate
- Prompt Caching Savings: One Timestamp Turns 80% Into 6%
- Claude Haiku 5.5 Charges 5x Once a Prompt Passes 100K Tokens
- Google Meet Now Translates 70 Languages Live. Here's the ROI.
- Vendor AI Benchmarks: Only Numbers With Logs Belong in the Deck
- Fine-Tuning vs RAG Cost: The Training Bill Isn't the Bill
