Start een bulkvertaling op de achtergrond van de gepubliceerde documenten van een schema naar doeltalen.
Plaats een achtergrondvertaling in de wachtrij voor alle gepubliceerde documenten uit een of meer componentenschema's naar een set doeltalen. Resultaten worden geüpsert in de translations-tabel zodra elke vertaling is voltooid.
Eindpunt: POST /translation
Authenticatie: Bearer JWT (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Veld | Type | Vereist | Opmerkingen |
|---|---|---|---|
websiteId | uuid | ja | Website met de brondocumenten. |
schemaNames | string[] | ja* | Componentenschema's om te vertalen. Dubbelen worden verwijderd. |
schemaName | string | ja* | Legacy-alternatief om één schema te versturen. |
languages | string[] | ja | Ondersteunde doeltaalcodes. Dubbele codes worden verwijderd. |
* Geef ofwel schemaNames of schemaName op.
Alleen gepubliceerde documenten met niet-lege gepubliceerde inhoud worden meegenomen.
{
"job_id": "<uuid>",
"website_id": "<uuid>",
"schema_name": null,
"schema_names": ["post", "hero"],
"languages": ["fr", "es", "de"],
"status": "queued",
"documents_processed": 12,
"translations_scheduled": 30,
"translations_skipped": 6,
"translations_completed": 0,
"translations_failed": 0,
"reused": false,
"created_at": "2026-07-15T18:00:00Z",
"updated_at": "2026-07-15T18:00:00Z"
}
Geeft terug:
202 Accepted wanneer vertalingen in de wachtrij zijn geplaatst200 OK wanneer elke vertaling al actueel is| Veld | Beschrijving |
|---|---|
job_id | Identificatie die wordt gebruikt om de voortgang van de job op te halen. |
status | Huidige jobstatus. |
documents_processed | Aantal gevonden in aanmerking komende brondocumenten. |
translations_scheduled | Aantal ingeplande document-taalparen. |
translations_skipped | Aantal overgeslagen omdat hun bron-hash actueel is. |
translations_completed | Aantal met succes vertaald. |
translations_failed | Aantal dat is mislukt. |
reused | Of de respons verwijst naar een bestaande actieve job. |
Mogelijke jobstatussen zijn:
preparingqueuedrunningcompletedcompleted_with_errorsfailedElk document-taalpaar slaat een SHA-256-hash op van de gepubliceerde inhoud van het brondocument.
Een vertaling wordt overgeslagen wanneer de opgeslagen bron-hash overeenkomt met de huidige gepubliceerde inhoud. Hierdoor kan het eindpunt herhaaldelijk worden aangeroepen zonder ongewijzigde inhoud opnieuw te vertalen.
Als de gepubliceerde inhoud verandert terwijl een gelijkwaardige job actief is, weigert de service het nieuwe verzoek. Dien het opnieuw in nadat de actieve job is voltooid.
De vertaling wordt asynchroon uitgevoerd na de initiële respons.
completed_with_errors.curl -X POST '{TRANSLATION_API_URL}/translation' \
-H 'Authorization: Bearer <workos-jwt>' \
-H 'Content-Type: application/json' \
-d '{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es"]
}'
400 Bad Request — schema's of talen ontbreken, een taal wordt niet ondersteund, of de batch overschrijdt de geconfigureerde limiet401 Unauthorized — bearer-token ontbreekt of is ongeldig409 Conflict — overeenkomend werk is actief, maar de gepubliceerde broninhoud is gewijzigd500 Internal Server Error — brondocumenten konden niet worden voorbereid of een databasebewerking is misluktHaal de meest recente voortgang voor een vertaaljob op.
Eindpunt: GET /translation-jobs/{job_id}
Authenticatie: Bearer JWT (WorkOS)
De respons gebruikt hetzelfde jobobject dat door POST /translation wordt geretourneerd, met bijgewerkte status en voortgangsaantallen.
{
"job_id": "<uuid>",
"website_id": "<uuid>",
"schema_name": null,
"schema_names": ["post", "hero"],
"languages": ["fr", "es"],
"status": "running",
"documents_processed": 12,
"translations_scheduled": 24,
"translations_skipped": 0,
"translations_completed": 16,
"translations_failed": 1,
"reused": false,
"created_at": "2026-07-15T18:00:00Z",
"updated_at": "2026-07-15T18:01:30Z"
}
curl '{TRANSLATION_API_URL}/translation-jobs/<job-id>' \
-H 'Authorization: Bearer <workos-jwt>'
401 Unauthorized — bearer-token ontbreekt of is ongeldig404 Not Found — de job bestaat niet of wordt niet langer bewaardVertaaljobs worden momenteel in het geheugen bewaard. Jobstatus gaat verloren wanneer de vertaaldienst opnieuw wordt gestart, en implementaties met meerdere instanties vereisen sticky routing.