REST API · доступно на Профи
Транскрибация через API — за 30 строк кода
REST-эндпоинты с JSON-ответами и авторизацией через X-API-Key.
Загружайте файлы, получайте текст, саммари, субтитры SRT/VTT — в свой бэкенд.
Quick start
3 шага от файла до субтитров
Загрузка, поллинг статуса, экспорт SRT — всё через 3 curl-запроса.
# 1. Загрузить файл curl -X POST https://wonderscribe.pro/api/v1/transcribe \ -H "X-API-Key: ws_..." \ -F "file=@interview.mp3" \ -F "language=ru" # → {"task_id": "abc-123", "status": "pending"} # 2. Поллить статус (раз в 10-15 секунд) curl -H "X-API-Key: ws_..." \ https://wonderscribe.pro/api/v1/tasks/abc-123 # → {"status": "completed", "progress": 100} # 3. Экспортировать субтитры SRT curl -H "X-API-Key: ws_..." \ "https://wonderscribe.pro/api/v1/tasks/abc-123/export?format=srt" # → {"content": "1\n00:00:00,000 --> 00:00:04,200\n...", "format": "srt"}
Эндпоинты
8 методов для всего флоу
POST /transcribe
Параметры загрузки
* — обязательное поле
Python
Полный end-to-end пример
Загрузка → поллинг → результат + субтитры.
import requests, time API_KEY = "ws_..." BASE = "https://wonderscribe.pro/api/v1" HEADERS = {"X-API-Key": API_KEY} # 1) Upload with open("interview.mp3", "rb") as f: r = requests.post( f"{BASE}/transcribe", headers=HEADERS, files={"file": f}, data={"language": "ru", "num_speakers": 2}, ) task_id = r.json()["task_id"] print("task_id:", task_id) # 2) Poll status while True: s = requests.get(f"{BASE}/tasks/{task_id}", headers=HEADERS).json() print(s["status"], s.get("progress", 0), "%") if s["status"] in ("completed", "failed"): break time.sleep(10) # 3) Get text + SRT result = requests.get(f"{BASE}/tasks/{task_id}/result", headers=HEADERS).json() print(result["text"]) srt = requests.get(f"{BASE}/tasks/{task_id}/export?format=srt", headers=HEADERS).json() with open("out.srt", "w") as f: f.write(srt["content"])
Доступ
Только на тарифе Профи
API доступно подписчикам Профи (724 ₽/мес при оплате за год). Безлимит транскрибации + приоритет очереди + до 20 членов команды.