Публичное API
Что такое Speech-to-Text API
Speech-to-Text API (распознавание речи) позволяет программно превращать аудио и видео в текст без ручной загрузки в браузере. Polyglot Voice API подходит для ботов, CRM, колл-центров, образовательных платформ и медиа-сервисов: вы отправляете файл или ссылку, получаете статус задачи, полный транскрипт, перевод и файлы экспорта (SRT, TXT, JSON). Обработка выполняется в облаке Polyglot Voice — вам не нужно разворачивать и скачивать модели распознавания на своей стороне.
Возможности API
- Распознавание речи в текст (98+ языков)
- Перевод транскрипта и видео-контента
- Автоматические субтитры и экспорт SRT/TXT
- Расшифровка интервью, лекций и звонков
- Webhook при завершении и polling статуса
Когда использовать веб-интерфейс, когда — API
Веб-интерфейс
Разовая обработка, ручная проверка, перевод, озвучка и создание клипов.
API
Автоматизация, интеграция в продукты, боты, массовая обработка и webhook.
Ориентир по цене
Транскрибация начинается от 49 ₽ за минуту/единицу fast. TTS-пакет: 499 ₽ за 500 000 символов.
Посмотреть тарифыБыстрый путь подключения
- Шаг 1Создать API-ключ
- Шаг 2POST upload/from-url
- Шаг 3Получить webhook или poll status
- Шаг 4GET result/download
Базовый URL
Используйте базовый URL для всех запросов API.
https://polyglotvoice.ru/api/v1
Авторизация
Эндпоинты ниже принимают заголовок Authorization: Bearer с JWT сессии сайта или с API-ключом sk_….
Authorization: Bearer sk_...
Ключ sk_… выдаётся в профиле, действует 30 дней и подходит только для путей transcriptions/*; остальной сайт по JWT. Один и тот же запрос может пройти как с ключом, так и с токеном сессии.
Как получить API ключ
- Войдите в личный кабинет.
- Откройте профиль → «API ключи».
- Создайте ключ и сохраните его (показывается один раз).
- Используйте ключ в запросах.
Эндпоинты
Основные эндпоинты для работы с транскрибациями.
POST /api/v1/transcriptions/uploadЗагрузка файла для транскрибации.
POST /api/v1/transcriptions/from-urlТранскрибация по ссылке на медиа.
POST /api/v1/transcriptions/validate-urlПроверка ссылки на медиа перед запуском.
GET /api/v1/transcriptionsСписок задач транскрибации.
GET /api/v1/transcriptions/{task_id}Информация о задаче.
GET /api/v1/transcriptions/{task_id}/resultРезультат транскрибации.
GET /api/v1/transcriptions/{task_id}/downloads/{kind}Скачать файл результата (srt/txt/json и т.д.).
GET /api/v1/transcriptions/{task_id}/sourceСтрим исходного медиа (Range).
POST /api/v1/transcriptions/convert-audioКонвертация аудио и скачивание результата.
Примеры запросов
Ниже базовые примеры для начала.
curl
curl -X POST "https://polyglotvoice.ru/api/v1/transcriptions/upload" \ -H "Authorization: Bearer sk_..." \ -F "file=@audio.mp3"
Python
import requests
url = "https://polyglotvoice.ru/api/v1/transcriptions/upload"
headers = {"Authorization": "Bearer sk_..."}
files = {"file": open("audio.mp3", "rb")}
response = requests.post(url, headers=headers, files=files)
print(response.json())JavaScript
const formData = new FormData();
formData.append("file", file);
fetch("https://polyglotvoice.ru/api/v1/transcriptions/upload", {
method: "POST",
headers: { Authorization: "Bearer sk_..." },
body: formData
})
.then((res) => res.json())
.then(console.log);Форматы файлов
Поддерживаются популярные аудио и видео форматы.
Например: mp3, wav, m4a, ogg, mp4, webm.
Статусы задач
Задача транскрибации проходит через следующие статусы:
- queued — задача принята и ожидает обработки
- processing — файл обрабатывается
- completed — результат готов, можно запросить текст и файлы
- failed — ошибка обработки (см. failure_reason)
- cancelled — задача отменена пользователем
Ответы и ошибки
Пример ответа на создание задачи и ошибки авторизации.
Создание задачи (HTTP 200)
{ "task_id": "9b9c1b9a-....", "status": "queued" }Задача после обработки (GET /transcriptions/{task_id})
{
"task_id": "9b9c1b9a-....",
"status": "completed",
"model": "fast",
"input_language": "en",
"output_language": "ru",
"audio_duration_seconds": 125.4,
"confidence": 0.94,
"transcript_preview": "Hello, this is a sample transcript..."
}Полный результат (GET /transcriptions/{task_id}/result)
{
"task_id": "9b9c1b9a-....",
"transcript": "Hello, this is a sample transcript...",
"translation": "Привет, это пример транскрипта...",
"segments": [{ "start": 0.0, "end": 2.4, "text": "Hello..." }],
"confidence": 0.94,
"updated_at": "2026-05-24T12:00:00Z"
}Файлы результата: GET /transcriptions/{task_id}/downloads/{kind} — kind: srt, txt, json и др.
401
{ "detail": "Invalid token." }Webhook
Настройте URL вебхука в профиле для API-ключа sk_. После финального статуса задачи Polyglot Voice отправит HTTP POST на ваш URL. Заголовки: Content-Type: application/json, X-Polyglot-Timestamp, X-Polyglot-Signature (HMAC-SHA256 по телу). Полный текст транскрипта забирайте отдельным запросом GET /transcriptions/{task_id}/result.
Пример тела webhook
POST https://client.example.com/webhook
{
"event": "transcription.completed",
"task_id": "9b9c1b9a-....",
"status": "completed",
"model": "fast",
"failure_reason": null,
"has_transcript": true,
"has_translation": true,
"transcript_preview": "Hello, this is a sample..."
}Коды ошибок HTTP
Типичные ответы API при ошибках:
- 400 — некорректный запрос (параметры, формат, URL)
- 401 — неверный или отсутствующий ключ/токен
- 403 — нет доступа к ресурсу
- 404 — задача или файл не найдены
- 429 — превышен лимит запросов (см. раздел «Лимиты»)
- 500 — внутренняя ошибка сервера
Лимиты
Ниже — фактические значения, которые применяет API. Кратковременные (burst) лимиты считаются на пользователя: один и тот же аккаунт и с JWT сессии, и с любого sk_. Суточные и месячные счётчики учитывают все запросы, выполненные с любым вашим ключом sk_ (календарные сутки и месяц по UTC). При превышении лимита ответ — HTTP 429.
Актуальный блок rate_limits в JSON возвращает метод:
GET https://polyglotvoice.ru/api/v1/developer/documentationЗагрузка текущих лимитов…
Отдельно от этих счётчиков действуют ограничения тарифа: максимальная длительность файла, размер загрузки, число параллельных задач и (на сайте) дневной лимит загрузок. См. свой план в личном кабинете.
Частые вопросы
Какие форматы поддерживаются?
Популярные аудио и видео: mp3, wav, m4a, ogg, mp4, webm и другие. Можно загрузить файл или передать ссылку на медиа.
Как получить API-ключ?
Войдите в личный кабинет → Профиль → API ключи → создайте ключ sk_ и сохраните его (показывается один раз).
Есть ли webhook?
Да. Укажите URL в настройках API-ключа; при завершении или ошибке задачи придёт POST с подписью HMAC.
Какие лимиты?
Burst-лимиты в минуту на пользователя и суточные/месячные лимиты по тарифу для ключей sk_. Актуальные значения — в блоке «Лимиты» ниже и в GET /developer/documentation.
Есть ли бесплатный тариф?
Да, есть бесплатный план с ограничениями по минутам и попыткам. Подробности — на странице тарифов.