Публичное 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. Шаг 1Создать API-ключ
  2. Шаг 2POST upload/from-url
  3. Шаг 3Получить webhook или poll status
  4. Шаг 4GET result/download

Базовый URL

Используйте базовый URL для всех запросов API.

https://polyglotvoice.ru/api/v1

Авторизация

Эндпоинты ниже принимают заголовок Authorization: Bearer с JWT сессии сайта или с API-ключом sk_….

Authorization: Bearer sk_...

Ключ sk_… выдаётся в профиле, действует 30 дней и подходит только для путей transcriptions/*; остальной сайт по JWT. Один и тот же запрос может пройти как с ключом, так и с токеном сессии.

Как получить API ключ

  1. Войдите в личный кабинет.
  2. Откройте профиль → «API ключи».
  3. Создайте ключ и сохраните его (показывается один раз).
  4. Используйте ключ в запросах.

Эндпоинты

Основные эндпоинты для работы с транскрибациями.

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.

Есть ли бесплатный тариф?

Да, есть бесплатный план с ограничениями по минутам и попыткам. Подробности — на странице тарифов.

Связанные страницы