Open API
REST API только на чтение. Подключайте 1С, BI-дашборд, собственный сайт школы или свой скрипт — он будет читать данные вашей школы по защищённому ключу. Записать через API нельзя ничего. Если разработчик ошибётся в коде, учеников или платежи в Drivli это не сломает.
Доступно на тарифах «Профи» и «VIP». На Free и «Стандарт» ключ не выдаётся.
Авторизация
Получите ключ в кабинете директора: Реквизиты → 🔑 API → Создать ключ. Передавайте его в заголовке каждого запроса:
Authorization: Bearer drivli_pk_<32 hex>
- Ключ показывается ровно один раз — копируйте при создании.
- Один ключ = одна школа, чужие данные физически недоступны.
- До 10 активных ключей на школу. Неиспользуемые отзывайте.
- В БД хранится только хэш ключа — компрометация БД не даёт рабочих ключей.
Лимиты
- Профи: 60 запросов в минуту.
- VIP: 600 запросов в минуту.
- Превышение → ответ 429 Too Many Requests с заголовком Retry-After: 60.
Быстрый старт
Список первых 10 активных учеников:
curl -H "Authorization: Bearer drivli_pk_..." \ "https://api.drivli.ru/api/public/v1/students?status=learning_practice&limit=10"
Ответ:
{
"items": [
{
"id": "9b8a...",
"full_name": "Иванов И. И.",
"phone": "+7 555 ...",
"email": "ivanov@example.com",
"category": "B",
"status": "learning_practice",
"group_id": "f3c1...",
"branch_id": null,
"created_at": "2026-04-12T08:30:00Z"
}
],
"meta": { "total": 142, "limit": 10, "offset": 0 }
}Эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| GET | /api/public/v1/students | Список учеников школы. Параметры: status, category, group_id, limit (≤200), offset |
| GET | /api/public/v1/students/{id} | Карточка одного ученика. |
| GET | /api/public/v1/instructors | Список инструкторов. Параметры: is_active, limit, offset |
| GET | /api/public/v1/vehicles | Список учебных автомобилей с датами ОСАГО и ТО. Параметры: limit, offset |
| GET | /api/public/v1/lessons | Список занятий за период. Параметры: period_from, period_to, instructor_id, student_id, limit, offset |
| GET | /api/public/v1/contracts | Договоры с учениками. Параметры: student_id, limit, offset |
| GET | /api/public/v1/payments | Платежи за период. Параметры: period_from, period_to, limit, offset |
| GET | /api/public/v1/leads | Заявки на обучение. Параметры: status, period_from, period_to, limit, offset |
| GET | /api/public/v1/reports/finance-summary | Финансовая сводка за период: доход, расход, прибыль. Параметры: period_from, period_to |
Безопасность
152-ФЗ требует от нас защищать данные учеников. Поэтому API устроен так:
- Только HTTPS. По HTTP не отвечаем вообще.
- Только GET. Записать или удалить что-то через API нельзя.
- В БД у нас лежит только хэш ключа. Если кто-то унесёт нашу базу — рабочих ключей оттуда не достанет.
- Один ключ = одна школа. Чужие данные ключ не увидит даже если очень захочет — изоляция на уровне SQL-схемы.
- Каждый запрос отмечается в карточке ключа: видна дата последнего использования и счётчик. Если ключ кто-то перехватил — это будет заметно.
- Отозвали ключ — следующий запрос с ним вернёт 401. Без задержек на репликацию или кэш.
Коды ответов
200— успех.400— некорректный параметр запроса.401— нет ключа, неверный ключ или ключ отозван.402— школа на тарифе ниже «Профи», Open API закрыт.404— запрашиваемая сущность не найдена.429— превышен лимит запросов в минуту.503— сервис rate-limit недоступен (редко).
Готовы подключаться?
Откройте кабинет директора → «Реквизиты» → «🔑 API» — создайте ключ за минуту.