Мы используем cookie, чтобы сервис работал стабильно и запоминал ваши настройки. Подробнее — в политике конфиденциальности и политике обработки данных.

Документация API

Методы API платформы LawForecast: аутентификация, параметры, примеры запросов и ответов, ошибки и лимиты.

Быстрый старт

Базовый URL

Базовый адрес API: https://lawforecast.ru/api/v1. Запросы и ответы — JSON.

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

Нужен заголовок Authorization: Bearer <access_token> (токен живёт 30 минут, продлевается через /auth/refresh) или X-API-Key с ключом из POST /auth/api-keys.

API-ключ

API-ключ имеет вид lfk_live_…, показывается один раз при создании, на сервере хранится только его хеш.

Без аутентификации

Без аутентификации доступны только /auth/register, /auth/login, /auth/refresh, список тарифов GET /subscriptions/plans и загрузка по публичной ссылке.

Обновление токена

При ответе 401 веб-клиент один раз обновляет токен через refresh_token (живёт 30 дней) и повторяет запрос.

Интерактивная документация

1. Получить токен

curl
curl -X POST https://lawforecast.ru/api/v1/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"email": "user@example.com", "password": "<пароль>"}'

2. Запрос с токеном

curl
curl https://lawforecast.ru/api/v1/cases \
  -H 'Authorization: Bearer <access_token>'

3. Запрос с API-ключом

curl
curl https://lawforecast.ru/api/v1/cases \
  -H 'X-API-Key: <ключ>'

4. Запуск анализа (асинхронный)

curl
curl -X POST https://lawforecast.ru/api/v1/pipeline/start \
  -H 'X-API-Key: <ключ>' -H 'Content-Type: application/json' \
  -d '{"pipeline_name": "quick_extract", "user_query": "взыскание неустойки по договору поставки"}'
# затем: GET https://lawforecast.ru/api/v1/pipeline/status/<task_id>

Лимиты

Вход — 30 запросов за 5 минут с одного IP, регистрация — 10 в час, на входе действует общий предел 10 запросов в секунду. Подробное описание каждого метода — ниже.

Ошибки

Формат ошибки

Тело любой ошибки — JSON {"detail": ...}. Для 422 поле detail — массив объектов с loc, msg и type.

Лимиты и квоты

Общий предел 10 запросов в секунду на IP (кратковременно до 20), размер тела до 100 МБ, квоты тарифа считаются отдельно и при превышении дают 429.

Повтор запроса при 401

При ответе 401 веб-клиент один раз обновляет токен через refresh_token и повторяет запрос.

Коды статусов

  • 401 — Нет, просрочен или отозван токен либо ключ (Missing or invalid token | Invalid token | Token revoked | Invalid API key). Что делать: обновите токен через POST /auth/refresh или войдите заново; для ключа проверьте заголовок X-API-Key и что ключ не отозван
  • 403 — Нет доступа к чужому объекту или действию (Access denied). Что делать: используйте объект своего аккаунта или обратитесь к владельцу; проверьте, что тариф допускает действие
  • 404 — Объект не найден (Not found). Что делать: проверьте идентификатор в адресе; чужие объекты также отдают 404
  • 422 — Ошибка валидации: detail — список объектов FastAPI ([{loc, msg, type}]). Что делать: в loc указано поле, в msg причина; исправьте формат, длину или обязательность поля
  • 429 — Превышен лимит запросов или квота тарифа (Rate limit exceeded. Try again later.). Что делать: подождите и повторите запрос позже; при исчерпании квоты смените тариф на странице подписки
  • 502 — Внутренний сервис недоступен (Upstream <service> unavailable). Что делать: повторите запрос через несколько секунд; если ошибка не уходит, сообщите в поддержку
  • 503 — Очередь пайплайнов заполнена или не удалось проверить лимиты (Service unavailable). Что делать: повторите запрос позже

Методы API

Каталог содержит методы, которые использует веб-клиент платформы. Пути указаны относительно базового адреса. Поля, отмеченные *, обязательны.

Разделы

Сервисы