profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialБлогPhilosophy
DocsTutorialБлогPhilosophy

Hybrid

Collection of Pages with ComponentsTypes of ComponentsSetup server sent events (SSE) content refetchInstall Profound CMS as a proxyНаписание скриптов в конструкторе шаблоновProject ScaffoldingМедиатека

Без интерфейса

Быстрый стартSplit Screen JSON Component Builder with LLMComponent Zod Pull

REST API

Обзор REST APIgetConnect your websitegetПолучить маршрутыgetGET /routegetПолучение блоковgetGET /blocks/with-cel-cachegetGET /blocks/generatedgetПолучить компонентыgetGET /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

Запустите массовый фоновый перевод опубликованных документов схемы на целевые языки.

Поставьте в очередь фоновый перевод всех опубликованных документов из одной или нескольких компонентных схем на набор целевых языков. Результаты вставляются или обновляются в таблице translations по мере завершения каждого перевода.

Конечная точка: POST /translation Авторизация: Bearer JWT (WorkOS)

Тело запроса

{
  "websiteId": "<uuid>",
  "schemaNames": ["post", "hero"],
  "languages": ["fr", "es", "de"]
}
ПолеТипОбязательноеПримечания
websiteIduuidдаВеб-сайт, содержащий исходные документы.
schemaNamesstring[]да*Компонентные схемы для перевода. Дубликаты названий удаляются.
schemaNamestringда*Устаревшая альтернатива для отправки одной схемы.
languagesstring[]даПоддерживаемые коды целевых языков. Дубликаты кодов удаляются.

* Предоставьте schemaNames или schemaName.

Рассматриваются только опубликованные документы с непустым опубликованным содержимым.

Ответ

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

Возвращает:

  • 202 Accepted, когда переводы поставлены в очередь
  • 200 OK, когда каждый перевод уже актуален
  • существующее активное задание, когда идентичный запрос уже выполняется
ПолеОписание
job_idИдентификатор, используемый для получения прогресса задания.
statusТекущий статус задания.
documents_processedКоличество найденных подходящих исходных документов.
translations_scheduledКоличество поставленных в очередь пар документ-язык.
translations_skippedКоличество пропущенных пар, потому что их хеш исходника актуален.
translations_completedКоличество успешно переведённых.
translations_failedКоличество, завершившихся с ошибкой.
reusedУказывает, относится ли ответ к существующему активному заданию.

Возможные статусы задания:

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

Пропуск актуальных переводов

Каждая пара документ-язык хранит хеш SHA-256 опубликованного содержимого исходного документа.

Перевод пропускается, когда сохранённый хеш исходника совпадает с текущим опубликованным содержимым. Это позволяет вызывать конечную точку повторно без повторного перевода неизменённого контента.

Если опубликованное содержимое изменяется, пока выполняется эквивалентное задание, сервис отклоняет новый запрос. Отправьте его повторно после завершения активного задания.

Поведение обработки

Перевод выполняется асинхронно после первичного ответа.

  • Работа обрабатывается с ограниченной параллельностью.
  • Временные сбои повторяются с увеличением интервала.
  • Успешные результаты сохраняются по мере завершения.
  • Отдельные сбои инференса или сохранения фиксируются в задании.
  • Частично успешное задание завершается со статусом 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 — схемы или языки отсутствуют, язык не поддерживается или пакет превышает настроенный лимит
  • 401 Unauthorized — токен-носитель отсутствует или недействителен
  • 409 Conflict — соответствующая работа активна, но опубликованный исходный контент изменился
  • 500 Internal Server Error — исходные документы не удалось подготовить или произошёл сбой операции базы данных

Получить задание на перевод

Получите актуальный прогресс задания на перевод.

Конечная точка: GET /translation-jobs/{job_id} Авторизация: Bearer JWT (WorkOS)

Ответ

Ответ использует тот же объект задания, который возвращает POST /translation, с обновлённым статусом и счётчиками прогресса.

{
  "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 — токен-носитель отсутствует или недействителен
  • 404 Not Found — задание не существует или больше не хранится

В настоящее время задания на перевод хранятся в памяти. Статус задания теряется при перезапуске сервиса перевода, а развертывания с несколькими экземплярами требуют привязки маршрутизации.

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