Translate with AI (write)
Machine-translate the project’s candidate keys into one or more target languages with the resolved engine. Runs asynchronously — poll the returned jobId.
Candidates are filtered in SQL before any model sees a string (onlyEmpty / onlyOutdated / tag filters / keyPrefix / explicit keyIds). With ?branch= the run targets a branch instead of main. Writes follow the project’s approval workflow exactly as in the app.
Constraints:
- Metered against the org’s AI credits when running on a TextSetu platform key; free on a BYOK key.
autoApproveis honored only for callers that can approve; otherwise writes land as proposals.
Authorizations
API token: tsu_pat_… (PAT) or tsu_proj_… (project token). The token's granted RBAC permissions determine access; see each operation's x-permission.
Path Parameters
Project id (UUID) or id-embedded path slug.
Query Parameters
Target an open translation branch instead of main. Required when the project's main branch is protected.
Body
Target BCP-47 language codes to translate into.
12Restrict to these key ids. Omit to consider every key in the project.
Translate only keys with no existing value in the target language.
Include values flagged outdated (the source changed after the value was last set).
Only keys carrying at least one of these tags.
Skip keys carrying any of these tags.
Only keys whose id starts with this prefix, e.g. home..
Approvers only: apply directly instead of proposing when the project requires approval. Ignored for callers without approval rights (the write still lands as a proposal).
Run the engine's review pass on this run. Omit to follow the engine default.
Use the provider's asynchronous batch path (~50% cheaper, higher latency).

