Public API позволяет автошколам интегрировать платформу со своими внутренними системами. API доступен только для чтения данных (GET запросы) и предоставляет доступ к следующим ресурсам:
API использует формат JSON:API. Дополнительные ресурсы будут добавляться по мере поступления запросов от пользователей.
Для доступа к API необходим API-ключ. Ключи создаются в настройках школы администратором.
Передавайте ключ в заголовке каждого запроса:
X-API-Key: ds_live_xxxxxxxxxxxxxAPI-ключ привязан к конкретной школе и даёт доступ только к её данным.
Каждый API-ключ ограничен лимитом запросов для обеспечения стабильности сервиса:
| Лимит | 100 запросов в минуту |
| Сброс | Каждую минуту |
Заголовки в ответе:
| Заголовок | Описание |
|---|---|
X-RateLimit-Limit | Максимум запросов в минуту |
X-RateLimit-Remaining | Осталось запросов |
X-RateLimit-Reset | Unix timestamp сброса лимита |
https://your-domain.ru/api/v1Прямой доступ к моделям данных в формате JSON:API. Полная спецификация в Swagger UI
GET /school
Возвращает информацию о школе (автоматически фильтруется по API-ключу)
Параметры (JSON:API):
| Параметр | Пример | Описание |
|---|---|---|
include | include=locations | Включить связанные данные |
select | select=name,slug | Выбрать конкретные поля |
GET /schoolMembership
Возвращает список участников школы (ученики, инструкторы, администраторы)
Параметры (JSON:API):
| Параметр | Пример | Описание |
|---|---|---|
filter[role] | filter[role]=STUDENT | Фильтр по роли |
include | include=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 код | Код ошибки | Описание |
|---|---|---|
| 401 | MISSING_KEY | API-ключ не передан |
| 401 | INVALID_KEY | Неверный API-ключ |
| 401 | REVOKED_KEY | API-ключ отозван |
| 404 | RESOURCE_NOT_FOUND | Ресурс недоступен через API |
| 405 | METHOD_NOT_ALLOWED | HTTP метод не разрешён (используйте GET) |
| 429 | RATE_LIMITED | Превышен лимит запросов |
| 500 | INTERNAL_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()1. Войдите в систему как администратор школы
2. Перейдите в Настройки школы → API-ключи
3. Нажмите «Создать ключ» и укажите название (например, «CRM Integration»)
4. Скопируйте ключ — он показывается только один раз
Храните ключ в безопасном месте. Если ключ скомпрометирован, немедленно отзовите его и создайте новый.
Вопросы по API? Напишите нам в поддержку через личный кабинет.