NexaraNexara

Синхронная и асинхронная обработка

Узнайте, когда нужно использовать синхронный режим, а когда — асинхронный.

Nexara API предлагает два режима обработки аудио. Они принимают одни и те же параметры, но по-разному возвращают результат: синхронный режим возвращает готовую транскрипцию прямо в ответе, держа соединение открытым все время обработки, а асинхронный — сразу возвращает идентификатор задачи, результат которой вы забираете позже.

Синхронная обработка

POST /v1/audio/transcriptions — соединение остаётся открытым, пока файл обрабатывается, и результат приходит в теле ответа. Подходит для коротких аудио.

Асинхронная обработка

POST /v1/audio/transcriptions/async — запрос сразу возвращает job_id, а обработка идёт в фоне. Готовый результат забирается опросом по job_id. Подходит для длинных файлов и пакетной обработки.

Синхронная обработка

Отправьте аудио на POST /v1/audio/transcriptions. Соединение удерживается до конца обработки, после чего в ответе возвращается готовый текст.

curl https://api.nexara.ru/v1/audio/transcriptions \
  -H "Authorization: Bearer nx-XXXXXXXXXXXXXXXXXXXXXXXX" \
  -F "file=@audio.mp3" \
  -F "model=whisper-1"

Ответ содержит результат сразу:

{
  "text": "Привет! Это пример транскрибации."
}

Синхронный режим — это самый простой способ использовать API: один запрос, один ответ. Он оптимален для коротких записей, где время обработки невелико.

Для длинных файлов синхронный запрос держит HTTP-соединение открытым всё время обработки, что чувствительно к сетевым таймаутам на стороне клиента и прокси. Для продолжительного аудио рекомендуется использовать асинхронный режим.

Асинхронная обработка

Асинхронный режим разбивает работу на два шага: постановку задачи и получение результата.

Шаг 1. Поставить задачу

Отправьте аудио на POST /v1/audio/transcriptions/async. Запрос принимает те же параметры, что и синхронный, но возвращается сразу, не дожидаясь обработки.

curl https://api.nexara.ru/v1/audio/transcriptions/async \
  -H "Authorization: Bearer nx-XXXXXXXXXXXXXXXXXXXXXXXX" \
  -F "file=@long-audio.mp3" \
  -F "model=whisper-1"

В ответ приходит идентификатор задачи и её статус:

{
  "job_id": "5f1c2e3a-...",
  "status": "in_progress",
  "created_at": "2026-07-13T10:00:00+00:00"
}

Сохраните job_id — по нему вы будете забирать результат.

Шаг 2. Опросить статус

Отправляйте запросы на GET /v1/audio/transcriptions/async/{job_id}, пока задача не завершится.

curl https://api.nexara.ru/v1/audio/transcriptions/async/5f1c2e3a-... \
  -H "Authorization: Bearer nx-XXXXXXXXXXXXXXXXXXXXXXXX"

Так выглядит ответ API пока задача выполняется:

{
  "job_id": "5f1c2e3a-...",
  "status": "in_progress",
  "created_at": "2026-07-13T10:00:00+00:00",
  "completed_at": null,
  "result": null,
  "error": null
}

А так — когда ответ получен:

{
  "job_id": "5f1c2e3a-...",
  "status": "complete",
  "created_at": "2026-07-13T10:00:00+00:00",
  "completed_at": "2026-07-13T10:01:12+00:00",
  "result": {
    "text": "Привет! Это пример транскрибации."
  },
  "error": null
}

После завершения в поле result появляется готовый текст расшифровки. Поле result может содержать любые форматы ответа.

После генерации ответа, результат хранится на сервере в течение 12 часов, а потом удаляется безвозвратно.

Статусы задачи

  • in_progress: задача поставлена в очередь или обрабатывается. Поле result пустое;
  • complete: обработка завершена успешно. Результат находится в поле result, а время завершения — в completed_at.
  • error: обработка завершилась ошибкой. Описание причины находится в поле error.

Что выбрать

Выбирайте синхронный режим

для коротких записей, интерактивных сценариев и быстрой интеграции, когда важно получить результат одним запросом.

Выбирайте асинхронный режим

для длинных файлов и пакетной обработки, чтобы не держать открытым HTTP-соединение и не упираться в клиентские таймауты.

Оба режима ограничены частотой 10 запросов в секунду. Для асинхронного режима действует дополнительный лимит — не более 200 одновременно выполняющихся задач на один API-ключ. Подробнее читайте на странице лимитов.

On this page