untranslated → translated → reviewed → approved. Each status change is recorded in version history, and any previous value can be restored with the revert endpoint.
Translations are scoped to a project and a key. All translation write endpoints require both :projectId and :keyId path parameters.
Endpoints
Get All Translations for a Language
Returns all translations in a given language for the entire project. Useful for building export workflows or analytics dashboards.Upsert a Translation
Creates the translation if it does not exist, or updates it if it does. ThePUT method is used for idempotent upsert behavior.
source field indicates who produced the value. Valid values are human and ai. When source is ai, you may also include aiConfidence (0–100) to record the confidence score.
Change Translation Status
Advance or roll back a translation through the workflow without changing the value:untranslated, translated, reviewed, approved.
Revert to Previous Version
Reverts the translation to the most recent previous value:Get Version History
Returns the full change history for a translation, ordered newest first:Key Notes
- The
sourcefield on a translation helps you distinguish human edits from AI-generated values. - History entries record both
previousValueandnewValue, giving you a full diff of every change. ThechangedByNamefield contains the display name of the user who made the change. - The translations list endpoint (
GET /api/projects/:projectId/translations/:language) supportspageandlimitquery parameters for offset-based pagination.