OSCB LogoOtascribe

Описание

Общий обзор программного интерфейса приложения ПК «Отаскрайб»

Данный API реализован на FastAPI и предоставляет набор REST-эндпоинтов для работы с авторизацией, загрузкой файлов, управлением проектами, пользователями, ролями и отчётами. Все запросы, кроме публичных (например, health-check), защищены схемой OAuth2 Password Flow и требуют передачи access_token в заголовке Authorization: Bearer {token}.

Аутентификация

  • Схема: OAuth2 Password Grant
  • Точка входа: POST /api/auth/login
  • Заголовок: user-agent (обязательный)
  • Параметры тела: grant_type, username, password (обязательные), scope, client_id, client_secret (опционально).

После успешного вызова выдаётся JSON с полями access_token и token_type. Токен используется для доступа ко всем защищённым ресурсам.

Все подробные схемы запросов, параметры и примеры ответов описаны в соответствующих разделах документации.

Сценарий использования

Авторизация

Отправьте запрос для получения токена:

POST /api/auth/login
Content-Type: application/json

{"username":"<user>", "password":"<pass>"}

В ответе вы получите access_token. Добавьте его в заголовок всех последующих запросов:

Authorization: Bearer <access_token>

Если вы создаёте приложение для сторонних пользователей, обратитесь в поддержку за client_id и client_secret. На личный аккаунт действуют лимиты, и его нельзя использовать в продуктах. Документация по интеграции собственных приложений доступна по запросу.

Проверка возможности загрузки файла

POST /api/uploads/could_upload
Authorization: Bearer <access_token>
Content-Type: application/json

{"mime_type":"audio/mpeg", "size":1234567}

Если ответ без ошибок, переходите к загрузке.

Загрузка медиа-файла

POST /api/uploads/upload_file
Authorization: Bearer <access_token>
Content-Type: multipart/form-data

file: @/path/to/file.mp3

В ответе вы получите project_id — сохраните его.

Создание задачи на расшифровку

POST /api/project/create_task
Authorization: Bearer <access_token>
Content-Type: application/json

{
    "project_id":"<project_id>",
    "task_type":"transcription",
    "params":{ /* ваши параметры */ }
}

Сохраните response_timestamp для опроса.

Опрос статуса задачи (Polling)

GET /api/project/<project_id>?last_update_timestamp=<response_timestamp>
Authorization: Bearer <access_token>
  • HTTP 304 — подождите 2 секунды и повторите запрос;
  • HTTP 200 без ошибок — задача выполнена;
  • в случае ошибки — создайте задачу заново.

Формирование резюме

POST /api/project/create_task
Authorization: Bearer <access_token>
Content-Type: application/json

{
    "project_id":"<project_id>",
    "task_type":"summarization",
    "template":"<имя_шаблона>",
    "params": { /* параметры */ }
 }

Результат опрашивайте аналогично предыдущему шагу.

Формирование протокола

POST /api/reports/generate_report
Authorization: Bearer <access_token>
Content-Type: application/json

{ /* параметры для отчёта */ }