API транскрибации аудио и видео в текст

Отправьте файл или ссылку на YouTube, Rutube, VK Видео одним POST-запросом и получите текст с таймкодами, разметкой спикеров и AI-саммари. О готовности сообщит вебхук.

API работает на любом платном тарифе, от Базового. Качество распознавания можно бесплатно попробовать в личном кабинете.

POST /v1/transcriptions
# API_BASE — адрес API из документации в личном кабинетеcurl -X POST "$API_BASE/v1/transcriptions" \  -H "Authorization: Bearer $AUDIO2TEXT_API_KEY" \  -H "Idempotency-Key: meeting-2026-09-29" \  -F "file=@meeting.mp3" \  -F "language=auto" # 202 Accepted{  "id": "123",  "status": "queued",  "duration_seconds": 1840,  "request_id": "req_..."}

Нам доверяют команды из крупнейших компаний

РБК
Альфа-Банк
Avito
Сбер
Skyeng
Ozon
МТС
ВШЭ
Ведомости
Wildberries
РБК
Альфа-Банк
Avito
Сбер
Skyeng
Ozon
МТС
ВШЭ
Ведомости
Wildberries
РБК
Альфа-Банк
Avito
Сбер
Skyeng
Ozon
МТС
ВШЭ
Ведомости
Wildberries

Быстрый старт за три запроса

Ключ, задача и результат — без SDK и сложной настройки

Шаг 1Создайте API-ключ

Личный кабинет → Настройки → API. Выберите scopes — ключ показывается один раз.

Authorization: Bearer tr_live_…
Шаг 2Отправьте файл или ссылку

POST /v1/transcriptions принимает file или source_url и сразу отвечает 202 с id задачи.

POST /v1/transcriptions
→ 202 {"id":"123","status":"queued"}
Шаг 3Заберите результат

Дождитесь вебхука transcription.completed или опрашивайте статус, затем запросите результат.

GET /v1/transcriptions/123/result
→ 200 text, segments, …

Что вы получаете в ответе

Не просто распознанный текст, а готовая структура: реплики, спикеры, таймкоды, саммари и ваш ID

GET /v1/transcriptions/:id/result
{  "data": {    "id": "123",    "status": "done",    "language": "ru",    "duration_seconds": 1840,    "text": "Добрый день! Давайте сверим план на квартал. ...",    "segments": [      {        "start": 0.0,        "end": 4.2,        "speaker": "Speaker 1",        "text": "Добрый день! Давайте сверим план на квартал."      },      {        "start": 4.6,        "end": 9.8,        "speaker": "Speaker 2",        "text": "Да, по продажам идём с опережением на 12%."      }    ],    "participants": "...",    "summary": "Сверили квартальный план: продажи опережают план на 12%, ...",    "tags": "...",    "metadata": { "external_id": "crm-call-123" }  },  "request_id": "req_..."}
Так результат выглядит в вашей системе
00:00Speaker 1

Добрый день! Давайте сверим план на квартал.

00:04Speaker 2

Да, по продажам идём с опережением на 12%.

00:10Speaker 1

Отлично. Тогда обсудим бюджет на рекламу.

AI-саммари в ответе

Сверили квартальный план: продажи опережают план на 12%. Следующий шаг — обсудить рекламный бюджет.

textsegments[].start / endsegments[].speakersummarytagsparticipantsmetadata.external_id

Возможности API Audio2Text

Готовый результат для интеграции, а не только текст распознавания

Файл или ссылка

Аудио или видео в поле file либо source_url на YouTube, Rutube, VK Видео — скачивать ролик самим не нужно.

99 языков

language=auto определяет язык сам, либо передайте код языка явно.

Спикеры и таймкоды

Каждый сегмент содержит start, end и speaker. Подсказка num_speakers — если число участников известно.

AI-саммари в ответе

summary, теги и участники приходят в том же /result — без отдельного запроса в LLM.

Вебхуки с подписью

5 событий, подпись HMAC-SHA256 в Transcripta-Signature, повторная доставка и replay по event id.

Idempotency-Key

Повтор запроса с тем же ключом после сетевой ошибки не создаст вторую задачу.

Отмена с возвратом минут

POST /v1/transcriptions/:id/cancel в статусах queued, downloading, processing, claimed.

metadata.external_id

Ваш ID сделки, звонка или файла возвращается в статусе, списке и результате задачи.

Ключи, scopes и лимиты

4 scopes на ключ, 120 запросов в минуту, 20 созданий задач в минуту, баланс в GET /v1/usage.

Справочник API

Сокращённая версия документации: методы, вебхуки, ошибки и лимиты. Полная документация с примерами — в личном кабинете.

Метод
Scope
Что делает
POST /v1/transcriptions
transcriptions:write
Создать задачу: file (multipart/form-data) или source_url (JSON). Ответ 202 с id.
GET /v1/transcriptions?limit=1..100
transcriptions:read
Последние задачи, созданные через API-ключи аккаунта.
GET /v1/transcriptions/:id
transcriptions:read
Статус задачи без текста результата.
GET /v1/transcriptions/:id/result
transcriptions:read
Текст, сегменты, участники, summary, теги, metadata. 202 — ещё не готово, 422 — ошибка.
POST /v1/transcriptions/:id/cancel
transcriptions:write
Отмена в статусах queued, downloading, processing, claimed; минуты возвращаются.
GET /v1/usage?days=N
usage:read
Остаток минут тарифа и дополнительных, использование API по дням.
POST · GET /v1/webhook-endpoints
webhooks:write
Создать HTTPS-endpoint (секрет whsec_ показывается один раз) и список endpoints.
PATCH · DELETE /v1/webhook-endpoints/:id
webhooks:write
Изменить URL, события, активность или удалить endpoint.
GET /v1/webhook-events
webhooks:write
История событий и доставок.
POST /v1/webhook-events/:eventId/replay
webhooks:write
Повторить доставку события с тем же event id.

Вебхуки

Endpoint — только HTTPS. Секрет whsec_ выдаётся один раз при создании. Неудачные доставки повторяются с тем же event id, событие можно отправить повторно через replay.

transcription.queuedtranscription.processingtranscription.completedtranscription.failedtranscription.cancelled
POST на ваш HTTPS-адрес
Transcripta-Event-Id: evt_...Transcripta-Event-Type: transcription.completedTranscripta-Signature: t=1790640000,v1=<hex HMAC-SHA256> {  "id": "evt_...",  "type": "transcription.completed",  "created_at": "2026-09-29T10:00:00.000Z",  "data": {    "transcription_id": 123,    "status": "done",    "filename": "meeting.mp3",    "duration_seconds": 1840,    "error_reason": null  }}

Подпись: v1 = HMAC-SHA256(whsec_…, «t.сырое тело запроса»). Заголовки Transcripta-* одинаковые на всех доменах сервиса.

Коды ошибок

Ошибка всегда приходит в одном формате с request_id — его удобно передать в поддержку.

Формат ошибки
{  "error": {    "code": "insufficient_minutes",    "message": "...",    "request_id": "req_..."  }}
  • 400missing_input, invalid_source_url, unsupported_source_domain, unsupported_media, invalid_idempotency_key
  • 401invalid_api_key
  • 402subscription_required, insufficient_minutes
  • 403insufficient_scope, api_not_enabled_for_plan, account_not_allowed
  • 404transcription_not_found, transcription_not_found_or_not_cancelable, webhook_endpoint_not_found, webhook_event_not_found
  • 409idempotency_conflict, request_in_progress
  • 413file_too_large, file_too_large_for_direct_upload
  • 422duration_unknown, transcription_failed
  • 429rate_limit_exceeded
  • 500internal_error
Лимит
Значение
Комментарий
Все запросы к /v1/*
120 в минуту на ключ
Общий лимит: транскрипции, usage и вебхуки.
POST /v1/transcriptions
20 в минуту на ключ
Отдельный лимит на создание задач.
Запросы с неверным ключом
30 в минуту на IP
Защита от перебора, считаются только ответы 401.
Прямая загрузка file
до 100 МБ
Текущий лимит multipart-загрузки.
Idempotency-Key
до 160 символов
Повтор с другим телом — 409 idempotency_conflict.

На ответах /v1/* с ключом приходят заголовки RateLimit-Policy, RateLimit-Limit, RateLimit-Remaining и RateLimit-Reset; при превышении — 429 и Retry-After.

Расшифровывайте часы записей за минуты

API входит во все платные тарифы, минуты общие с кабинетом · от 0,50 ₽ за минуту на тарифе «Экспертный» при помесячной оплате

5,0 рейтинг пользователей•50 000+ пользователей•500 000+ часов расшифровки
−50%

Базовый

для регулярных задач

295 ₽/мес
590 ₽ /мес
Оплата за год — 3 540 ₽
500 минут в месяц

сверх лимита — 2 ₽/мин

Популярный
−50%

Стандартный

для большинства задач

495 ₽/мес
990 ₽ /мес
Оплата за год — 5 940 ₽
1 000 минут в месяц

сверх лимита — 1 ₽/мин

−50%

Экспертный

для больших объёмов

1 245 ₽/мес
2 490 ₽ /мес
Оплата за год — 14 940 ₽
5 000 минут в месяц

сверх лимита — 1 ₽/мин

Просто попробовать?15 минут в месяц бесплатно, навсегда
Начать бесплатно →
В каждом тарифе:
Telegram-ботЗапись встречИИ-отчёты и чатФайлы до 5 ГБСпикеры и таймкодыAPI
Отмена в один кликВозврат 7 дней

Только распознавание или API Audio2Text

Что остаётся сделать вашей команде в каждом варианте

Параметр
Только распознавание речи
API Audio2Text
Результат
Текст и таймкоды
Текст, сегменты с таймкодами и спикерами, саммари, теги
Разметка спикеров
Часто отдельный сервис или ручная разметка
speaker в каждом сегменте, подсказка num_speakers
Саммари
Нужно отдельно отправлять текст в LLM
summary в том же ответе /result
Видео по ссылке
Сначала скачать ролик и извлечь звук
source_url на YouTube, Rutube, VK Видео
Готовность результата
Держать соединение или часто опрашивать
Вебхук transcription.completed с подписью
Связь с вашими данными
Своя таблица соответствий
metadata.external_id возвращается в ответах
Оплата
Отдельный счёт за API
Минуты общие с кабинетом, оплата в рублях, счёт для юрлиц

Что умеет API транскрибации Audio2Text

API транскрибации Audio2Text — это REST-интерфейс к тому же распознаванию речи, что работает в личном кабинете. Задача ставится запросом POST /v1/transcriptions: в поле file передаётся аудио- или видеофайл, а в source_url — ссылка на YouTube, Rutube или VK Видео. Ответ приходит сразу — код 202 и id задачи, а готовый результат вы забираете запросом GET /v1/transcriptions/:id/result: полный текст, сегменты с таймкодами start и end, метка спикера в каждом сегменте, AI-саммари, теги, участники и ваши metadata. Язык определяется автоматически, поддерживается 99 языков.

Как подключить API распознавания речи

Ключ создаётся в личном кабинете в разделе Настройки → API. У ключа есть scopes: transcriptions:write, transcriptions:read, usage:read и webhooks:write — интеграции можно выдать ровно те права, которые ей нужны. Ключ передаётся в заголовке Authorization: Bearer и показывается один раз, поэтому храните его на сервере, а не в браузере. Чтобы не опрашивать статус, зарегистрируйте HTTPS-вебхук: сервис пришлёт событие transcription.completed с подписью Transcripta-Signature. Повтор запроса с тем же Idempotency-Key не создаст вторую задачу, а отменённая задача вернёт минуты на баланс.

Сколько стоит API транскрибации

Отдельной платы за API нет: он входит во все платные тарифы, начиная с Базового, и расходует те же минуты, что и работа в кабинете. Сначала списываются минуты тарифа, затем дополнительные. На тарифе Экспертный минута стоит около 0,50 ₽ при помесячной оплате. Остаток минут и статистику запросов возвращает GET /v1/usage. Бесплатных минут для API нет — качество распознавания можно проверить в личном кабинете, а затем подключить тариф.

Частые вопросы

Коротко о подключении, лимитах и оплате API

Подключите API транскрибации

Создайте ключ в личном кабинете и отправьте первый запрос — пример выше можно скопировать как есть.

На любом платном тарифе · минуты общие с кабинетом · от 0,50 ₽ за минуту