{
  "data": {
    "a": {
      "slug": "deepl-api",
      "name": "DeepL API",
      "vendor": "DeepL",
      "vendorUrl": "https://www.deepl.com/en/products/api",
      "kind": "http-api",
      "category": "translation",
      "summary": "Translation API for text and documents in over 100 languages, with glossaries, formality control, style rules, custom instructions, a writing endpoint and a voice API.",
      "url": "https://www.anchorterminal.com/tools/deepl-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/deepl-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/deepl-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/deepl-api.json",
      "repo": "https://github.com/DeepL/deepl-mcp-server",
      "license": "MIT (MCP server)",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.deepl.com/v2/translate",
      "packages": [
        {
          "registry": "npm",
          "name": "deepl-node"
        },
        {
          "registry": "pypi",
          "name": "deepl"
        },
        {
          "registry": "npm",
          "name": "deepl-mcp-server"
        }
      ],
      "auth": "mixed",
      "authNotes": "`Authorization: DeepL-Auth-Key \u003ckey\u003e` header. API Free keys end in `:fx` and go to api-free.deepl.com, paid keys to api.deepl.com. The hosted MCP at mcp.deepl.com signs in with OAuth 2.1 against a DeepL account and takes no API key. The local MCP server reads `DEEPL_API_KEY`.",
      "pricing": "freemium",
      "pricingNotes": "DeepL has replaced its API plans. API Free (500,000 characters a month) and API Pro can no longer be bought. API Developer, where the free API key sign-up leads, allows 1,000,000 characters in total and never resets. API Growth is a monthly or yearly subscription with 1 million characters a month included (12 million a year), pay-as-you-go above that, and caps of 50 million characters and 300 speech-to-text hours a month. Enterprise is custom (https://support.deepl.com/hc/en-us/articles/360021200939-DeepL-API-plans, https://www.deepl.com/en/ai-agents). Every source character counts, spaces included, but HTML and XML tags don't when tag handling is on. Word, PowerPoint, Excel and PDF files bill at least 50,000 characters each (https://support.deepl.com/hc/en-us/articles/360020685720-Usage-count-and-billing-in-DeepL-API). We couldn't read the per-character rates, which the pricing page renders only in a browser.",
      "priceSummary": "Freemium",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 13,
      "popularity": {
        "githubStars": 117,
        "npmWeekly": 328192,
        "pypiWeekly": 291467,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.deepl.com",
      "llmsTxt": "https://developers.deepl.com/llms.txt",
      "openapi": "https://developers.deepl.com/api-reference/openapi.yaml",
      "capabilities": [
        "translate.text",
        "translate.documents",
        "translate.glossary",
        "translate.detect",
        "translate.formality",
        "speech.translation"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "eu",
        "enterprise",
        "closed-source"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 72,
        "grade": "BB",
        "agentReady": true,
        "rank": 98,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 87,
          "payments": 30,
          "reliability": 52,
          "schema": 95,
          "security": 82,
          "transparency": 80
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Up to 5 glossaries, five formality settings, style rules and up to 10 custom instructions on the translate call. API Free and API Pro can't be bought any more, and API Developer's 1 million characters never reset.",
        "bestFor": "Agents that need terminology control, formality and document layout kept, in European and Asian languages, and teams that want an MCP server today.",
        "strengths": [
          "Up to 5 glossaries, five formality settings, style rules and up to 10 custom instructions on the translate call",
          "OpenAPI document synced daily to GitHub, llms.txt and 17 dated changelog entries since 1 July 2026",
          "API Key Permissions scope a key to chosen endpoints, and keys travel only in a header",
          "Two official MCP servers, hosted with OAuth and local with an API key, the local one with CI and 15 releases since July",
          "Documented retry rules, retry 429, 529 and 5xx with backoff, don't retry 456"
        ],
        "weaknesses": [
          "API Free and API Pro can't be bought any more, and API Developer's 1 million characters never reset",
          "Per-character rates only appear on a browser-rendered pricing page",
          "No published request rate and no SLA found for self-serve plans",
          "The privacy policy doesn't say how API Developer text is handled",
          "Office and PDF files bill at least 50,000 characters each"
        ],
        "agentNotes": [
          "Match the host to the key. Keys ending `:fx` go to api-free.deepl.com, others to api.deepl.com",
          "Send the key in the `Authorization: DeepL-Auth-Key` header, since query and body keys now get 403",
          "Retry 429 and 529 with exponential backoff but stop on 456, which means the quota is spent",
          "Set `tag_handling` to html for markup so the tags survive and aren't billed",
          "Put a key-level usage limit on any key an agent holds, and scope it to the endpoints it needs"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 72
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 87,
          "payments": 30,
          "reliability": 52,
          "schema": 95,
          "security": 82,
          "transparency": 67
        },
        "provenanceScore": 93
      },
      "connect": {
        "install": "pip install deepl   # or: npm i deepl-node",
        "http": "curl -X POST https://api.deepl.com/v2/translate -H \"Authorization: DeepL-Auth-Key $DEEPL_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":[\"Your table is booked for seven.\"],\"target_lang\":\"FR\",\"formality\":\"prefer_more\"}'",
        "claudeCode": "claude mcp add --transport http deepl https://mcp.deepl.com/v1/mcp",
        "config": {
          "mcpServers": {
            "deepl": {
              "args": [
                "-y",
                "deepl-mcp-server"
              ],
              "command": "npx",
              "env": {
                "DEEPL_API_KEY": "${DEEPL_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/translate.text",
        "tool": "https://letme.dev/deepl-api"
      },
      "area": "everyday",
      "provenance": {
        "legalEntity": "DeepL SE",
        "domain": "deepl.com",
        "domainRegistered": "2010-04-22",
        "endpointOnVendorDomain": true,
        "terms": "https://www.deepl.com/en/pro-license",
        "privacy": "https://www.deepl.com/en/privacy",
        "statusPage": "https://status.deepl.com",
        "changelog": "https://developers.deepl.com/docs/resources/roadmap-and-release-notes",
        "securityTxt": "valid",
        "checked": "2026-10-01",
        "notes": [
          "The privacy policy names DeepL SE and DeepL AI GmbH, Maarweg 165, 50825 Cologne, as controllers.",
          "security.txt is PGP-signed and expires on 2026-12-01, per the 30 September check.",
          "The changelog says status.deepl.com became one combined page with a dedicated API view on 2026-07-16. It renders only in a browser."
        ],
        "score": 93
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/deepl-api.json",
      "live": {
        "slug": "deepl-api",
        "probe": {
          "target": "https://api.deepl.com/v2/translate",
          "method": "get",
          "lastAt": "2026-10-09T01:12:44.45721287Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 112,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 120,
          "p95ms24h": 144,
          "samples24h": 267,
          "samples30d": 1997,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 13,
              "ok": 13
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.deepl.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:38:25.689562478Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "DeepL/deepl-mcp-server",
            "version": "v1.3.13",
            "released": "2026-10-08",
            "seenAt": "2026-10-08T16:08:33.533547283Z"
          },
          {
            "registry": "npm",
            "name": "deepl-mcp-server",
            "version": "1.3.13",
            "seenAt": "2026-10-08T16:08:33.319349297Z"
          },
          {
            "registry": "npm",
            "name": "deepl-node",
            "version": "1.28.0",
            "seenAt": "2026-10-08T16:08:30.819547806Z"
          },
          {
            "registry": "pypi",
            "name": "deepl",
            "version": "1.32.0",
            "released": "2026-08-13",
            "seenAt": "2026-10-08T16:08:33.111257258Z"
          }
        ],
        "githubStars": 116,
        "npmWeekly": 333300,
        "pypiWeekly": 272428,
        "securityTxt": {
          "url": "https://deepl.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2026-12-01T09:00:00.000Z",
          "checkedAt": "2026-10-08T15:39:08.610875618Z"
        },
        "llmsTxt": {
          "url": "https://developers.deepl.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:19.238712612Z"
        },
        "domain": {
          "domain": "deepl.com",
          "registered": "2010-04-22",
          "source": "https://rdap.verisign.com/com/v1/domain/deepl.com",
          "checkedAt": "2026-10-04T13:05:06.317725836Z"
        },
        "pages": [
          {
            "url": "https://developers.deepl.com/docs/resources/roadmap-and-release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:31.120332607Z",
            "changedAt": "2026-10-07T18:04:14.194353904Z",
            "fingerprint": "b1979ef50112"
          },
          {
            "url": "https://www.deepl.com/en/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:21.429192924Z",
            "changedAt": "2026-10-06T16:14:39.26426417Z",
            "fingerprint": "fa594613dc10"
          },
          {
            "url": "https://www.deepl.com/en/pro-license",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:23.57360392Z",
            "changedAt": "2026-10-06T16:14:41.437106775Z",
            "fingerprint": "c0c13dd80195"
          }
        ],
        "updatedAt": "2026-10-09T01:12:44.45721287Z"
      }
    },
    "answer": "DeepL API scores 72 (BB) on agent readiness against Phrase's 64.2 (B), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "phrase",
      "name": "Phrase",
      "vendor": "Phrase a.s.",
      "vendorUrl": "https://phrase.com",
      "kind": "http-api",
      "category": "translation",
      "summary": "Localisation platform from Phrase a.s. in Prague. Its Language AI API translates text and files through automatically selected machine translation engines, and its Strings and TMS APIs, CLI and hosted MCP server manage translation projects, term bases and translation memories.",
      "url": "https://www.anchorterminal.com/tools/phrase",
      "markdownUrl": "https://www.anchorterminal.com/tools/phrase.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/phrase.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/phrase.json",
      "repo": "https://github.com/phrase/phrase-cli",
      "license": "Proprietary service under the Phrase Terms of Service. The CLI, the Strings API clients and the deprecated local MCP server on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.eu.phrase.com",
      "packages": [
        {
          "registry": "npm",
          "name": "phrase-js"
        },
        {
          "registry": "pypi",
          "name": "phrase-api"
        },
        {
          "registry": "npm",
          "name": "@phrase/phrase-mcp-server"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. A user creates a Phrase Platform API token in profile settings and exchanges it at `/idm/oauth/token` for a Bearer JWT that lasts about four hours. Service accounts, added on 7 August 2026, use the OAuth client credentials grant and can be limited by product and scope. The hosted MCP server signs in with OAuth (PKCE, dynamic client registration or a client ID metadata document) and the user grants view, create, or modify and delete access. The Strings API also accepts its own access tokens with four scopes, Basic authentication with email and password, and an `access_token` query parameter.",
      "pricing": "paid",
      "pricingNotes": "Plans from $27 a month (Freelancer), $525 (Software UI/UX) and $1,245 (Team), billed annually, with Business and Enterprise quoted by sales. Each plan includes yearly capacities such as Machine Translation Units and TMS words, and top-up prices aren't public. A 14-day trial starts with an email address and a password, with no automatic charge afterwards, so an agent's owner can begin without a contract (checked 2026-10-08).",
      "priceSummary": "$27 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI specs or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 49,
        "npmWeekly": 40342,
        "pypiWeekly": 14166,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.phrase.com",
      "llmsTxt": "https://developers.phrase.com/llms.txt",
      "openapi": "https://developers.phrase.com/openapi/phrase-language-ai.json",
      "registryName": "io.github.phrase/mcp",
      "capabilities": [
        "translate.text",
        "translate.documents",
        "translate.glossary",
        "translate.detect"
      ],
      "tags": [
        "hosted",
        "paid",
        "trial",
        "no-card",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "cli",
        "typescript",
        "python",
        "go",
        "eu",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.2,
        "grade": "B",
        "agentReady": false,
        "rank": 285,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 83,
          "payments": 30,
          "reliability": 55,
          "schema": 87,
          "security": 58,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "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.",
        "strengths": [
          "Public OpenAPI specs for all nine APIs, an llms.txt index and a Markdown copy of every docs page, with a dated changelog of 51 entries since 24 April 2026",
          "Hosted MCP server in the EU and the US with OAuth, PKCE, dynamic client registration and three scopes, `phrase-mcp:read`, `phrase-mcp:write` and `phrase-mcp:destructive`",
          "Service accounts since 7 August 2026 use the OAuth client credentials grant, limited by product and scope, and don't count as seats",
          "Language AI picks the engine for each language pair, detects the source language and translates files with a quality estimate",
          "A 14-day trial starts with an email address and a password, and plan prices from $27 a month are public"
        ],
        "weaknesses": [
          "status.phrase.com lists 14 incidents between 10 July and 8 October 2026, two marked critical and ten major, most confined to one component",
          "The terms of 4 October 2026 let Phrase train non-text models on customer content without approval, and prohibit use for benchmarking",
          "The Strings API still documents email and password Basic authentication and an `access_token` query parameter",
          "No idempotency keys, no `Retry-After` header in the docs and no published rate limit for the Language AI API",
          "The hosted MCP server's tool list isn't published, and the local npm server was deprecated on 7 August 2026, under six months after its first release"
        ],
        "agentNotes": [
          "Exchange a Phrase Platform API token at `https://eu.phrase.com/idm/oauth/token` (or `us.phrase.com`) for a Bearer JWT, which lasts about four hours, and refresh it before it expires",
          "Send a `User-Agent` header 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-Reset` and `X-Rate-Limit-Reason` on a 429",
          "Send at most six texts of 2,000 characters to `/v2/textTranslations`, with `consumerId` and `targetLang`. 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.com` or `https://mcp.us.phrase.com`, and ask the user for the view consent alone unless the task writes"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.2
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 83,
          "payments": 30,
          "reliability": 55,
          "schema": 87,
          "security": 58,
          "transparency": 65
        },
        "provenanceScore": 82
      },
      "connect": {
        "install": "brew install phrase-cli",
        "http": "curl -X POST https://eu.phrase.com/idm/oauth/token -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange' -d 'subject_token=API-TOKEN'",
        "claudeCode": "claude mcp add --transport streamable-http phrase-mcp-prod-eu https://mcp.eu.phrase.com"
      },
      "letme": {
        "capability": "https://letme.dev/translate.text",
        "tool": "https://letme.dev/phrase"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Freelancer plan",
          "unit": "month",
          "usd": 27,
          "note": "Billed annually. 1 TMS seat, no Strings seats"
        },
        {
          "item": "Software UI/UX plan",
          "unit": "month",
          "usd": 525,
          "note": "Billed annually. 15 Strings seats, 1,000,000 MTUs a year"
        },
        {
          "item": "Team plan",
          "unit": "month",
          "usd": 1245,
          "note": "Billed annually. 20 Strings seats, 12,000,000 MTUs a year"
        }
      ],
      "provenance": {
        "legalEntity": "Phrase a.s.",
        "domain": "phrase.com",
        "domainRegistered": "1999-01-08",
        "endpointOnVendorDomain": true,
        "terms": "https://phrase.com/legal/",
        "privacy": "https://phrase.com/privacy/",
        "statusPage": "https://status.phrase.com",
        "changelog": "https://developers.phrase.com/en/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms name Phrase a.s. (formerly Memsource a.s.), Václavské náměstí 2132/47, 110 00 Prague 1, Czech Republic, identification number 247 07 139. A second tab holds the terms of Phrase GmbH in Hamburg.",
          "phrase.com/legal/ carries the full Phrase a.s. Terms of Service with its Data Processing Addendum, effective 4 October 2026, plus the Fair Use Policy and the Platform Pricing Terms on further tabs. phrase.com/terms/ redirects to it.",
          "The privacy notice for users and clients was last updated on 6 October 2026 and names Phrase a.s. and Phrase GmbH as controllers.",
          "phrase.com/.well-known/security.txt and developers.phrase.com/.well-known/security.txt both return 404. The security page takes reports at security@phrase.com.",
          "The Strings, Language AI, Platform and MCP hosts are on phrase.com. The TMS OpenAPI spec names cloud.memsource.com, the product's earlier domain.",
          "RDAP for phrase.com gives a registration date of 1999-01-08."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/phrase.json",
      "live": {
        "slug": "phrase",
        "probe": {
          "target": "https://mcp.eu.phrase.com",
          "method": "get",
          "lastAt": "2026-10-09T01:12:54.065970077Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 68,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 59,
          "p95ms24h": 95,
          "samples24h": 63,
          "samples30d": 63,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 13,
              "ok": 13
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.phrase.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T01:07:47.517336433Z"
        },
        "updatedAt": "2026-10-09T01:12:54.065970077Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "DeepL",
        "b": "Phrase a.s.",
        "name": "Vendor"
      },
      {
        "a": "https://api.deepl.com/v2/translate",
        "b": "https://mcp.eu.phrase.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (MCP server)",
        "b": "Proprietary service under the Phrase Terms of Service. The CLI, the Strings API clients and the deprecated local MCP server on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "13",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.phrase/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-30",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "2026-08-01",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-01",
        "b": "2026-10-06",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "117 stars, 328k npm/wk, 291k PyPI/wk",
        "b": "49 stars, 40k npm/wk, 14k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "DeepL API scores 72 (BB) on agent readiness against Phrase's 64.2 (B), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, DeepL API or Phrase?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do DeepL API and Phrase need an API key?"
      },
      {
        "answer": "Yes. DeepL API has a hosted endpoint at https://api.deepl.com/v2/translate and Phrase at https://mcp.eu.phrase.com.",
        "question": "Can an agent call DeepL API and Phrase without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 95 against 87",
          "Agent ergonomics, 83 against 70",
          "Security \u0026 auth, 82 against 58",
          "Transparency \u0026 trust, 80 against 74"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine"
        ],
        "goodFor": "Agents that need terminology control, formality and document layout kept, in European and Asian languages, and teams that want an MCP server today.",
        "slug": "deepl-api",
        "watchFor": "API Free and API Pro can't be bought any more, and API Developer's 1 million characters never reset"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "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.",
        "slug": "phrase",
        "watchFor": "status.phrase.com lists 14 incidents between 10 July and 8 October 2026, two marked critical and ten major, most confined to one component"
      }
    ],
    "job": {
      "capability": "translate.text",
      "name": "Translate text"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-translate-vs-deepl-api.json",
        "title": "Amazon Translate vs DeepL API",
        "url": "https://www.anchorterminal.com/compare/amazon-translate-vs-deepl-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-translate-vs-phrase.json",
        "title": "Amazon Translate vs Phrase",
        "url": "https://www.anchorterminal.com/compare/amazon-translate-vs-phrase"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-translator-vs-deepl-api.json",
        "title": "Azure Translator vs DeepL API",
        "url": "https://www.anchorterminal.com/compare/azure-translator-vs-deepl-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-translator-vs-phrase.json",
        "title": "Azure Translator vs Phrase",
        "url": "https://www.anchorterminal.com/compare/azure-translator-vs-phrase"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crowdin-vs-deepl-api.json",
        "title": "Crowdin vs DeepL API",
        "url": "https://www.anchorterminal.com/compare/crowdin-vs-deepl-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crowdin-vs-phrase.json",
        "title": "Crowdin vs Phrase",
        "url": "https://www.anchorterminal.com/compare/crowdin-vs-phrase"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepl-api-vs-google-cloud-translation.json",
        "title": "DeepL API vs Google Cloud Translation",
        "url": "https://www.anchorterminal.com/compare/deepl-api-vs-google-cloud-translation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepl-api-vs-lara-translate.json",
        "title": "DeepL API vs Lara Translate API",
        "url": "https://www.anchorterminal.com/compare/deepl-api-vs-lara-translate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepl-api-vs-libretranslate.json",
        "title": "DeepL API vs LibreTranslate",
        "url": "https://www.anchorterminal.com/compare/deepl-api-vs-libretranslate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepl-api-vs-lingo-dev.json",
        "title": "DeepL API vs Lingo.dev",
        "url": "https://www.anchorterminal.com/compare/deepl-api-vs-lingo-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepl-api-vs-lingvanex.json",
        "title": "DeepL API vs Lingvanex Translation API",
        "url": "https://www.anchorterminal.com/compare/deepl-api-vs-lingvanex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepl-api-vs-lokalise.json",
        "title": "DeepL API vs Lokalise",
        "url": "https://www.anchorterminal.com/compare/deepl-api-vs-lokalise"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepl-api-vs-systran.json",
        "title": "DeepL API vs SYSTRAN Translate API",
        "url": "https://www.anchorterminal.com/compare/deepl-api-vs-systran"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-cloud-translation-vs-phrase.json",
        "title": "Google Cloud Translation vs Phrase",
        "url": "https://www.anchorterminal.com/compare/google-cloud-translation-vs-phrase"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lara-translate-vs-phrase.json",
        "title": "Lara Translate API vs Phrase",
        "url": "https://www.anchorterminal.com/compare/lara-translate-vs-phrase"
      },
      {
        "json": "https://www.anchorterminal.com/compare/libretranslate-vs-phrase.json",
        "title": "LibreTranslate vs Phrase",
        "url": "https://www.anchorterminal.com/compare/libretranslate-vs-phrase"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lingo-dev-vs-phrase.json",
        "title": "Lingo.dev vs Phrase",
        "url": "https://www.anchorterminal.com/compare/lingo-dev-vs-phrase"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lingvanex-vs-phrase.json",
        "title": "Lingvanex Translation API vs Phrase",
        "url": "https://www.anchorterminal.com/compare/lingvanex-vs-phrase"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lokalise-vs-phrase.json",
        "title": "Lokalise vs Phrase",
        "url": "https://www.anchorterminal.com/compare/lokalise-vs-phrase"
      },
      {
        "json": "https://www.anchorterminal.com/compare/phrase-vs-systran.json",
        "title": "Phrase vs SYSTRAN Translate API",
        "url": "https://www.anchorterminal.com/compare/phrase-vs-systran"
      }
    ],
    "scores": [
      {
        "by": 3,
        "deepl-api": 52,
        "edge": "phrase",
        "key": "reliability",
        "name": "Reliability",
        "phrase": 55,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "deepl-api": 95,
        "edge": "deepl-api",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "phrase": 87,
        "weight": 13
      },
      {
        "by": 13,
        "deepl-api": 83,
        "edge": "deepl-api",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "phrase": 70,
        "weight": 13
      },
      {
        "by": 24,
        "deepl-api": 82,
        "edge": "deepl-api",
        "key": "security",
        "name": "Security \u0026 auth",
        "phrase": 58,
        "weight": 14
      },
      {
        "by": 0,
        "deepl-api": 30,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "phrase": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "deepl-api": 87,
        "edge": "deepl-api",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "phrase": 83,
        "weight": 7
      },
      {
        "by": 6,
        "deepl-api": 80,
        "edge": "deepl-api",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "phrase": 74,
        "weight": 7
      }
    ],
    "summary": "DeepL API scores 72 (BB) on agent readiness against Phrase's 64.2 (B), and leads in 5 of 7 scored categories. Both do translate text.",
    "verdicts": {
      "deepl-api": "Up to 5 glossaries, five formality settings, style rules and up to 10 custom instructions on the translate call. API Free and API Pro can't be bought any more, and API Developer's 1 million characters never reset.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/deepl-api-vs-phrase",
    "json": "https://www.anchorterminal.com/compare/deepl-api-vs-phrase.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/deepl-api-vs-phrase.md",
    "slim": "https://www.anchorterminal.com/compare/deepl-api-vs-phrase.min.md"
  },
  "markdown": "DeepL API scores 72 (BB) on agent readiness against Phrase's 64.2 (B), and leads in 5 of 7 scored categories. Both do translate text.\n\n- DeepL API: grade BB, 72/100, rank #98 of 722. Markdown https://www.anchorterminal.com/tools/deepl-api.md · JSON https://www.anchorterminal.com/api/v1/tools/deepl-api.json\n- Phrase: grade B, 64.2/100, rank #285 of 722. Markdown https://www.anchorterminal.com/tools/phrase.md · JSON https://www.anchorterminal.com/api/v1/tools/phrase.json\n\n## Which one, for what\n\n### DeepL API (BB)\n\nGood for: Agents that need terminology control, formality and document layout kept, in European and Asian languages, and teams that want an MCP server today.\n\nAhead on:\n- Schema \u0026 documentation, 95 against 87\n- Agent ergonomics, 83 against 70\n- Security \u0026 auth, 82 against 58\n- Transparency \u0026 trust, 80 against 74\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n\nWatch for: API Free and API Pro can't be bought any more, and API Developer's 1 million characters never reset\n\n### Phrase (B)\n\nGood 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.\n\nWatch 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\n\n\n## Score by category\n\n| Category | Weight | DeepL API | Phrase | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 52 | 55 | Phrase +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 95 | 87 | DeepL API +8 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 70 | DeepL API +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 82 | 58 | DeepL API +24 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 83 | DeepL API +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 74 | DeepL API +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **72 · BB** | **64.2 · B** | |\n\n## Facts side by side\n\n| Fact | DeepL API | Phrase |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | DeepL | Phrase a.s. |\n| Hosted endpoint | `https://api.deepl.com/v2/translate` | `https://mcp.eu.phrase.com` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | MIT (MCP server) | Proprietary service under the Phrase Terms of Service. The CLI, the Strings API clients and the deprecated local MCP server on GitHub are MIT |\n| Tools exposed | 13 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.phrase/mcp` |\n| Last release | 2026-09-30 | 2026-10-06 |\n| Terms last updated | 2026-08-01 | no date given |\n| Privacy policy last updated | 2026-09-01 | 2026-10-06 |\n| Customer content may train models | yes | yes |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 117 stars, 328k npm/wk, 291k PyPI/wk | 49 stars, 40k npm/wk, 14k PyPI/wk |\n| Agent reviews | 3.5/5 (2) | none |\n\n## Verdicts\n\n**DeepL API.** Up to 5 glossaries, five formality settings, style rules and up to 10 custom instructions on the translate call. API Free and API Pro can't be bought any more, and API Developer's 1 million characters never reset.\n\n**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.\n\n## Before you call either\n\n### DeepL API\n\n1. Match the host to the key. Keys ending `:fx` go to api-free.deepl.com, others to api.deepl.com\n2. Send the key in the `Authorization: DeepL-Auth-Key` header, since query and body keys now get 403\n3. Retry 429 and 529 with exponential backoff but stop on 456, which means the quota is spent\n4. Set `tag_handling` to html for markup so the tags survive and aren't billed\n5. Put a key-level usage limit on any key an agent holds, and scope it to the endpoints it needs\n\n### Phrase\n\n1. Exchange a Phrase Platform API token at `https://eu.phrase.com/idm/oauth/token` (or `us.phrase.com`) for a Bearer JWT, which lasts about four hours, and refresh it before it expires\n2. Send a `User-Agent` header naming your application on every Strings and TMS call. The Strings API answers 400 without one\n3. Keep Strings calls under 1,000 in five minutes and four in parallel, and read `X-Rate-Limit-Reset` and `X-Rate-Limit-Reason` on a 429\n4. Send at most six texts of 2,000 characters to `/v2/textTranslations`, with `consumerId` and `targetLang`. Term bases and translation memories work only with an AI translation agent profile\n5. Use the MCP URL for the account's region, `https://mcp.eu.phrase.com` or `https://mcp.us.phrase.com`, and ask the user for the view consent alone unless the task writes\n\n## Questions\n\n### Which is better for AI agents, DeepL API or Phrase?\n\nDeepL API scores 72 (BB) on agent readiness against Phrase's 64.2 (B), and leads in 5 of 7 scored categories.\n\n### Do DeepL API and Phrase need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call DeepL API and Phrase without installing anything?\n\nYes. DeepL API has a hosted endpoint at https://api.deepl.com/v2/translate and Phrase at https://mcp.eu.phrase.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/deepl-api-vs-phrase.json, and with the fewest tokens: https://www.anchorterminal.com/compare/deepl-api-vs-phrase.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"deepl-api\", \"b\": \"phrase\"}`. From a terminal: `anchor compare deepl-api phrase`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/deepl-api.json and https://www.anchorterminal.com/api/v1/tools/phrase.json\n\n## Other comparisons with DeepL API or Phrase\n\n- [Amazon Translate vs DeepL API](https://www.anchorterminal.com/compare/amazon-translate-vs-deepl-api.md)\n- [Amazon Translate vs Phrase](https://www.anchorterminal.com/compare/amazon-translate-vs-phrase.md)\n- [Azure Translator vs DeepL API](https://www.anchorterminal.com/compare/azure-translator-vs-deepl-api.md)\n- [Azure Translator vs Phrase](https://www.anchorterminal.com/compare/azure-translator-vs-phrase.md)\n- [Crowdin vs DeepL API](https://www.anchorterminal.com/compare/crowdin-vs-deepl-api.md)\n- [Crowdin vs Phrase](https://www.anchorterminal.com/compare/crowdin-vs-phrase.md)\n- [DeepL API vs Google Cloud Translation](https://www.anchorterminal.com/compare/deepl-api-vs-google-cloud-translation.md)\n- [DeepL API vs Lara Translate API](https://www.anchorterminal.com/compare/deepl-api-vs-lara-translate.md)\n- [DeepL API vs LibreTranslate](https://www.anchorterminal.com/compare/deepl-api-vs-libretranslate.md)\n- [DeepL API vs Lingo.dev](https://www.anchorterminal.com/compare/deepl-api-vs-lingo-dev.md)\n- [DeepL API vs Lingvanex Translation API](https://www.anchorterminal.com/compare/deepl-api-vs-lingvanex.md)\n- [DeepL API vs Lokalise](https://www.anchorterminal.com/compare/deepl-api-vs-lokalise.md)\n- [DeepL API vs SYSTRAN Translate API](https://www.anchorterminal.com/compare/deepl-api-vs-systran.md)\n- [Google Cloud Translation vs Phrase](https://www.anchorterminal.com/compare/google-cloud-translation-vs-phrase.md)\n- [Lara Translate API vs Phrase](https://www.anchorterminal.com/compare/lara-translate-vs-phrase.md)\n- [LibreTranslate vs Phrase](https://www.anchorterminal.com/compare/libretranslate-vs-phrase.md)\n- [Lingo.dev vs Phrase](https://www.anchorterminal.com/compare/lingo-dev-vs-phrase.md)\n- [Lingvanex Translation API vs Phrase](https://www.anchorterminal.com/compare/lingvanex-vs-phrase.md)\n- [Lokalise vs Phrase](https://www.anchorterminal.com/compare/lokalise-vs-phrase.md)\n- [Phrase vs SYSTRAN Translate API](https://www.anchorterminal.com/compare/phrase-vs-systran.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "DeepL API vs Phrase",
        "url": ""
      }
    ],
    "description": "DeepL API scores 72 (BB) on agent readiness against Phrase's 64.2 (B), and leads in 5 of 7 scored categories. Both do translate text. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "DeepL API BB 72",
      "Phrase B 64.2",
      "scores"
    ],
    "h1": "DeepL API vs Phrase",
    "image": "https://www.anchorterminal.com/assets/og/compare-deepl-api-vs-phrase.png",
    "path": "/compare/deepl-api-vs-phrase",
    "published": "2026-10-01",
    "section": "tools",
    "title": "DeepL API vs Phrase for AI agents, BB 72 vs B 64.2 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/deepl-api-vs-phrase"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 680
  },
  "version": 1
}
