Быстрый старт по API KolWrite
Автоматизируйте всё, что вы делаете в приложении KolWrite: загружайте файлы, расшифровывайте их со всеми доступными настройками, экспортируйте расшифровки и делитесь ими с помощью персонального токена доступа (PAT).
Базовый URL: https://api.kolwrite.com
1. Создайте токен
В приложении KolWrite откройте раздел Настройки → Аккаунт → Доступ к API → Создать токен. Выберите необходимые области доступа (в этом руководстве используются files:write, jobs:write, jobs:read, transcripts:read). Секрет (kol_...) показывается только один раз — сохраните его в безопасном месте.
Передавайте его с каждым запросом:
export KOLWRITE_TOKEN="kol_..."
curl -H "Authorization: Bearer $KOLWRITE_TOKEN" \
https://api.kolwrite.com/api/v1/billing/balance
2. Загрузите файл
Создайте сеанс загрузки, отправьте байты методом PUT на предварительно подписанный URL, затем завершите загрузку:
# a. create the session
SIZE=$(wc -c interview.wav | awk '{print $1}')
curl -X POST https://api.kolwrite.com/api/v1/media/upload-session \
-H "Authorization: Bearer $KOLWRITE_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"filename\": \"interview.wav\", \"file_size_bytes\": $SIZE, \"content_type\": \"audio/wav\"}"
# → data.upload_url, data.finalize_token
# b. upload the bytes directly to storage
curl -X PUT "$UPLOAD_URL" --data-binary @interview.wav \
-H "Content-Type: audio/wav"
# c. finalize
curl -X POST https://api.kolwrite.com/api/v1/media/complete \
-H "Authorization: Bearer $KOLWRITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"finalize_token": "FINALIZE_TOKEN"}'
# → 201, data.media_id
Большие файлы загружаются частями: тогда сессия возвращает data.upload_url со значением null и по одному URL на каждую часть в data.multipart_part_urls. Отправьте каждую часть запросом PUT, сохраните заголовок ETag каждого ответа и передайте их в завершающий вызов как uploaded_parts — список объектов {part_number, etag}.
3. Расшифруйте файл
Создайте задачу. Параметр profile выбирает уровень модели (oracle, oracle-mini, oracle-pro, oracle-max — их список доступен по GET /api/v1/models), а options содержит все настройки из диалогового окна «Анализ» в приложении. Используйте Idempotency-Key, чтобы повторные запросы не создавали дубликаты:
curl -X POST https://api.kolwrite.com/api/v1/jobs \
-H "Authorization: Bearer $KOLWRITE_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: interview-2026-07-08" \
-d '{
"type": "transcription",
"input": {"type": "media_ref", "media_id": "MEDIA_ID"},
"profile": "oracle",
"options": {
"language": "auto",
"target_language": null,
"diarization": {"mode": "regular", "num_speakers": null, "auto_speaker_names": true}
}
}'
# → 202 Accepted, data.job_id, data.status = "queued"
Наложение субтитров выполняется аналогично: укажите "type": "caption_burn" и блок стилей options.caption_burn. Подробности см. в справочнике.
4. Проверяйте статус до завершения
curl -H "Authorization: Bearer $KOLWRITE_TOKEN" \
https://api.kolwrite.com/api/v1/jobs/JOB_ID
# data.status: queued → running → succeeded | failed | cancelled
# data.progress: 0–100, plus queue position while waiting
5. Экспортируйте расшифровку
curl -H "Authorization: Bearer $KOLWRITE_TOKEN" \
"https://api.kolwrite.com/api/v1/jobs/JOB_ID/export?format=srt&include_speakers=true"
Форматы: text, json, srt, vtt. Постоянные артефакты расшифровок (с историей версий) доступны по GET /api/v1/jobs/JOB_ID/artifacts и GET /api/v1/artifacts/{artifact_id} при наличии области доступа transcripts:read.
Скачивание SRT и VTT требует тарифа Plus или выше; на других тарифах возвращается HTTP 403 с кодом subtitle_export_requires_plus.
6. Необязательно: поделитесь результатом
С областью доступа shares:write:
curl -X POST https://api.kolwrite.com/api/v1/shares \
-H "Authorization: Bearer $KOLWRITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"share_kind": "transcript", "artifact_id": "ARTIFACT_ID", "access_scope": "everyone"}'
# → data.share_url