Skip to content
transglot for developersapi, cli, mcp

Translate your strings from CI, not a dashboard.

A REST API with scoped tokens, 12 webhook events signed with HMAC, an MCP server your editor can call, and 20 file formats that round-trip without a schema rewrite. Push the file, get the languages back.

Without
With

A dashboard somebody has to remember to open.

The CLI and the GitHub Action run in CI on a scoped project token, from Starter.

A format converter in the middle, quietly dropping plurals and comments.

Twenty formats read and written natively, so plurals, placeholders and comments survive the round trip.

Polling an endpoint to find out whether the run finished.

12 webhook events, signed over the timestamp and the body, so your receiver can enforce its own replay window.

Push a strings file, get back drafted languages with the four checks already run. One project token drives the CLI, the GitHub Action, the REST API and the MCP server, and the limit is 60 requests a minute per token.

how it works

Your file goes in as it is. Placeholders and plurals come back intact.

five steps: 20 formats read as they are, one scoped token, the translation pass, the placeholder check, a signed webhook and then pull
solutions · route consolesolutions / developersDevelopers

steps · Developers: 20 formats, as they are → API, CLI, Action or MCP → Flux on push, Deep per key → The placeholder check → A signed webhook, then pull

what goes in20 formats, as they areplurals, placeholders and comments survive the round trip
how it gets thereAPI, CLI, Action or MCPone scoped project token drives all four, sixty requests a minute
which passFlux on push, Deep per keythe fast pass on every commit; the careful one on the keys you flagFluxDeepboth passes, chosen per key
the checkThe placeholder checka renamed or reordered {token} is refused, never guessed atplaceholderspluralsglossarylengththe check that catches it here
what comes outA signed webhook, then pull12 events signed over timestamp and body; /v1/pull takes every string back out
an illustrative first weekDevelopers
$ transglot push
POST /v1/push · 200 · abilities: push, pull
placeholders · {amount} kept in every locale
webhook · signed over timestamp + body · delivered
$ transglot pull
3 locales written back, schema untouched
the plan that fits
Starter$19a month
  • 300,000 words a month
  • Unlimited projects and languages, three seats
  • The scoped token Free cannot mint: CLI, Action, API, MCP
Free needs no card, but it cannot mint a project token, so the five surfaces start here.
See all eight pages
every one of them starts on the same free plan
A fixture, in your browser. The five steps, the two passes, the four checks and the plan rows are the shipped mechanism and the shipped price list; the first-week tape is illustrative and nothing on this plate is sent anywhere.

A translation tool, versus a build step.

Transglot
in the pipeline
Where it runs
In CI. The GitHub Action drafts on push, and the CLI does the same thing from your shell.
Auth
Project tokens carrying five abilities: push, pull, manage, read and write, with a three-ability deploy subset.
Events
12 webhook events, HMAC signed over the timestamp and the body.
Formats
Twenty formats, read and written natively. Seven of them carry plurals, and a format that cannot express a plural form refuses the row rather than inventing one.
Agents
An MCP server exposing 16 MCP tools, so an editor can translate what is missing or run QA without leaving the file.
The format, event and tool counts above are pinned to the enums they come from by tests that fail when the copy drifts.
what you can call

Five ways in, one project token.

All five authenticate with the same scoped token, which the Free plan cannot mint. They start at Starter.
There is no browser download of translations, deliberately. The ways out are the pull endpoint, the CLI, the CDN bundle and file-storage sync.

FAQs

What a developer checks before writing the first call.

Is there a translation API I can call from my own code?
Yes: a REST API v1, a CLI on npm, a GitHub Action, an MCP server with 16 tools, and 12 signed webhook events. All five authenticate with the same scoped project token, which the free plan cannot mint, so they start at Starter, $19 a month.
One project, 100,000 words to start and 10,000 a month after, three seats, and 15 locale rows including the source, which is 14 target languages. It cannot mint a project token, so the CLI, the Action, the API, webhooks and the MCP server all start at Starter.
Add the GitHub Action. It drafts every mapped language on the push and writes them into the same pull request, so the translations arrive with the change rather than after it. The CLI does the same job from any other runner and exits non-zero when a run fails, which is what turns the step red instead of letting a refused row through quietly.
Sixty requests a minute per project token. It is per token rather than per organisation, so a noisy CI job cannot starve your production reader.
Every delivery carries a timestamp header and an HMAC signature computed over the timestamp and the body. We publish the timestamp so your receiver can enforce whatever replay window it wants; we do not enforce one for you.
12 webhook events: batch.completed, batch.failed, key.created, key.updated, key.deleted, translation.updated, translation.reviewed, language.added, language.removed, glossary.updated, qa.completed and source_drift.repaired. The same list is readable at GET /v1/webhooks/events, so your code never has to hardcode it.
A token carries five abilities: push, pull, manage, read and write, and there is a three-ability deploy subset for a job that only needs to move files. Tokens are minted per project, so one cannot reach a project it was not made for.
Seven of the twenty: Android XML, iOS stringsdict, iOS xcstrings, Flutter ARB, gettext PO, CSV and XLSX. Laravel PHP does not, and rather than inventing a form its codec refuses the row.
Yes, with 16 tools, so an agent can read a project, list languages, get and upsert a single translation, pull and push whole files, translate what is missing, poll or cancel a batch, retry a failed one and run QA without leaving the editor. Four of the sixteen are the glossary tools. Cancelling a batch returns its unspent words to your allowance.
A broken placeholder, a missing plural form or a forbidden glossary term gets one automatic corrective retry, and the checks run again on what comes back. If it still fails, the row is refused rather than written into your file. A row that only overruns its length is written and flagged for review instead.
On web, yes. Publish a locale bundle to the CDN from the Starter plan and read it at runtime, so a copy fix is a publish rather than a release. Native apps still take their strings from the file formats and need a build.
GET /v1/pull, the CLI, the CDN bundle, or file storage sync to S3, Dropbox or Drive. There is deliberately no browser download of translations, so plan on one of those four routes.
The CLI is MIT licensed and published on npm, and the GitHub Action is MIT with a public repository. The hosted application itself, including the engine and the format codecs, is private, and nothing on this site should be read as saying otherwise.
works with what you already run

41 connectors, already built.

scoped tokens · signed events · 20 formats

Put translation in CI and stop thinking about it.

Free needs no card. The CLI, the Action, the API and the MCP server start at Starter, $19 a month.