Публичное API
Документация для разработчиков и примеры запросов.
Базовый URL
Используйте базовый URL для всех запросов API.
https://polyglotvoice.ru/api/v1
Авторизация
Все запросы требуют API ключ в заголовке Authorization.
Authorization: Bearer sk_...
Ключ действует 30 дней и работает только для transcriptions/*.
Как получить 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.
Ответы и ошибки
Пример ответа на создание задачи и ошибки авторизации.
{ "task_id": "9b9c1b9a-....", "status": "queued" }{ "detail": "Invalid token." }Лимиты
Ниже — фактические значения, которые применяет API. Кратковременные (burst) лимиты считаются на пользователя: один и тот же аккаунт и с JWT сессии, и с любого sk_. Суточные и месячные счётчики учитывают все запросы, выполненные с любым вашим ключом sk_ (календарные сутки и месяц по UTC). При превышении лимита ответ — HTTP 429.
Актуальный блок rate_limits в JSON возвращает метод:
GET https://polyglotvoice.ru/api/v1/developer/documentationЗагрузка текущих лимитов…
Отдельно от этих счётчиков действуют ограничения тарифа: максимальная длительность файла, размер загрузки, число параллельных задач и (на сайте) дневной лимит загрузок. См. свой план в личном кабинете.