API Woove Course: ученики, записи и заказы
Запись учеников своим кодом, импорт и выгрузка, продление доступа, заказы, домашние задания и аналитика школы
Кабинет школы работает через JSON-методы /api/school/*. Их можно вызывать своим кодом с ключом API, тем же, что для MCP. Ответы приходят в JSON, ошибка — объект {error} с кодом 4xx.
curl -H "Authorization: Bearer wv_ВАШ_КЛЮЧ" https://woove.ru/api/school
Ключ и школа
Ключ создаётся в «Аккаунт» → «Ключи API и MCP» и передаётся заголовком Authorization: Bearer wv_… или X-Api-Key. Школа выбирается параметром ?school=<id> или заголовком X-School, по умолчанию своя.
Записать ученика на курс
curl -X POST https://woove.ru/api/school/students \
-H "Authorization: Bearer wv_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"email":"anna@example.com","name":"Анна","course_id":12,"tariff_id":31,"days":90,"notify":true}'Ответ: {student, enrollment}. Ученик с той же почтой не дублируется, повторная запись продлевает доступ. days задаёт срок доступа в днях, 0 — бессрочно. Без days срок берётся из тарифа. notify: true отправляет письмо со ссылкой для входа.
Основные адреса
| Адрес | Что делает |
|---|---|
GET /api/school | школа, подписка, счётчики, место и просмотры видео |
GET /api/school/courses | курсы со статистикой |
GET /api/school/courses/<id> | модули, уроки, тарифы и потоки курса |
POST /api/school/students | {email, name, phone, course_id, tariff_id, stream_id, days, notify} — ученик и запись на курс |
POST /api/school/students/import | {rows:[{email,name,phone}], course_id, tariff_id, stream_id, days, notify} — до 5 000 строк за запрос |
GET /api/school/students?q=&course=&status= | ученики по 50 на страницу, status: active, expired, completed, none |
GET /api/school/students/export | CSV со всеми учениками |
PATCH /api/school/enrollments/<id> | {status: active|paused|revoked, expires_at, stream_id, tariff_id} — продление, пауза, смена тарифа или потока |
POST /api/school/enrollments/<id>/access-mail | письмо с новой ссылкой для входа |
GET /api/school/orders?status=&course= | заказы: сумма, статус, покупатель, UTM |
GET /api/school/homework?status=sent | домашние задания на проверке |
GET /api/school/stats?days=30&course= | выручка, записи, доходимость по урокам, время проверки |
Права
Ключ действует от имени аккаунта, методы учитывают его роль в школе. Администратору недоступны касса, домен, возвраты и состав команды. Куратор работает с учениками и домашними заданиями своих курсов.
expires_at — Unix-время в секундах, null означает бессрочный доступ. Суммы заказов в рублях.