Start massebakgrunnsoversettelse av et skjemas publiserte dokumenter til målspråk.
Sett bakgrunnsoversettelse i kø for alle publiserte dokumenter fra ett eller flere komponentskjemaer til et sett med målspråk. Resultatene settes inn eller oppdateres i translations-tabellen etter hvert som oversettelsene fullføres.
Endepunkt: POST /translation
Autentisering: Bearer JWT (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Felt | Type | Påkrevd | Merknader |
|---|---|---|---|
websiteId | uuid | ja | Nettstedet som inneholder kildedokumentene. |
schemaNames | string[] | ja* | Komponentskjemaer som skal oversettes. Dupliserte navn fjernes. |
schemaName | string | ja* | Eldre alternativ for å sende inn ett enkelt skjema. |
languages | string[] | ja | Støttede språkkoder for målspråk. Dupliserte koder fjernes. |
* Oppgi enten schemaNames eller schemaName.
Bare publiserte dokumenter med ikke-null publisert innhold tas med.
{
"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"
}
Returnerer:
202 Accepted når oversettelser er lagt i kø200 OK når alle oversettelser allerede er oppdaterte| Felt | Beskrivelse |
|---|---|
job_id | Identifikator som brukes til å hente fremdriften for jobben. |
status | Gjeldende jobbstatus. |
documents_processed | Antall kvalifiserte kildedokumenter som ble funnet. |
translations_scheduled | Antall dokument–språk-par som er lagt i kø. |
translations_skipped | Antall som ble hoppet over fordi kildehashene er oppdaterte. |
translations_completed | Antall som er oversatt. |
translations_failed | Antall som mislyktes. |
reused | Om svaret viser til en eksisterende aktiv jobb. |
Mulige jobbstatuser er:
preparingqueuedrunningcompletedcompleted_with_errorsfailedHvert dokument–språk-par lagrer en SHA-256-hash av kildedokumentets publiserte innhold.
En oversettelse hoppes over når den lagrede kildehashen samsvarer med det gjeldende publiserte innholdet. Dette gjør det mulig å kalle endepunktet gjentatte ganger uten å oversette uendret innhold på nytt.
Hvis det publiserte innholdet endres mens en tilsvarende jobb er aktiv, avviser tjenesten den nye forespørselen. Send den inn på nytt etter at den aktive jobben er ferdig.
Oversettelsen kjører asynkront etter det første svaret.
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 — skjemaer eller språk mangler, et språk støttes ikke, eller gruppen overskrider den konfigurerte grensen401 Unauthorized — bearer-token mangler eller er ugyldig409 Conflict — samsvarende arbeid er aktivt, men det publiserte kildeinnholdet er endret500 Internal Server Error — kildedokumentene kunne ikke klargjøres, eller en databaseoperasjon mislyktesHent den nyeste fremdriften for en oversettelsesjobb.
Endepunkt: GET /translation-jobs/{job_id}
Autentisering: Bearer JWT (WorkOS)
Svaret bruker det samme jobbobjektet som returneres av POST /translation, med oppdatert status og fremdriftstall.
{
"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 mangler eller er ugyldig404 Not Found — jobben finnes ikke eller lagres ikke lengerOversettelsesjobber lagres for øyeblikket i minnet. Jobbstatus går tapt når oversettelsestjenesten starter på nytt, og distribusjoner med flere instanser krever klebrig ruting.