A DeepL API alternative that takes the whole locale file
The DeepL API translates the text you send it, and its translation quality is why many teams choose it. To translate an app with the API alone, you write the code that reads your locale files, keeps keys and variables, and writes each language back. KAERIS takes the file itself, returns it in 46 languages and checks every line.
An i18next file in, the same file out
Keys, their order and {{name}} stay as they are; only the values change.
{
"welcome": "Welcome back, {{name}}",
"files_one": "{{count}} file uploaded",
"files_other": "{{count}} files uploaded"
}
{
"welcome": "Bon retour, {{name}}",
"files_one": "{{count}} fichier importé",
"files_other": "{{count}} fichiers importés"
}
KAERIS and the DeepL API, side by side
An API you build on against a tool you point at a file.
| What | DeepL API | KAERIS |
|---|---|---|
| What it is | A translation API: your code sends text, gets text back | A tool that translates and checks files |
| Start without an account | No: sign up for an API key first | Yes |
| Glossaries | 1 on Developer (free), 2,000 on Growth | Yes, in kaeris-glossary.json |
Entry price, side by side
DeepL charges a plan fee plus usage. Our monthly plans have the volume in the price.
| What | DeepL API | KAERIS |
|---|---|---|
| Cheapest paid plan | €23.80/mo (Growth), billed annually, plus usage | $19/mo (Pro), or $79 once |
| Free plan | Developer: 1 million characters included | 10,000 characters per file, no account |
| Pay once, no subscription | No | $79 Lifetime, on your own OpenRouter key |
DeepL figures read from their pricing page (the API tab) on 1 November 2026, in the currency shown to us; prices change and theirs is the authority. Ours are on our pricing page.
When DeepL is the better choice
You want DeepL's own translation models, and their quality is the reason.
You translate more than app strings, such as documents or user content, through one API.
You already have code that reads your files and need only the translation call.
What KAERIS does with it
The file in, the same file out
13 formats, from JSON and YAML to
.po,.xcstringsand Android XML. Keys and their order stay; only the values change.Variables checked without AI
After translation a plain counting check compares every variable and tag with the original. A line that lost one is marked and shown on top.
Each line translated back
A different model, Gemini 2.5 Flash-Lite, translates every line back into your language, and DeepSeek V3.2 on US hosts (DeepInfra, DigitalOcean, Google) judges whether the meaning changed. You read what each line now says.
A check with no key
kaeris checkruns on your machine, sends nothing and fails the build when a translation lost a variable or a key went missing.
Questions
Do I need an account or API key to try KAERIS?
No. Up to 10,000 characters per file and 8 languages per run work with no account.
Does KAERIS use DeepL?
No. KAERIS translates with large language models, and DeepL is not one of them. A different model then translates each line back so you can read what it says.
Is it free?
Yes, without an account: 10,000 characters per file and up to 8 languages per run. A free API key raises the file limit to 50,000 characters. Lifetime is $79 once, on your own OpenRouter key; monthly plans start at $19. Pricing
Which one should I choose?
Text that flows through your own code, or documents and user content: the DeepL API. Locale files in a repository that need translating and checking: KAERIS.