profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Hybrid

Collection of Pages with ComponentsTypes of ComponentsSetup server sent events (SSE) content refetchInstall Profound CMS as a proxyCEL Scripting in Template BuilderProject ScaffoldingMedia Library

Headless

SnelstartSplit Screen JSON Component Builder with LLMComponent Zod Pull

REST API

REST API OverviewgetConnect your websitegetGET /routesgetGET /routegetGET /blocksgetGET /blocks/with-cel-cachegetHaal gegenereerde blokken opgetGET /componentsgetGET /components/{name}getGET /dataset/{schema_name}getGET /content-changes (SSE)patchPATCH /dataset/{schema_name}postPOST /translationpatchPATCH /translationsgetGET /usagepostPOST /csvpatchPATCH /csv
All Systems Operational
Powered Byprofound-logo
Theme

POST /translation

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)

Aanvraagbody

{
  "websiteId": "<uuid>",
  "schemaNames": ["post", "hero"],
  "languages": ["fr", "es", "de"]
}
VeldTypeVereistOpmerkingen
websiteIduuidjaWebsite met de brondocumenten.
schemaNamesstring[]ja*Componentenschema's om te vertalen. Dubbelen worden verwijderd.
schemaNamestringja*Legacy-alternatief om één schema te versturen.
languagesstring[]jaOndersteunde doeltaalcodes. Dubbele codes worden verwijderd.

* Geef ofwel schemaNames of schemaName op.

Alleen gepubliceerde documenten met niet-lege gepubliceerde inhoud worden meegenomen.

Respons

{
  "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 geplaatst
  • 200 OK wanneer elke vertaling al actueel is
  • de bestaande actieve job wanneer een identiek verzoek al wordt uitgevoerd
VeldBeschrijving
job_idIdentificatie die wordt gebruikt om de voortgang van de job op te halen.
statusHuidige jobstatus.
documents_processedAantal gevonden in aanmerking komende brondocumenten.
translations_scheduledAantal ingeplande document-taalparen.
translations_skippedAantal overgeslagen omdat hun bron-hash actueel is.
translations_completedAantal met succes vertaald.
translations_failedAantal dat is mislukt.
reusedOf de respons verwijst naar een bestaande actieve job.

Mogelijke jobstatussen zijn:

  • preparing
  • queued
  • running
  • completed
  • completed_with_errors
  • failed

Huidige vertalingen overslaan

Elk 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.

Verwerkingsgedrag

De vertaling wordt asynchroon uitgevoerd na de initiële respons.

  • Werk wordt verwerkt met begrensde gelijktijdigheid.
  • Tijdelijke fouten worden opnieuw geprobeerd met back-off.
  • Geslaagde resultaten worden opgeslagen zodra ze gereed zijn.
  • Individuele inference- of opslagfouten worden vastgelegd bij de job.
  • Een gedeeltelijk geslaagde job eindigt met completed_with_errors.

Voorbeeld

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"]
  }'

Fouten

  • 400 Bad Request — schema's of talen ontbreken, een taal wordt niet ondersteund, of de batch overschrijdt de geconfigureerde limiet
  • 401 Unauthorized — bearer-token ontbreekt of is ongeldig
  • 409 Conflict — overeenkomend werk is actief, maar de gepubliceerde broninhoud is gewijzigd
  • 500 Internal Server Error — brondocumenten konden niet worden voorbereid of een databasebewerking is mislukt

Vertaaljob ophalen

Haal de meest recente voortgang voor een vertaaljob op.

Eindpunt: GET /translation-jobs/{job_id} Authenticatie: Bearer JWT (WorkOS)

Respons

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"
}

Voorbeeld

curl '{TRANSLATION_API_URL}/translation-jobs/<job-id>' \
  -H 'Authorization: Bearer <workos-jwt>'

Fouten

  • 401 Unauthorized — bearer-token ontbreekt of is ongeldig
  • 404 Not Found — de job bestaat niet of wordt niet langer bewaard

Vertaaljobs worden momenteel in het geheugen bewaard. Jobstatus gaat verloren wanneer de vertaaldienst opnieuw wordt gestart, en implementaties met meerdere instanties vereisen sticky routing.

Continue Reading
Previous‹PATCH /dataset/{schema_name}NextPATCH /translations›