Документация LMS версия 2026.09.180

Документация/Проект API/Служебное

Это проектная спецификация, а не работающее API: реализации ещё нет, адреса могут измениться.

Служебное

Операций в разделе: 21.

у 6 описание выведено из имени операции. Спецификация написана каталогом путей, прозы для них там не было; выдумывать поведение мы не стали. Подробнее — Чего в справочнике ещё нет.

GET /v1/audit-log #

действия администраторов

Параметры:

  • limit — сколько вернуть, 1…1000, по умолчанию 50
  • cursor — позиция продолжения из next_cursor
  • sort — сортировка, минус для убывания
  • expand — развернуть связи
  • fields — вернуть только эти поля
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X GET 'https://school.example.com/api/v1/audit-log' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'

Коды ответа: 200, 401, 403, 429, 500, 503.

Чего здесь нет: состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

GET /v1/events #

журнал событий системы

Параметры:

  • limit — сколько вернуть, 1…1000, по умолчанию 50
  • cursor — позиция продолжения из next_cursor
  • sort — сортировка, минус для убывания
  • expand — развернуть связи
  • fields — вернуть только эти поля
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X GET 'https://school.example.com/api/v1/events' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'

Коды ответа: 200, 401, 403, 429, 500, 503.

Чего здесь нет: состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

GET /v1/events/{id} #

Событие по идентификатору. Фраза выведена из имени операции: в спецификации описания нет.

В пути: id

Параметры:

  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X GET 'https://school.example.com/api/v1/events/{id}' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'

Вместо {…} подставьте идентификатор объекта — про их формат в разделе Формат.

Коды ответа: 200, 401, 403, 404, 429, 500, 503.

Чего здесь нет: состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

POST /v1/events/{id}/replay #

переиграть событие (пересобрать вебхуки)

В пути: id

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X POST 'https://school.example.com/api/v1/events/{id}/replay' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Вместо {…} подставьте идентификатор объекта — про их формат в разделе Формат.

Коды ответа: 201, 400, 401, 403, 404, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

POST /v1/exports #

Заказать выгрузку. Всегда задачей, никогда синхронно: выгрузка школы не помещается в время ответа. Возвращает идентификатор задачи; готовый файл забирается по нему, ссылка живёт ограниченное время.

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X POST 'https://school.example.com/api/v1/exports' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Коды ответа: 201, 400, 401, 403, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

POST /v1/exports/full #

Заказать полный архив школы: курсы, уроки, люди, доступы, заказы, платежи, чеки, сообщения, файлы, настройки, журнал. Не входит ничего, что не принадлежит школе: секреты интеграций, пароли, наш лицензионный ключ. Этой операцией проверяется обещание «данные ваши и забираются целиком».

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X POST 'https://school.example.com/api/v1/exports/full' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Коды ответа: 201, 400, 401, 403, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

GET /v1/health #

состояние системы и очередей

Параметры:

  • limit — сколько вернуть, 1…1000, по умолчанию 50
  • cursor — позиция продолжения из next_cursor
  • sort — сортировка, минус для убывания
  • expand — развернуть связи
  • fields — вернуть только эти поля
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X GET 'https://school.example.com/api/v1/health' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'

Коды ответа: 200, 401, 403, 429, 500, 503.

Чего здесь нет: состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

POST /v1/imports #

Загрузить людей из файла. dry_run считает и показывает результат, не записывая ничего: сколько создастся, сколько совпадёт, где ошибки. Совпадение ищется по контакту — сначала почта, затем телефон, — но не по имени: однофамильцы склеятся молча.

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X POST 'https://school.example.com/api/v1/imports' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Коды ответа: 201, 400, 401, 403, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

GET /v1/limits #

текущие лимиты и расход

Параметры:

  • limit — сколько вернуть, 1…1000, по умолчанию 50
  • cursor — позиция продолжения из next_cursor
  • sort — сортировка, минус для убывания
  • expand — развернуть связи
  • fields — вернуть только эти поля
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X GET 'https://school.example.com/api/v1/limits' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'

Коды ответа: 200, 401, 403, 429, 500, 503.

Чего здесь нет: состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

GET /v1/queues #

очереди: длина, задержка, упавшие

Параметры:

  • limit — сколько вернуть, 1…1000, по умолчанию 50
  • cursor — позиция продолжения из next_cursor
  • sort — сортировка, минус для убывания
  • expand — развернуть связи
  • fields — вернуть только эти поля
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X GET 'https://school.example.com/api/v1/queues' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'

Коды ответа: 200, 401, 403, 429, 500, 503.

Чего здесь нет: состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

POST /v1/queues/{queue}/jobs/{id}/retry #

повторить упавшую задачу

В пути: queue, id

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X POST 'https://school.example.com/api/v1/queues/{queue}/jobs/{id}/retry' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Вместо {…} подставьте идентификатор объекта — про их формат в разделе Формат.

Коды ответа: 201, 400, 401, 403, 404, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

GET /v1/settings #

Настройки школы. Фраза выведена из имени операции: в спецификации описания нет.

Параметры:

  • limit — сколько вернуть, 1…1000, по умолчанию 50
  • cursor — позиция продолжения из next_cursor
  • sort — сортировка, минус для убывания
  • expand — развернуть связи
  • fields — вернуть только эти поля
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X GET 'https://school.example.com/api/v1/settings' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'

Коды ответа: 200, 401, 403, 429, 500, 503.

Чего здесь нет: состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

PATCH /v1/settings #

настройки школы

⚠️ Адрес предположительный. В спецификации он не написан прямо — он выведен из сокращённой записи каталога («POST, PATCH, DELETE»). Когда API будет реализовано, адрес может оказаться другим. Не закладывайтесь на него в коде.

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X PATCH 'https://school.example.com/api/v1/settings' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Коды ответа: 200, 400, 401, 403, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

GET /v1/webhooks #

Список подписок на события. Фраза выведена из имени операции: в спецификации описания нет.

Параметры:

  • limit — сколько вернуть, 1…1000, по умолчанию 50
  • cursor — позиция продолжения из next_cursor
  • sort — сортировка, минус для убывания
  • expand — развернуть связи
  • fields — вернуть только эти поля
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X GET 'https://school.example.com/api/v1/webhooks' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'

Коды ответа: 200, 401, 403, 429, 500, 503.

Чего здесь нет: состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

POST /v1/webhooks #

Создать подписку на события. Фраза выведена из имени операции: в спецификации описания нет.

⚠️ Адрес предположительный. В спецификации он не написан прямо — он выведен из сокращённой записи каталога («POST, PATCH, DELETE»). Когда API будет реализовано, адрес может оказаться другим. Не закладывайтесь на него в коде.

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X POST 'https://school.example.com/api/v1/webhooks' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Коды ответа: 201, 400, 401, 403, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

DELETE /v1/webhooks/{id} #

Удалить подписку на события. Фраза выведена из имени операции: в спецификации описания нет.

⚠️ Адрес предположительный. В спецификации он не написан прямо — он выведен из сокращённой записи каталога («POST, PATCH, DELETE»). Когда API будет реализовано, адрес может оказаться другим. Не закладывайтесь на него в коде.

В пути: id

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X DELETE 'https://school.example.com/api/v1/webhooks/{id}' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Вместо {…} подставьте идентификатор объекта — про их формат в разделе Формат.

Коды ответа: 200, 400, 401, 403, 404, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

PATCH /v1/webhooks/{id} #

Изменить подписку на события. Фраза выведена из имени операции: в спецификации описания нет.

⚠️ Адрес предположительный. В спецификации он не написан прямо — он выведен из сокращённой записи каталога («POST, PATCH, DELETE»). Когда API будет реализовано, адрес может оказаться другим. Не закладывайтесь на него в коде.

В пути: id

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X PATCH 'https://school.example.com/api/v1/webhooks/{id}' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Вместо {…} подставьте идентификатор объекта — про их формат в разделе Формат.

Коды ответа: 200, 400, 401, 403, 404, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

GET /v1/webhooks/{id}/deliveries #

история доставок

В пути: id

Параметры:

  • limit — сколько вернуть, 1…1000, по умолчанию 50
  • cursor — позиция продолжения из next_cursor
  • sort — сортировка, минус для убывания
  • expand — развернуть связи
  • fields — вернуть только эти поля
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X GET 'https://school.example.com/api/v1/webhooks/{id}/deliveries' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'

Вместо {…} подставьте идентификатор объекта — про их формат в разделе Формат.

Коды ответа: 200, 401, 403, 404, 429, 500, 503.

Чего здесь нет: состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

POST /v1/webhooks/{id}/deliveries/{deliveryId}/retry #

Повторить одну доставку вручную. Повтор не увеличивает счётчик автоматических попыток и не сдвигает их расписание — это отдельная запись доставки.

В пути: id, deliveryId

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X POST 'https://school.example.com/api/v1/webhooks/{id}/deliveries/{deliveryId}/retry' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Вместо {…} подставьте идентификатор объекта — про их формат в разделе Формат.

Коды ответа: 201, 400, 401, 403, 404, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

POST /v1/webhooks/{id}/replay #

Переиграть события заново — по диапазону дат, по списку типов или по обоим. Уже доставленные переигрываются тоже, если попали в выборку: получатель обязан быть идемпотентным (§8), и переигранная доставка помечена в конверте, чтобы её можно было отличить.

В пути: id

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X POST 'https://school.example.com/api/v1/webhooks/{id}/replay' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Вместо {…} подставьте идентификатор объекта — про их формат в разделе Формат.

Коды ответа: 201, 400, 401, 403, 404, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

POST /v1/webhooks/{id}/test #

тестовая отправка

В пути: id

Параметры:

  • Idempotency-Key — заголовок, защита от двойного выполнения
  • X-On-Behalf-Of — заголовок, действие от лица пользователя

Запрос:

curl -X POST 'https://school.example.com/api/v1/webhooks/{id}/test' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'

Вместо {…} подставьте идентификатор объекта — про их формат в разделе Формат.

Коды ответа: 201, 400, 401, 403, 404, 409, 422, 429, 500, 503.

Чего здесь нет: тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. Чего в справочнике ещё нет.

Как выглядит ошибка и что делать с каждым кодом — в разделе Ошибки.

Эта страница в Markdown