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 proxyScripts dans le générateur de modÚlesProject ScaffoldingBibliothÚque multimédia

Sans interface

Démarrage rapideSplit Screen JSON Component Builder with LLMComponent Zod Pull

API REST

REST API OverviewgetConnect your websitegetGET /routesgetGET /routegetGET /blocksgetGET /blocks/with-cel-cachegetGET /blocks/generatedgetGET /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

DĂ©marrer la traduction groupĂ©e en arriĂšre-plan des documents publiĂ©s d’un schĂ©ma vers les langues cibles.

Mettre en file d’attente la traduction en arriĂšre-plan de tous les documents publiĂ©s provenant d’un ou plusieurs schĂ©mas de composants vers un ensemble de langues cibles. Les rĂ©sultats sont insĂ©rĂ©s ou mis Ă  jour dans la table translations Ă  mesure que chaque traduction est terminĂ©e.

Endpoint : POST /translation Authentification : JWT Bearer (WorkOS)

Corps de la requĂȘte

{
  "websiteId": "<uuid>",
  "schemaNames": ["post", "hero"],
  "languages": ["fr", "es", "de"]
}
ChampTypeObligatoireNotes
websiteIduuidouiSite web contenant les documents sources.
schemaNamesstring[]oui*Schémas de composants à traduire. Les noms en double sont supprimés.
schemaNamestringoui*Alternative héritée pour soumettre un seul schéma.
languagesstring[]ouiCodes des langues cibles prises en charge. Les codes en double sont supprimés.

* Fournir soit schemaNames, soit schemaName.

Seuls les documents publiĂ©s dont le contenu publiĂ© n’est pas nul sont pris en compte.

Réponse

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

Renvoie :

  • 202 Accepted lorsque les traductions sont mises en file d’attente
  • 200 OK lorsque toutes les traductions sont dĂ©jĂ  Ă  jour
  • le job actif existant lorsqu’une requĂȘte identique est dĂ©jĂ  en cours
ChampDescription
job_idIdentifiant utilisé pour récupérer la progression du job.
statusÉtat actuel du job.
documents_processedNombre de documents sources admissibles trouvés.
translations_scheduledNombre de paires document-langue mises en file d’attente.
translations_skippedNombre d’élĂ©ments ignorĂ©s, car leurs hachages sources sont Ă  jour.
translations_completedNombre de traductions réussies.
translations_failedNombre d’échecs.
reusedIndique si la réponse fait référence à un job actif existant.

Les Ă©tats possibles d’un job sont :

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

Ignorer les traductions Ă  jour

Chaque paire document-langue stocke un hachage SHA-256 du contenu publié du document source.

Une traduction est ignorĂ©e lorsque son hachage source stockĂ© correspond au contenu publiĂ© actuel. Cela permet d’appeler l’endpoint Ă  plusieurs reprises sans retraduire le contenu inchangĂ©.

Si le contenu publiĂ© change alors qu’un job Ă©quivalent est actif, le service rejette la nouvelle requĂȘte. Soumettez-la Ă  nouveau une fois le job actif terminĂ©.

Comportement du traitement

La traduction s’exĂ©cute de maniĂšre asynchrone aprĂšs la rĂ©ponse initiale.

  • Le travail est traitĂ© avec une concurrence limitĂ©e.
  • Les Ă©checs temporaires font l’objet de nouvelles tentatives avec un dĂ©lai progressif.
  • Les rĂ©sultats rĂ©ussis sont enregistrĂ©s au fur et Ă  mesure de leur achĂšvement.
  • Les Ă©checs individuels d’infĂ©rence ou de persistance sont enregistrĂ©s dans le job.
  • Un job partiellement rĂ©ussi se termine avec completed_with_errors.

Exemple

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

Erreurs

  • 400 Bad Request — des schĂ©mas ou des langues sont manquants, une langue n’est pas prise en charge ou le lot dĂ©passe la limite configurĂ©e
  • 401 Unauthorized — le jeton bearer est manquant ou invalide
  • 409 Conflict — un traitement correspondant est actif, mais le contenu source publiĂ© a changĂ©
  • 500 Internal Server Error — les documents sources n’ont pas pu ĂȘtre prĂ©parĂ©s ou une opĂ©ration de base de donnĂ©es a Ă©chouĂ©

Obtenir un job de traduction

RĂ©cupĂ©rer la progression la plus rĂ©cente d’un job de traduction.

Endpoint : GET /translation-jobs/{job_id} Authentification : JWT Bearer (WorkOS)

Réponse

La rĂ©ponse utilise le mĂȘme objet de job que celui renvoyĂ© par POST /translation, avec un Ă©tat et des compteurs de progression mis Ă  jour.

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

Exemple

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

Erreurs

  • 401 Unauthorized — le jeton bearer est manquant ou invalide
  • 404 Not Found — le job n’existe pas ou n’est plus conservĂ©

Les jobs de traduction sont actuellement conservĂ©s en mĂ©moire. L’état du job est perdu lorsque le service de traduction redĂ©marre, et les dĂ©ploiements Ă  plusieurs instances nĂ©cessitent un routage persistant.

Continue Reading
Previousâ€čPATCH /dataset/{schema_name}NextPATCH /translationsâ€ș