Public API v1

REST API для интеграции с вашими CRM-системами и приложениями

Swagger UI

Возможности API

Public API позволяет автошколам интегрировать платформу со своими внутренними системами. API доступен только для чтения данных (GET запросы) и предоставляет доступ к следующим ресурсам:

  • /school — информация о школе
  • /schoolMembership — участники школы (ученики, инструкторы, администраторы)
  • /schoolLocation — локации школы

API использует формат JSON:API. Дополнительные ресурсы будут добавляться по мере поступления запросов от пользователей.

Авторизация

Для доступа к API необходим API-ключ. Ключи создаются в настройках школы администратором.

Передавайте ключ в заголовке каждого запроса:

X-API-Key: ds_live_xxxxxxxxxxxxx

API-ключ привязан к конкретной школе и даёт доступ только к её данным.

Rate Limiting

Каждый API-ключ ограничен лимитом запросов для обеспечения стабильности сервиса:

Лимит100 запросов в минуту
СбросКаждую минуту

Заголовки в ответе:

ЗаголовокОписание
X-RateLimit-LimitМаксимум запросов в минуту
X-RateLimit-RemainingОсталось запросов
X-RateLimit-ResetUnix timestamp сброса лимита

Базовый URL

https://your-domain.ru/api/v1

Эндпоинты

Прямой доступ к моделям данных в формате JSON:API. Полная спецификация в Swagger UI

GET /school

Возвращает информацию о школе (автоматически фильтруется по API-ключу)

Параметры (JSON:API):

ПараметрПримерОписание
includeinclude=locationsВключить связанные данные
selectselect=name,slugВыбрать конкретные поля

GET /schoolMembership

Возвращает список участников школы (ученики, инструкторы, администраторы)

Параметры (JSON:API):

ПараметрПримерОписание
filter[role]filter[role]=STUDENTФильтр по роли
includeinclude=userВключить данные пользователя
page[limit]page[limit]=20Лимит записей
page[offset]page[offset]=40Смещение для пагинации

GET /schoolLocation

Возвращает список локаций (адресов) школы

Формат ответа

Успешный ответ (JSON:API):

{ "data": [ { "type": "schoolMembership", "id": "...", "attributes": { ... }, "relationships": { ... } } ], "links": { "first": "/api/v1/schoolMembership?page[offset]=0", "next": "/api/v1/schoolMembership?page[offset]=20" } }

Ответ с ошибкой:

{ "error": "Описание ошибки", "code": "ERROR_CODE" }

Коды ошибок

HTTP кодКод ошибкиОписание
401MISSING_KEYAPI-ключ не передан
401INVALID_KEYНеверный API-ключ
401REVOKED_KEYAPI-ключ отозван
404RESOURCE_NOT_FOUNDРесурс недоступен через API
405METHOD_NOT_ALLOWEDHTTP метод не разрешён (используйте GET)
429RATE_LIMITEDПревышен лимит запросов
500INTERNAL_ERRORВнутренняя ошибка сервера

Примеры запросов

cURL:

curl -X GET "https://your-domain.ru/api/v1/schoolMembership?filter[role]=STUDENT" \ -H "X-API-Key: ds_live_xxxxxxxxxxxxx"

JavaScript (fetch):

const response = await fetch( 'https://your-domain.ru/api/v1/schoolMembership?filter[role]=STUDENT', { headers: { 'X-API-Key': 'ds_live_xxxxxxxxxxxxx' } } ); const data = await response.json();

Python (requests):

import requests response = requests.get( 'https://your-domain.ru/api/v1/schoolMembership', headers={'X-API-Key': 'ds_live_xxxxxxxxxxxxx'}, params={'filter[role]': 'STUDENT'} ) data = response.json()

Как получить API-ключ

1. Войдите в систему как администратор школы

2. Перейдите в Настройки школы → API-ключи

3. Нажмите «Создать ключ» и укажите название (например, «CRM Integration»)

4. Скопируйте ключ — он показывается только один раз

Храните ключ в безопасном месте. Если ключ скомпрометирован, немедленно отзовите его и создайте новый.

Вопросы по API? Напишите нам в поддержку через личный кабинет.