{
  "data": {
    "a": {
      "slug": "crowdin",
      "name": "Crowdin",
      "vendor": "Crowdin OÜ",
      "vendorUrl": "https://crowdin.com",
      "kind": "http-api",
      "category": "translation",
      "summary": "Crowdin is a hosted localisation platform that stores source files and strings, translation memories and glossaries, and runs machine and AI translation over them. Agents reach it through a REST API, a CLI and a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/crowdin",
      "markdownUrl": "https://www.anchorterminal.com/tools/crowdin.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/crowdin.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/crowdin.json",
      "repo": "https://github.com/crowdin/crowdin-cli",
      "license": "Proprietary service under Crowdin's terms. The CLI and the official API clients are MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.crowdin.com/api/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@crowdin/crowdin-api-client"
        },
        {
          "registry": "npm",
          "name": "@crowdin/cli"
        },
        {
          "registry": "pypi",
          "name": "crowdin-api-client"
        }
      ],
      "auth": "mixed",
      "authNotes": "A person signs up in a browser, then creates a personal access token in Account Settings or registers an OAuth app. No review or sales approval is described. Every call sends `Authorization: Bearer \u003ctoken\u003e`. Tokens take an expiry date (the default is never), scopes with read-only or read-and-write access, and a granular option that limits them to chosen projects. OAuth is the authorisation code grant at accounts.crowdin.com, with a client secret or PKCE, and access tokens last 7,200 seconds with a refresh token. The MCP server accepts the same tokens, or an OAuth sign-in where the client registers itself at `https://mcp.crowdin.com/register`.",
      "pricing": "freemium",
      "pricingNotes": "A Free plan at $0 and a 14-day trial of the Team plan let an agent's owner start without a contract. Paid plans in the pricing page's structured data are Pro $50, Team $150 and Team+ $450 a month, with annual billing giving two months free. Plans are sized by hosted words (source words multiplied by target languages). Machine translation, AI and professional translation are paid from prepaid Crowdin Credits, or run on the customer's own engine keys. Plan limits, the comparison table and the CDN add-on's unit prices are drawn by script and were not read. Whether the Free plan needs a card is not stated on the page (https://crowdin.com/pricing, checked 2026-10-08).",
      "priceSummary": "$50 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer documentation, the OpenAPI document or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 320,
        "npmWeekly": 264028,
        "pypiWeekly": 13847,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://support.crowdin.com/developer/api/",
      "llmsTxt": "https://support.crowdin.com/llms.txt",
      "openapi": "https://support.crowdin.com/src/assets/api/crowdin/file-based.yml",
      "capabilities": [
        "translate.text",
        "translate.documents",
        "translate.glossary",
        "translate.detect"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "cli",
        "typescript",
        "python",
        "eu",
        "status-page",
        "closed-source",
        "localisation"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.6,
        "grade": "B",
        "agentReady": false,
        "rank": 153,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 82,
          "payments": 30,
          "reliability": 78,
          "schema": 80,
          "security": 68,
          "transparency": 79
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The REST API has a public OpenAPI document with 374 operations, and tokens can be limited by scope, access level and project. Translation runs inside Crowdin projects and connected engines, so it is not a stateless per-character translation API. No Retry-After guidance, idempotency keys or SLA were found in the reviewed documentation.",
        "bestFor": "Teams that keep product strings and files in Crowdin and want an agent to upload sources, check progress, apply pre-translation, manage glossaries and pull builds.",
        "strengths": [
          "Public OpenAPI 3.0 document with 374 operations on 218 paths, plus `llms.txt` with one text file per route",
          "Personal access tokens take an expiry date, per-scope read-only or read-and-write access, and a granular option limiting them to chosen projects",
          "The MCP V2 endpoint filters tools by header, with `crowdin-read-only`, `crowdin-tool-sets`, `crowdin-project-type` and `crowdin-tool-filter`",
          "status.crowdin.com lists no incident between 10 July and 8 October 2026, with separate components for the API and the EU data centre",
          "Seven official API clients under MIT, with `@crowdin/crowdin-api-client` 1.59.0 on 29 September and `@crowdin/cli` 5.3.0 on 24 September 2026"
        ],
        "weaknesses": [
          "The terms forbid accessing the service to monitor availability, performance or functionality, or for benchmarking, without Crowdin's prior written consent",
          "A 429 is returned above 20 simultaneous requests an account, with no Retry-After header or backoff guidance in the reference",
          "No idempotency keys in the OpenAPI document, and no SLA found in the terms or the help centre",
          "Plan limits and add-on unit prices on the pricing page are drawn by script. Only four plan prices were readable, from the page's structured data",
          "MCP V1 and 12 API operations are marked deprecated with no removal date, and no deprecation policy was found"
        ],
        "agentNotes": [
          "Send `Authorization: Bearer \u003ctoken\u003e` to `https://api.crowdin.com/api/v2`. Crowdin Enterprise uses `https://\u003corganization_domain\u003e.api.crowdin.com/api/v2`",
          "Use the MCP V2 endpoint `https://mcp.crowdin.com/v2/mcp` and set `crowdin-tool-sets`, because the server loads all 33 tool sets by default",
          "Set `crowdin-read-only: true` on the MCP connection for exploration. It exposes only list and get tools",
          "Keep to 20 concurrent requests an account across all tokens, and add your own backoff on 429",
          "Upload a file to `/storages` first, then pass the `storageId` to the add-file call. Builds, exports and reports are asynchronous and need a status poll",
          "`/mts/{mtId}/translations` takes at most 100 strings a call and needs the `mt` scope and a configured engine"
        ],
        "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": 69.6
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 82,
          "payments": 30,
          "reliability": 78,
          "schema": 80,
          "security": 68,
          "transparency": 65
        },
        "provenanceScore": 93
      },
      "connect": {
        "install": "npm i @crowdin/crowdin-api-client   # or: pip install crowdin-api-client",
        "http": "curl -H \"Authorization: Bearer ACCESS_TOKEN\" https://api.crowdin.com/api/v2/projects",
        "claudeCode": "claude mcp add --transport http --header \"Authorization: Bearer {YOUR_CROWDIN_TOKEN}\" crowdin https://mcp.crowdin.com/v2/mcp",
        "config": {
          "mcpServers": {
            "crowdin": {
              "headers": {
                "Authorization": "Bearer {YOUR_CROWDIN_TOKEN}"
              },
              "url": "https://mcp.crowdin.com/v2/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/translate.text",
        "tool": "https://letme.dev/crowdin"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 50,
          "note": "from the pricing page's structured data, plan limits not read"
        },
        {
          "item": "Team plan",
          "unit": "month",
          "usd": 150,
          "note": "from the pricing page's structured data, plan limits not read"
        },
        {
          "item": "Team+ plan",
          "unit": "month",
          "usd": 450,
          "note": "from the pricing page's structured data, plan limits not read"
        }
      ],
      "provenance": {
        "legalEntity": "Crowdin OÜ",
        "domain": "crowdin.com",
        "domainRegistered": "2009-02-07",
        "endpointOnVendorDomain": true,
        "terms": "https://support.crowdin.com/terms/",
        "privacy": "https://support.crowdin.com/privacy-policy/",
        "statusPage": "https://status.crowdin.com",
        "changelog": "https://crowdin.com/blog/whats-new-at-crowdin-september-2026",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The terms (last revised 24 September 2026) name Crowdin OÜ, Liivalaia 36, Tallinn, Estonia, register code 14479905, as the contracting party, under Estonian law.",
          "The terms govern the platform and its APIs (the definition of Software Services includes APIs) and carry the data processing contract in section 9.",
          "The privacy policy (last revised 24 September 2026) covers the site and the service. crowdin.com/privacy redirects to it.",
          "crowdin.com/.well-known/security.txt gives a contact page, a policy link and an expiry of 31 January 2030.",
          "No dated API changelog was found. The changelog link is the latest monthly product update on the blog, published 1 October 2026.",
          "RDAP for crowdin.com gives a registration date of 2009-02-07.",
          "The API answers at api.crowdin.com and the MCP server at mcp.crowdin.com."
        ],
        "score": 93
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/crowdin.json",
      "live": {
        "slug": "crowdin",
        "probe": {
          "target": "https://api.crowdin.com/api/v2",
          "method": "get",
          "lastAt": "2026-10-08T21:53:19.93910634Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 271,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 278,
          "p95ms24h": 301,
          "samples24h": 28,
          "samples30d": 28,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 28,
              "ok": 28
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.crowdin.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:57:49.46218786Z"
        },
        "updatedAt": "2026-10-08T21:57:49.46218786Z"
      }
    },
    "answer": "Lokalise scores 71.3 (BB) on agent readiness against Crowdin's 69.6 (B), and leads in 4 of 7 scored categories.",
    "b": {
      "slug": "lokalise",
      "name": "Lokalise",
      "vendor": "Lokalise, Inc.",
      "vendorUrl": "https://lokalise.com",
      "kind": "http-api",
      "category": "translation",
      "summary": "Lokalise is a hosted translation management system for software strings, documents and marketing content. Agents reach it through a REST API, the `lokalise2` CLI, SDKs in four languages and a hosted MCP server in beta.",
      "url": "https://www.anchorterminal.com/tools/lokalise",
      "markdownUrl": "https://www.anchorterminal.com/tools/lokalise.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/lokalise.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/lokalise.json",
      "repo": "https://github.com/lokalise/lokalise-cli-2-go",
      "license": "Proprietary service under the Lokalise Master Service Agreement. The CLI and the Node SDK on GitHub are BSD 3-Clause",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.lokalise.com/api2",
      "packages": [
        {
          "registry": "npm",
          "name": "@lokalise/node-api"
        },
        {
          "registry": "pypi",
          "name": "python-lokalise-api"
        },
        {
          "registry": "go",
          "name": "github.com/lokalise/lokalise-cli-2-go"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. A user creates a personal API token under Profile settings, read-only or read/write, and sends it in the `X-Api-Token` header. Tokens don't expire, can be deleted, and carry the creating user's project access. OAuth 2 for the API needs an app registered through Lokalise support, with scopes such as `read_keys` and `write_projects`. The MCP server takes OAuth with dynamic client registration, or an API token in the `apikey` header.",
      "pricing": "paid",
      "pricingNotes": "Explorer $149, Growth $379 and Advanced $1,049 a month billed yearly, Enterprise by quote. Monthly-billing prices load only in a browser and were not read. Every plan starts with a 14-day trial with no card, so an agent can start without a contract. There is no free plan except for open-source non-profit projects on request. The MCP article says API access depends on the plan, and the page did not show which plans include it (checked 2026-10-08).",
      "priceSummary": "$149 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI files or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 124,
        "npmWeekly": 337721,
        "pypiWeekly": 39399,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.lokalise.com",
      "llmsTxt": "https://developers.lokalise.com/llms.txt",
      "openapi": "https://developers.lokalise.com/openapi/lokalise-api-without-branches.yml",
      "capabilities": [
        "translate.text",
        "translate.glossary",
        "translate.documents"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "webhooks",
        "cli",
        "typescript",
        "python",
        "no-card",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 71.3,
        "grade": "BB",
        "agentReady": true,
        "rank": 115,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 84,
          "payments": 30,
          "reliability": 84,
          "schema": 76,
          "security": 73,
          "transparency": 81
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The REST API has public OpenAPI files, Markdown docs, published rate limits, read-only tokens, scoped OAuth and an audit log endpoint. Access needs a paid plan after a 14-day trial, a person signs up in a browser, and the Master Service Agreement forbids benchmarking. No idempotency keys or deprecation policy were found in the reviewed documentation.",
        "bestFor": "Agents that manage localisation work, such as adding keys, uploading and exporting string files, keeping a glossary and starting AI or machine translation tasks for a team that already uses Lokalise.",
        "strengths": [
          "Three public OpenAPI 3.0.3 files, llms.txt and a Markdown twin of every reference page",
          "Rate limits published as 6 requests a second per token and per IP, with 10 concurrent requests per project",
          "API tokens are read-only or read/write, and OAuth 2 carries read and write scopes per resource",
          "The MCP server signs in with OAuth, PKCE and dynamic client registration, and lists 22 scopes",
          "`GET /v1/audit-logs` returns team audit events in OCSF 1.3.0 format since 16 July 2026"
        ],
        "weaknesses": [
          "The Master Service Agreement forbids using the service for benchmarking or competitive analysis",
          "No free plan. Explorer is $149 a month billed yearly after a 14-day trial without a card",
          "No idempotency keys in the OpenAPI files, though the errors page mentions an idempotent key under 409",
          "API tokens never expire and carry every permission of the user who made them",
          "The Developer Program Agreement lets Lokalise change or end API access with or without notice",
          "The MCP server is labelled beta in the help centre article"
        ],
        "agentNotes": [
          "Send the token in the `X-Api-Token` header to `https://api.lokalise.com/api2`. OAuth access tokens go in `Authorization: Bearer` and expire after about 60 minutes.",
          "Stay under 6 requests a second per token and 10 concurrent requests per project. On 429, back off exponentially and read `X-RateLimit-Reset`.",
          "Use a read-only token for reads. A read/write token can call `PUT /projects/{project_id}/empty`, which deletes every key and translation.",
          "Use `pagination=cursor` on `/keys` and `/translations`, with `limit` at most 500 on keys, and follow `X-Pagination-Next-Cursor`.",
          "Projects above 10,000 key-language pairs need `/files/async-download`. Poll `/processes/{process_id}` for the bundle URL, and do the same after `/files/upload`."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 71.3
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 84,
          "payments": 30,
          "reliability": 84,
          "schema": 76,
          "security": 73,
          "transparency": 63
        },
        "provenanceScore": 98
      },
      "connect": {
        "install": "brew tap lokalise/cli-2\nbrew install lokalise2",
        "http": "curl \"https://api.lokalise.com/api2/projects?limit=5\" -H \"X-Api-Token: $LOKALISE_API_TOKEN\"",
        "claudeCode": "claude mcp add lokalise_pm --transport http https://mcp.lokalise.com/mcp/project-management",
        "config": {
          "lokalise_pm": {
            "url": "https://mcp.lokalise.com/mcp/project-management"
          },
          "lokalise_sd": {
            "url": "https://mcp.lokalise.com/mcp/software-development"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/translate.text",
        "tool": "https://letme.dev/lokalise"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Explorer",
          "unit": "month",
          "usd": 149,
          "note": "billed yearly"
        },
        {
          "item": "Growth",
          "unit": "month",
          "usd": 379,
          "note": "billed yearly"
        },
        {
          "item": "Advanced",
          "unit": "month",
          "usd": 1049,
          "note": "billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Lokalise, Inc.",
        "domain": "lokalise.com",
        "domainRegistered": "2016-09-26",
        "endpointOnVendorDomain": true,
        "terms": "https://lokalise.com/msa-new/",
        "privacy": "https://lokalise.com/privacy-policy/",
        "statusPage": "https://status.lokalise.com",
        "changelog": "https://lokalise.com/changelog/",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Master Service Agreement (last updated November 2025) names Lokalise, Inc., a Delaware company at 3500 South DuPont Highway, Suite BZ-101, Dover, DE 19901. It governs paid subscriptions.",
          "Trial and individual users fall under the User and Trial Access Terms of Service at https://lokalise.com/terms-of-service/ (November 2025). API integrations published in the app library fall under the Developer Program Agreement at https://lokalise.com/dev-hub-terms/, which shows no date.",
          "The privacy policy (last updated March 2026) covers the website, platform and services, and says Lokalise is the processor for customer data.",
          "The API answers at api.lokalise.com and the MCP server at mcp.lokalise.com.",
          "https://lokalise.com/.well-known/security.txt gives vdp.lokalise.com and security@lokalise.com as contacts and expires on 20 August 2027.",
          "RDAP for lokalise.com gives a registration date of 2016-09-26."
        ],
        "score": 98
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/lokalise.json",
      "live": {
        "slug": "lokalise",
        "probe": {
          "target": "https://api.lokalise.com/api2",
          "method": "get",
          "lastAt": "2026-10-08T21:53:26.189197119Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 146,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 91,
          "p95ms24h": 146,
          "samples24h": 28,
          "samples30d": 28,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 28,
              "ok": 28
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.lokalise.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:58:01.399678507Z"
        },
        "updatedAt": "2026-10-08T21:58:01.399678507Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Crowdin OÜ",
        "b": "Lokalise, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.crowdin.com/api/v2",
        "b": "https://api.lokalise.com/api2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "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": "Proprietary service under Crowdin's terms. The CLI and the official API clients are MIT",
        "b": "Proprietary service under the Lokalise Master Service Agreement. The CLI and the Node SDK on GitHub are BSD 3-Clause",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-30",
        "b": "2026-10-05",
        "name": "Last release"
      },
      {
        "a": "2026-09-24",
        "b": "2025-11-01",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-24",
        "b": "2026-03-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "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": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "320 stars, 264k npm/wk, 14k PyPI/wk",
        "b": "124 stars, 338k npm/wk, 39k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Lokalise scores 71.3 (BB) on agent readiness against Crowdin's 69.6 (B), and leads in 4 of 7 scored categories.",
        "question": "Which is better for AI agents, Crowdin or Lokalise?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Crowdin and Lokalise need an API key?"
      },
      {
        "answer": "Yes. Crowdin has a hosted endpoint at https://api.crowdin.com/api/v2 and Lokalise at https://api.lokalise.com/api2.",
        "question": "Can an agent call Crowdin and Lokalise without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Teams that keep product strings and files in Crowdin and want an agent to upload sources, check progress, apply pre-translation, manage glossaries and pull builds.",
        "slug": "crowdin",
        "watchFor": "The terms forbid accessing the service to monitor availability, performance or functionality, or for benchmarking, without Crowdin's prior written consent"
      },
      {
        "aheadOn": [
          "Reliability, 84 against 78",
          "Security \u0026 auth, 73 against 68"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Free to start without a card"
        ],
        "goodFor": "Agents that manage localisation work, such as adding keys, uploading and exporting string files, keeping a glossary and starting AI or machine translation tasks for a team that already uses Lokalise.",
        "slug": "lokalise",
        "watchFor": "The Master Service Agreement forbids using the service for benchmarking or competitive analysis"
      }
    ],
    "job": {
      "capability": "translate.text",
      "name": "Translate text"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-translate-vs-crowdin.json",
        "title": "Amazon Translate vs Crowdin",
        "url": "https://www.anchorterminal.com/compare/amazon-translate-vs-crowdin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-translate-vs-lokalise.json",
        "title": "Amazon Translate vs Lokalise",
        "url": "https://www.anchorterminal.com/compare/amazon-translate-vs-lokalise"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-translator-vs-crowdin.json",
        "title": "Azure Translator vs Crowdin",
        "url": "https://www.anchorterminal.com/compare/azure-translator-vs-crowdin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-translator-vs-lokalise.json",
        "title": "Azure Translator vs Lokalise",
        "url": "https://www.anchorterminal.com/compare/azure-translator-vs-lokalise"
      },
      {
        "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-google-cloud-translation.json",
        "title": "Crowdin vs Google Cloud Translation",
        "url": "https://www.anchorterminal.com/compare/crowdin-vs-google-cloud-translation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crowdin-vs-lara-translate.json",
        "title": "Crowdin vs Lara Translate API",
        "url": "https://www.anchorterminal.com/compare/crowdin-vs-lara-translate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crowdin-vs-libretranslate.json",
        "title": "Crowdin vs LibreTranslate",
        "url": "https://www.anchorterminal.com/compare/crowdin-vs-libretranslate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crowdin-vs-lingo-dev.json",
        "title": "Crowdin vs Lingo.dev",
        "url": "https://www.anchorterminal.com/compare/crowdin-vs-lingo-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crowdin-vs-lingvanex.json",
        "title": "Crowdin vs Lingvanex Translation API",
        "url": "https://www.anchorterminal.com/compare/crowdin-vs-lingvanex"
      },
      {
        "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/crowdin-vs-systran.json",
        "title": "Crowdin vs SYSTRAN Translate API",
        "url": "https://www.anchorterminal.com/compare/crowdin-vs-systran"
      },
      {
        "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/google-cloud-translation-vs-lokalise.json",
        "title": "Google Cloud Translation vs Lokalise",
        "url": "https://www.anchorterminal.com/compare/google-cloud-translation-vs-lokalise"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lara-translate-vs-lokalise.json",
        "title": "Lara Translate API vs Lokalise",
        "url": "https://www.anchorterminal.com/compare/lara-translate-vs-lokalise"
      },
      {
        "json": "https://www.anchorterminal.com/compare/libretranslate-vs-lokalise.json",
        "title": "LibreTranslate vs Lokalise",
        "url": "https://www.anchorterminal.com/compare/libretranslate-vs-lokalise"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lingo-dev-vs-lokalise.json",
        "title": "Lingo.dev vs Lokalise",
        "url": "https://www.anchorterminal.com/compare/lingo-dev-vs-lokalise"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lingvanex-vs-lokalise.json",
        "title": "Lingvanex Translation API vs Lokalise",
        "url": "https://www.anchorterminal.com/compare/lingvanex-vs-lokalise"
      },
      {
        "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/lokalise-vs-systran.json",
        "title": "Lokalise vs SYSTRAN Translate API",
        "url": "https://www.anchorterminal.com/compare/lokalise-vs-systran"
      }
    ],
    "scores": [
      {
        "by": 6,
        "crowdin": 78,
        "edge": "lokalise",
        "key": "reliability",
        "lokalise": 84,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "crowdin": 80,
        "edge": "crowdin",
        "key": "schema",
        "lokalise": 76,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 0,
        "crowdin": 69,
        "edge": "",
        "key": "ergonomics",
        "lokalise": 69,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 5,
        "crowdin": 68,
        "edge": "lokalise",
        "key": "security",
        "lokalise": 73,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "crowdin": 30,
        "edge": "",
        "key": "payments",
        "lokalise": 30,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "crowdin": 82,
        "edge": "lokalise",
        "key": "maintenance",
        "lokalise": 84,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 2,
        "crowdin": 79,
        "edge": "lokalise",
        "key": "transparency",
        "lokalise": 81,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Lokalise scores 71.3 (BB) on agent readiness against Crowdin's 69.6 (B), and leads in 4 of 7 scored categories. Both do translate text.",
    "verdicts": {
      "crowdin": "The REST API has a public OpenAPI document with 374 operations, and tokens can be limited by scope, access level and project. Translation runs inside Crowdin projects and connected engines, so it is not a stateless per-character translation API. No Retry-After guidance, idempotency keys or SLA were found in the reviewed documentation.",
      "lokalise": "The REST API has public OpenAPI files, Markdown docs, published rate limits, read-only tokens, scoped OAuth and an audit log endpoint. Access needs a paid plan after a 14-day trial, a person signs up in a browser, and the Master Service Agreement forbids benchmarking. No idempotency keys or deprecation policy were found in the reviewed documentation."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/crowdin-vs-lokalise",
    "json": "https://www.anchorterminal.com/compare/crowdin-vs-lokalise.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/crowdin-vs-lokalise.md",
    "slim": "https://www.anchorterminal.com/compare/crowdin-vs-lokalise.min.md"
  },
  "markdown": "Lokalise scores 71.3 (BB) on agent readiness against Crowdin's 69.6 (B), and leads in 4 of 7 scored categories. Both do translate text.\n\n- Crowdin: grade B, 69.6/100, rank #153 of 722. Markdown https://www.anchorterminal.com/tools/crowdin.md · JSON https://www.anchorterminal.com/api/v1/tools/crowdin.json\n- Lokalise: grade BB, 71.3/100, rank #115 of 722. Markdown https://www.anchorterminal.com/tools/lokalise.md · JSON https://www.anchorterminal.com/api/v1/tools/lokalise.json\n\n## Which one, for what\n\n### Crowdin (B)\n\nGood for: Teams that keep product strings and files in Crowdin and want an agent to upload sources, check progress, apply pre-translation, manage glossaries and pull builds.\n\nWatch for: The terms forbid accessing the service to monitor availability, performance or functionality, or for benchmarking, without Crowdin's prior written consent\n\n### Lokalise (BB)\n\nGood for: Agents that manage localisation work, such as adding keys, uploading and exporting string files, keeping a glossary and starting AI or machine translation tasks for a team that already uses Lokalise.\n\nAhead on:\n- Reliability, 84 against 78\n- Security \u0026 auth, 73 against 68\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Free to start without a card\n\nWatch for: The Master Service Agreement forbids using the service for benchmarking or competitive analysis\n\n\n## Score by category\n\n| Category | Weight | Crowdin | Lokalise | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 78 | 84 | Lokalise +6 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 80 | 76 | Crowdin +4 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 69 | even |\n| Security \u0026 auth | 14% (17.5 this run) | 68 | 73 | Lokalise +5 |\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) | 82 | 84 | Lokalise +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 79 | 81 | Lokalise +2 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **69.6 · B** | **71.3 · BB** | |\n\n## Facts side by side\n\n| Fact | Crowdin | Lokalise |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Crowdin OÜ | Lokalise, Inc. |\n| Hosted endpoint | `https://api.crowdin.com/api/v2` | `https://api.lokalise.com/api2` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Crowdin's terms. The CLI and the official API clients are MIT | Proprietary service under the Lokalise Master Service Agreement. The CLI and the Node SDK on GitHub are BSD 3-Clause |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-30 | 2026-10-05 |\n| Terms last updated | 2026-09-24 | 2025-11-01 |\n| Privacy policy last updated | 2026-09-24 | 2026-03-01 |\n| Customer content may train models | not found in the text | not found in the text |\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 | yes | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 320 stars, 264k npm/wk, 14k PyPI/wk | 124 stars, 338k npm/wk, 39k PyPI/wk |\n\n## Verdicts\n\n**Crowdin.** The REST API has a public OpenAPI document with 374 operations, and tokens can be limited by scope, access level and project. Translation runs inside Crowdin projects and connected engines, so it is not a stateless per-character translation API. No Retry-After guidance, idempotency keys or SLA were found in the reviewed documentation.\n\n**Lokalise.** The REST API has public OpenAPI files, Markdown docs, published rate limits, read-only tokens, scoped OAuth and an audit log endpoint. Access needs a paid plan after a 14-day trial, a person signs up in a browser, and the Master Service Agreement forbids benchmarking. No idempotency keys or deprecation policy were found in the reviewed documentation.\n\n## Before you call either\n\n### Crowdin\n\n1. Send `Authorization: Bearer \u003ctoken\u003e` to `https://api.crowdin.com/api/v2`. Crowdin Enterprise uses `https://\u003corganization_domain\u003e.api.crowdin.com/api/v2`\n2. Use the MCP V2 endpoint `https://mcp.crowdin.com/v2/mcp` and set `crowdin-tool-sets`, because the server loads all 33 tool sets by default\n3. Set `crowdin-read-only: true` on the MCP connection for exploration. It exposes only list and get tools\n4. Keep to 20 concurrent requests an account across all tokens, and add your own backoff on 429\n5. Upload a file to `/storages` first, then pass the `storageId` to the add-file call. Builds, exports and reports are asynchronous and need a status poll\n6. `/mts/{mtId}/translations` takes at most 100 strings a call and needs the `mt` scope and a configured engine\n\n### Lokalise\n\n1. Send the token in the `X-Api-Token` header to `https://api.lokalise.com/api2`. OAuth access tokens go in `Authorization: Bearer` and expire after about 60 minutes.\n2. Stay under 6 requests a second per token and 10 concurrent requests per project. On 429, back off exponentially and read `X-RateLimit-Reset`.\n3. Use a read-only token for reads. A read/write token can call `PUT /projects/{project_id}/empty`, which deletes every key and translation.\n4. Use `pagination=cursor` on `/keys` and `/translations`, with `limit` at most 500 on keys, and follow `X-Pagination-Next-Cursor`.\n5. Projects above 10,000 key-language pairs need `/files/async-download`. Poll `/processes/{process_id}` for the bundle URL, and do the same after `/files/upload`.\n\n## Questions\n\n### Which is better for AI agents, Crowdin or Lokalise?\n\nLokalise scores 71.3 (BB) on agent readiness against Crowdin's 69.6 (B), and leads in 4 of 7 scored categories.\n\n### Do Crowdin and Lokalise need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Crowdin and Lokalise without installing anything?\n\nYes. Crowdin has a hosted endpoint at https://api.crowdin.com/api/v2 and Lokalise at https://api.lokalise.com/api2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/crowdin-vs-lokalise.json, and with the fewest tokens: https://www.anchorterminal.com/compare/crowdin-vs-lokalise.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"crowdin\", \"b\": \"lokalise\"}`. From a terminal: `anchor compare crowdin lokalise`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/crowdin.json and https://www.anchorterminal.com/api/v1/tools/lokalise.json\n\n## Other comparisons with Crowdin or Lokalise\n\n- [Amazon Translate vs Crowdin](https://www.anchorterminal.com/compare/amazon-translate-vs-crowdin.md)\n- [Amazon Translate vs Lokalise](https://www.anchorterminal.com/compare/amazon-translate-vs-lokalise.md)\n- [Azure Translator vs Crowdin](https://www.anchorterminal.com/compare/azure-translator-vs-crowdin.md)\n- [Azure Translator vs Lokalise](https://www.anchorterminal.com/compare/azure-translator-vs-lokalise.md)\n- [Crowdin vs DeepL API](https://www.anchorterminal.com/compare/crowdin-vs-deepl-api.md)\n- [Crowdin vs Google Cloud Translation](https://www.anchorterminal.com/compare/crowdin-vs-google-cloud-translation.md)\n- [Crowdin vs Lara Translate API](https://www.anchorterminal.com/compare/crowdin-vs-lara-translate.md)\n- [Crowdin vs LibreTranslate](https://www.anchorterminal.com/compare/crowdin-vs-libretranslate.md)\n- [Crowdin vs Lingo.dev](https://www.anchorterminal.com/compare/crowdin-vs-lingo-dev.md)\n- [Crowdin vs Lingvanex Translation API](https://www.anchorterminal.com/compare/crowdin-vs-lingvanex.md)\n- [Crowdin vs Phrase](https://www.anchorterminal.com/compare/crowdin-vs-phrase.md)\n- [Crowdin vs SYSTRAN Translate API](https://www.anchorterminal.com/compare/crowdin-vs-systran.md)\n- [DeepL API vs Lokalise](https://www.anchorterminal.com/compare/deepl-api-vs-lokalise.md)\n- [Google Cloud Translation vs Lokalise](https://www.anchorterminal.com/compare/google-cloud-translation-vs-lokalise.md)\n- [Lara Translate API vs Lokalise](https://www.anchorterminal.com/compare/lara-translate-vs-lokalise.md)\n- [LibreTranslate vs Lokalise](https://www.anchorterminal.com/compare/libretranslate-vs-lokalise.md)\n- [Lingo.dev vs Lokalise](https://www.anchorterminal.com/compare/lingo-dev-vs-lokalise.md)\n- [Lingvanex Translation API vs Lokalise](https://www.anchorterminal.com/compare/lingvanex-vs-lokalise.md)\n- [Lokalise vs Phrase](https://www.anchorterminal.com/compare/lokalise-vs-phrase.md)\n- [Lokalise vs SYSTRAN Translate API](https://www.anchorterminal.com/compare/lokalise-vs-systran.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "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": "Crowdin vs Lokalise",
        "url": ""
      }
    ],
    "description": "Lokalise scores 71.3 (BB) on agent readiness against Crowdin's 69.6 (B), and leads in 4 of 7 scored categories. Both do translate text. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Crowdin B 69.6",
      "Lokalise BB 71.3",
      "scores"
    ],
    "h1": "Crowdin vs Lokalise",
    "image": "https://www.anchorterminal.com/assets/og/compare-crowdin-vs-lokalise.png",
    "path": "/compare/crowdin-vs-lokalise",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Crowdin vs Lokalise for AI agents, B 69.6 vs BB 71.3 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/crowdin-vs-lokalise"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 630
  },
  "version": 1
}
