APIBeta
Documents

A translation of a document

GET
/v1/documents/{id}/translations/{code}

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.

Authorization

apiKey
headerAuthorizationBearer <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).

Path Parameters

id*integer

Identifier of the document

Range1 <= value <= 2147483647
code*string

Code of the target language, as in the language of the translation, e.g. it or pt-BR. Not case sensitive

Match^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{1,8})*$

Response Body

The translation

application/json
  1. response
id*integer

Identifier 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*string

CREATED: 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.

Value in"CREATED""PRE_TRANSLATING""CONFIRMED""GENERATING""GENERATED"
progress*
translators*array<>

The people assigned to translate this language

createdAt*string

When the language was added to the document

Formatdate-time
updatedAt*|

When the translation last changed. Null if it never did

Formatdate-time
links*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

Example Request
curl -X GET 'https://api.redokun.com/v1/documents/1/translations/string'
Example Response
{  "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"    }  ]}