API расшифровки: REST, MCP и агенты
API — тот же движок, что и на сайте: один POST с файлом, а в ответе текст, сегменты и таймкоды. Базовый адрес — https://api.transcrib.si, префикс версии — /v1, а на том же хосте живёт MCP-сервер с четырьмя инструментами для Claude, ChatGPT и любого другого MCP-клиента.
Попробовать прямо сейчас. Песочница API принимает ваш ключ, отправляет запрос и показывает настоящий ответ: статус, время, заголовки и тело — вместе со сниппетами на curl, Python и JavaScript, собранными из введённых полей. Машиночитаемая документация — в api.md.
Эндпоинты
| Метод | Путь | Что делает |
|---|---|---|
| POST | /v1/auth/register | create an account, returns a session token |
| POST | /v1/auth/login | sign in, returns a session token |
| GET | /v1/me | the current user, the plan and the usage |
| POST | /v1/api-keys | create an API key; the value is shown once |
| GET | /v1/api-keys | the list of keys, without their values |
| DELETE | /v1/api-keys/{id} | revoke a key |
| POST | /v1/transcripts | upload a file (multipart), returns a queued transcript |
| GET | /v1/transcripts | the list of transcripts, ?limit=50&offset=0 |
| GET | /v1/transcripts/{id} | the transcript: the text, the segments, the times, the speakers |
| PATCH | /v1/transcripts/{id} | save the edited text |
| DELETE | /v1/transcripts/{id} | delete the transcript and the file |
| GET | /v1/transcripts/{id}/export | export, ?format=txt|md|srt|vtt|csv|docx |
| POST | /v1/uploads/init | open a chunked upload, returns an upload id |
| PUT | /v1/uploads/{id}/chunk?index=N | send one piece of the file |
| POST | /v1/uploads/{id}/complete | assemble the pieces and queue the transcription |
| DELETE | /v1/uploads/{id} | drop an unfinished upload |
| GET | /v1/usage | the plan, the period, the minutes and the files used |
| POST | /v1/billing/checkout | start a Stripe checkout for pro_monthly or pro_yearly |
| POST | /v1/billing/portal | open the Stripe billing portal |
Пример запроса
Весь API — это один multipart POST с файлом. Остальное — чтение результата.
curl -X POST "https://api.transcrib.si/v1/transcripts" \
-H "X-API-Key: $TRANSCRIB_API_KEY" \
-F "file=@meeting.mp3" \
-F "language=auto" \
-F "diarize=true" Тот же вызов из Python:
import httpx
with open("meeting.mp3", "rb") as audio:
response = httpx.post(
"https://api.transcrib.si/v1/transcripts",
headers={"X-API-Key": API_KEY},
files={"file": ("meeting.mp3", audio, "audio/mpeg")},
data={"language": "auto", "diarize": "true"},
timeout=120.0,
)
transcript_id = response.json()["id"] # status: queued Ответ приходит как {"id": …, "status": "queued"}: расшифровка ещё не готова, читайте её через GET /v1/transcripts/{id}, пока статус не станет done. В том же ответе приходят сегменты — с началом, концом, текстом и спикером.
Коды ошибок
У всех эндпоинтов одна и та же форма ответа, поэтому достаточно одного обработчика: {"error": {"code": "…", "message": "…"}}.
| Код | HTTP-статус | Когда возникает | Что делать |
|---|---|---|---|
| unauthorized | 401 | no key, or a token that is not valid any more | send X-API-Key, or a Bearer token |
| forbidden | 403 | the token belongs to another account | check which account the key belongs to |
| not_found | 404 | no such transcript, upload or key | check the id |
| limit_exceeded | 402, 413 | the daily file limit, the monthly allowance, a file over 64 MB or over 120 minutes | split the file, or change the plan |
| invalid_request | 400, 422 | a field is wrong: a bad format, a bad id, a missing file | the message says which field |
| provider_error | 502 | the transcription engine is unavailable or refused the file | retry later; the file itself may be the problem |
| payment_required | 402 | this call needs the Pro plan | create an API key on Pro or Team |
| billing_disabled | 503 | the server has no payment key configured | not a client problem |
| not_ready | 503 | the database or the storage is not available yet | retry in a moment |
Лимиты
| Лимит | Значение | Что будет при превышении |
|---|---|---|
| Size of one file | 64 MB | the upload is rejected with a clear error |
| Length of one file | 120 minutes (two hours) | the upload is rejected with a clear error |
| Free plan | 3 files a day, up to 30 minutes each | the next upload is refused until the next day |
| Pro fair use | 1,500 minutes of audio per calendar month | a clear limit error, the account stays open |
| Team | committed volume, written down | agreed case by case |
| API | metered by volume, no subscription | billed on the audio you send |
Сколько стоит API
Использование API считается по объёму и оплачивается отдельно от любой подписки: тарифа API с ежемесячной платой у нас нет. Публиковать ставку за час мы не будем — напишите нам со своим месячным объёмом, и мы пришлём условия.
MCP-сервер и плагины
На том же хосте работает MCP-сервер по адресу /mcp с четырьмя инструментами — transcribe_audio, summarize_transcript, extract_actions и list_transcripts. На нём же работают плагины для Claude и ChatGPT. Схемы инструментов, OAuth и настройка клиента — на странице для разработчиков и агентов.
Ключи
Ключ API создаётся в приложении, его значение показывается ровно один раз: мы храним только хэш. Передавайте его в заголовке X-API-Key или отправляйте сессионный токен как Authorization: Bearer …. Ключ отзывается из приложения в любой момент и перестаёт работать сразу.
Положите файл на страницу и прочитайте первые строки.
Виджет ниже — тот же, что на главной: файл → расшифровка с таймкодами и спикерами → экспорт. Расшифровка сохраняется в вашем аккаунте.
Перетащите аудио- или видеофайл
или — mp3, wav, m4a, mp4, до 64 МБ и двух часов
Расшифровка идёт под вашим аккаунтом: войдите или создайте бесплатный аккаунт.
Аккаунта ещё нет? Бесплатный план не требует карты. Создать бесплатный аккаунт или войти.
Вопросы, на которые отвечает эта страница.
Где взять ключ API?
В приложении, на плане Pro или Team. Значение показывается один раз при создании: мы храним только хэш и показать его снова не можем.
Чем авторизоваться — ключом или токеном?
Ключом X-API-Key для обращения с сервера, сессионным токеном Authorization: Bearer — из приложения. Оба способа работают на одних и тех же эндпоинтах.
Есть ли SDK?
Нет: это обычный REST API с одной загрузкой файла в multipart. Достаточно requests или httpx — как в примере выше.
Можно ли загрузить файл больше 64 МБ?
Не одним запросом, но частями: POST /v1/uploads/init, затем PUT /v1/uploads/{id}/chunk?index=N по кускам, затем POST /v1/uploads/{id}/complete. Лимиты готового файла те же — 64 МБ и 120 минут.
Есть ли потоковая передача или websocket?
Нет. Сервис работает с файлами: отправили файл — читаете результат, когда он готов.
Может ли агент пользоваться API?
Да. MCP-сервер отдаёт тот же движок в виде четырёх инструментов, а плагины для Claude и ChatGPT уже собраны.
Похожие страницы.
The same reference in English.
MCP-сервер, четыре инструмента, OAuth и плагины.
Общее руководство: форматы, лимиты, экспорт и цены.
Все планы и лимиты в одной таблице.
Где создаются ключи.
Mark Vesyoly, основатель.
Каждое число на этой странице взято из контракта сервиса, со страницы тарифов или из нашего собственного замера. Автор страницы и издатель сайта — один и тот же человек. Вопросы и правки: support@transcrib.si.