A translation of a document
The status and the progress of one language the document is translated into: the same item as in GET /v1/documents/{id}/translations. Poll it every 10 to 30 seconds while you wait for a single language.
Each revision of the document has its own translations. The first upload of a document has them from the start, with no segments until the document is INDEXED: wait for that status of the document before you read the progress. A new revision has none until its indexing copies them from the previous revision, so until then the call answers 404.
An id that belongs to an older revision of the document answers 303 and points to the same language in the latest revision. Following the redirect is a second call, and counts against the rate limit like any other.
apiKeyAuthorizationBearer <token>The key the team leader created in Redokun, sent as Authorization: Bearer rdk_.... A read key is rejected on every call that writes (any method other than GET, HEAD or OPTIONS).
id*integerIdentifier of the document
1 <= value <= 2147483647code*stringCode of the target language, as in the language of the translation, e.g. it or pt-BR. Not case sensitive
^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{1,8})*$The translation
application/json- response
id*integerIdentifier of the translation. Each revision of the document has its own translations, so the id changes when a new revision is uploaded
language*Language of the translation
status*stringCREATED: the translation is open for work. PRE_TRANSLATING: a pre-translation that includes this language is queued or running. CONFIRMED: the translation was confirmed and the file can be generated. GENERATING: the translated file is being generated. GENERATED: the translated file is ready.
"CREATED""PRE_TRANSLATING""CONFIRMED""GENERATING""GENERATED"progress*translators*array<>The people assigned to translate this language
createdAt*stringWhen the language was added to the document
date-timeupdatedAt*|When the translation last changed. Null if it never did
date-timelinks*array<>The resources related to this one. Follow these links instead of building the URLs yourself, so a change of path does not break the client
curl -X GET 'https://api.redokun.com/v1/documents/1/translations/string'{ "id": 4512, "language": { "name": "Italian", "code": "it" }, "status": "PRE_TRANSLATING", "progress": { "totalSegments": 140, "translatedSegments": 62, "confirmedSegments": 0, "draftSegments": 62, "completedPercentage": 44.29 }, "translators": [ { "id": 414, "fullName": "Mario Rossi", "email": "mario.rossi@acme.com", "inviteStatus": "WORKING" } ], "createdAt": "2026-09-14T09:30:00+00:00", "updatedAt": "2026-09-15T16:05:00+00:00", "links": [ { "rel": "self", "href": "https://api.redokun.com/v1/documents/981/translations/it" }, { "rel": "translations", "href": "https://api.redokun.com/v1/documents/981/translations" }, { "rel": "document", "href": "https://api.redokun.com/v1/documents/981" } ]}Generate a translation of a document POST
Generates the translated file of one language of the document. The document must be `INDEXED`, and the translation must be `CONFIRMED`, or `CREATED` with `confirm=true`, which confirms it first. The generation runs in the background. The answer holds the translation, now `GENERATING`. Poll its `self` link, the same as `GET /v1/documents/{id}/translations/{code}`, every 10 to 30 seconds until the translation is `GENERATED`, then follow the `download` link of this answer. Generating spends words of the plan. When the plan has not enough words left, the call answers 402 and the generation does not start. A translation confirmed by the same call stays `CONFIRMED`: once words are added, call again without `confirm`.
A document of the team GET
An id that belongs to an older revision of the document answers 303 and points to the latest revision. Most HTTP clients follow it on their own, so the document you get may have another `id` than the one you asked for: compare them when the revision matters to you. Following the redirect is a second call, and counts against the rate limit like any other.