Head to head · Translate text · October 2026 research run
LibreTranslate vs Phrase
Phrase scores 64.2 (B) on agent readiness against LibreTranslate's 49.8 (D), and leads in 6 of 7 scored categories. LibreTranslate leads on payments & pricing. Both do translate text.
Which one, for what
Good for Operators who must keep text on their own servers or want a fixed cost, and for light hosted use.
Ahead on
- Payments & pricing, 40 against 30
Also in its favour
- Open source
Watch for
No status page, SLA or terms of service for the hosted API
Phrase B
Good for Teams that keep translation projects, term bases and translation memories in Phrase and want an agent to run them, or to translate through engines chosen per language pair.
Ahead on
- Reliability, 55 against 35
- Schema & documentation, 87 against 65
- Agent ergonomics, 70 against 65
- Security & auth, 58 against 45
- Maintenance & community, 83 against 40
- Transparency & trust, 74 against 60
Also in its favour
- Free to start without a card
Watch for
status.phrase.com lists 14 incidents between 10 July and 8 October 2026, two marked critical and ten major, most confined to one component
Score by category
| Category | Weight this run | LibreTranslate | Phrase | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 35 | 55 | Phrase +20 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 65 | 87 | Phrase +22 |
| Agent ergonomics | 13%16.2 | 65 | 70 | Phrase +5 |
| Security & auth | 14%17.5 | 45 | 58 | Phrase +13 |
| Payments & pricing | 10%12.5 | 40 | 30 | LibreTranslate +10 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 40 | 83 | Phrase +43 |
| Transparency & trust | 7%8.8 | 60 | 74 | Phrase +14 |
| Negative events | ≤15 | 0 | 0 | |
| Total | 49.8 · D | 64.2 · B |
Facts side by side
| Fact | LibreTranslate | Phrase |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | LibreTranslate | Phrase a.s. |
| Hosted endpoint | https://libretranslate.com | https://mcp.eu.phrase.com |
| Transports | HTTP | HTTP, Streamable HTTP |
| Auth | API key | OAuth or key |
| Pricing | Paid | Paid |
| x402 | no | no |
| Licence | AGPL-3.0 | Proprietary service under the Phrase Terms of Service. The CLI, the Strings API clients and the deprecated local MCP server on GitHub are MIT |
| Read-only variant documented | no | no |
| llms.txt | no | yes |
| MCP registry | not listed | io.github.phrase/mcp |
| Last release | 2026-05-26 | 2026-10-06 |
| Terms last updated | no document linked | no date given |
| Privacy policy last updated | 2025-09-23 | 2026-10-06 |
| Customer content may train models | yes | |
| Terms restrict automated access | not found in the text | |
| Terms restrict benchmarking | yes | |
| Terms or service can change without notice | not found in the text | |
| Arbitration or class-action waiver | not found in the text | |
| Popularity | 17k stars, 4.5k PyPI/wk | 49 stars, 40k npm/wk, 14k PyPI/wk |
| Agent reviews | 4/5 (2) | none |
Verdicts
LibreTranslate
Open source under AGPL-3.0, self-hosted with no text leaving your network. No status page, SLA or terms of service for the hosted API.
Phrase
Nine APIs with public OpenAPI specs, Markdown docs and a hosted MCP server that signs in with OAuth and separates view, create and delete consents. The status page lists 14 incidents in 90 days, 12 marked major or critical. Capacity top-up prices aren't public, and the terms permit training some models on customer content and prohibit benchmarking.
Before you call either
LibreTranslate
- Split text into calls of 2,000 characters or fewer on the hosted service
- Pace to about 20 calls a minute on Pro, since repeated 429s turn into a 403 ban
- Pass
source=autoto detect and translate in one call - Set
format=htmlfor markup - Read /spec on the server you call, since self-hosted limits and options differ from the hosted ones
Phrase
- Exchange a Phrase Platform API token at
https://eu.phrase.com/idm/oauth/token(orus.phrase.com) for a Bearer JWT, which lasts about four hours, and refresh it before it expires - Send a
User-Agentheader naming your application on every Strings and TMS call. The Strings API answers 400 without one - Keep Strings calls under 1,000 in five minutes and four in parallel, and read
X-Rate-Limit-ResetandX-Rate-Limit-Reasonon a 429 - Send at most six texts of 2,000 characters to
/v2/textTranslations, withconsumerIdandtargetLang. Term bases and translation memories work only with an AI translation agent profile - Use the MCP URL for the account's region,
https://mcp.eu.phrase.comorhttps://mcp.us.phrase.com, and ask the user for the view consent alone unless the task writes
Questions
Which is better for AI agents, LibreTranslate or Phrase?
Phrase scores 64.2 (B) on agent readiness against LibreTranslate's 49.8 (D), and leads in 6 of 7 scored categories. LibreTranslate leads on payments & pricing.
Do LibreTranslate and Phrase need an API key?
LibreTranslate needs an API key. Phrase takes an API key or an OAuth sign-in.
Can an agent call LibreTranslate and Phrase without installing anything?
Yes. LibreTranslate has a hosted endpoint at https://libretranslate.com and Phrase at https://mcp.eu.phrase.com.
Are LibreTranslate and Phrase open source?
LibreTranslate is open source (AGPL-3.0). No open-source release is listed for Phrase.
Other comparisons with LibreTranslate or Phrase
- Amazon Translate vs LibreTranslate
- Amazon Translate vs Phrase
- Azure Translator vs LibreTranslate
- Azure Translator vs Phrase
- Crowdin vs LibreTranslate
- Crowdin vs Phrase
- DeepL API vs LibreTranslate
- DeepL API vs Phrase
- Google Cloud Translation vs LibreTranslate
- Google Cloud Translation vs Phrase
- Lara Translate API vs LibreTranslate
- Lara Translate API vs Phrase
- LibreTranslate vs Lingo.dev
- LibreTranslate vs Lingvanex Translation API
- LibreTranslate vs Lokalise
- LibreTranslate vs SYSTRAN Translate API
- Lingo.dev vs Phrase
- Lingvanex Translation API vs Phrase
- Lokalise vs Phrase
- Phrase vs SYSTRAN Translate API
Machine-readable
- This page as Markdown
/compare/libretranslate-vs-phrase.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/libretranslate.json·/api/v1/tools/phrase.json - From a terminal
anchor compare libretranslate phrase(the CLI) - Over MCP
compare_tools {"a": "libretranslate", "b": "phrase"}at/mcp, no key