Справочник методов API
Все методы Enterprise API: адрес, что передавать, что возвращается.
Все адреса начинаются с https://api.1app.kz. В каждом запросе обязателен заголовок X-API-Key с ключом школы. Там, где указано «ключ и токен ученика», дополнительно нужен заголовок Authorization: Bearer cli_… — его выдают методы входа.
Вход ученика
POST /api/enterprise/v2/auth/login
Вход по паролю. Только ключ. Тело: phone, password. Возвращает token (cli_…), expiresAt и client с id, phoneNumber, name. Не чаще 20 запросов в минуту на школу.
POST /api/enterprise/v2/auth/send-otp
Отправить ученику код подтверждения. Только ключ. Тело: phone. Возвращает message и expiresAt. Не чаще 10 запросов в минуту на школу.
POST /api/enterprise/v2/auth/verify
Проверить код и получить токен. Только ключ. Тело: phone, code из 6 цифр, необязательно name для нового ученика. Возвращает token, expiresAt, client. Не чаще 20 запросов в минуту.
curl -X POST "https://api.1app.kz/api/enterprise/v2/auth/login" \
-H "X-API-Key: ent_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{"phone":"77001234567","password":"123456"}'Ученики
GET /api/enterprise/v2/clients/lookup?phone=77001234567
Проверить, есть ли человек в школе. Только ключ. Возвращает found, userExists и client с id, именем, телефоном, email и датой регистрации, либо found: false.
GET и PATCH /api/enterprise/v2/clients/me
Профиль текущего ученика. Ключ и токен ученика. GET возвращает id, телефон, имя, фамилию, email, дату рождения, язык, аватар, баланс бонусов и уровень. PATCH обновляет эти поля.
PATCH /api/enterprise/v2/clients
Проставить или исправить имя своего ученика по номеру телефона. Только ключ. Тело: phoneNumber, name, необязательно surname. Работает и для приглашённых, которые ещё не вошли. Карточка ученика в вашей школе обновляется всегда; общий профиль — только пока ученик не задал имя сам.
Школа и курсы
GET /api/enterprise/v2/school/tabs
Структура школы для вашего интерфейса. Только ключ. Возвращает school (id, название, логотип, цвет), tabs — вкладки приложения и homePage. Если подписка школы приостановлена, придёт suspended: true и контактный телефон.
GET /api/enterprise/v2/lms/courses
Каталог курсов. Только ключ. Необязательные параметры: search, page, limit. Возвращает courses, total, page, limit.
GET /api/enterprise/v2/lms/courses/{id}
Карточка курса с модулями и уроками. Ключ и токен ученика: состав курса виден тем, у кого есть доступ.
GET /api/enterprise/v2/lms/lessons/{id}
Содержимое урока: блоки текста, видео, файлы. Ключ и токен ученика.
PUT и POST /api/enterprise/v2/lms/lessons/{id}/progress
Отметить прогресс по уроку. Ключ и токен ученика.
POST /api/enterprise/v2/lms/lessons/{id}/ai-chat
Вопрос ИИ-помощнику по материалу урока. Ключ и токен ученика.
Доступ к курсам
POST /api/enterprise/v2/lms/invites
Выдать доступ по номеру телефона, аккаунт при необходимости создаётся сам. Только ключ — ученику не нужно входить. Тело: courseId, streamId, phoneNumber, необязательно customPassword, name и surname. Передавайте имя, если оно есть в форме: ученик сразу появится в базе с именем. Возвращает inviteId, enrollmentId, isNewUser, isPending, credentials. Это основной метод для формы на сайте.
GET /api/enterprise/v2/lms/enrollments
Записи на курсы. Если передать параметр phone, достаточно одного ключа школы: так можно проверить прогресс ученика со своего сервера, не входя за него. Без phone нужен ещё токен ученика. Необязательный параметр status: pending, active, completed, expired, cancelled.
POST /api/enterprise/v2/lms/enrollments
Записать на курс уже вошедшего ученика. Ключ и токен ученика. Тело: courseId, необязательно streamId и paymentMethodId.
GET /api/enterprise/v2/lms/enrollments/{id}
Одна запись с прогрессом по курсу. Ключ и токен ученика.
В каждой записи приходят status, progressPercent, lessonsCompleted, totalLessons, lastActivityAt, enrolledAt, completedAt и expiresAt. Результатов тестов там пока нет: их отдаёт только метод попыток, а ему нужен токен ученика.
Задания и тесты
- GET и POST /api/enterprise/v2/lms/assignments — список заданий и создание. Ключ и токен ученика.
- GET и PUT /api/enterprise/v2/lms/assignments/{id} — одно задание и его изменение.
- POST /api/enterprise/v2/lms/assignments/{id}/submit — сдать задание на проверку.
- GET, POST и PUT /api/enterprise/v2/lms/quizzes/{id}/attempts — попытки прохождения теста: список, начать, завершить.
Челленджи
- GET /api/enterprise/v2/lms/challenges — список челленджей школы. Только ключ.
- GET /api/enterprise/v2/lms/challenges/{id} — карточка челленджа. Только ключ.
- GET /api/enterprise/v2/lms/challenges/for-student — челленджи конкретного ученика. Ключ и токен.
- GET /api/enterprise/v2/lms/challenges/{id}/progress — прогресс ученика.
- GET /api/enterprise/v2/lms/challenges/{id}/feed — лента работ участников.
- POST /api/enterprise/v2/lms/challenges/{id}/submissions — отправить работу.
- GET и POST …/submissions/{id}/comments — комментарии к работе.
- POST и DELETE …/submissions/{id}/like — поставить и снять лайк.
Страницы, формы, рейтинг
- GET /api/enterprise/v2/pages и /pages/{id} — страницы школы и их содержимое. Ключ и токен ученика.
- GET и POST /api/enterprise/v2/pages/{id}/comments, POST …/comments/{id}/like — комментарии к странице.
- GET, POST и DELETE /api/enterprise/v2/pages/{id}/reactions — реакции.
- GET /api/enterprise/v2/lms/forms/{id} — описание формы.
- GET, POST и PUT /api/enterprise/v2/lms/forms/{id}/submissions — ответы на форму.
- GET /api/enterprise/v2/lms/leaderboard — рейтинг учеников.
Уведомления
- GET, PATCH и DELETE /api/enterprise/v2/notifications — список уведомлений ученика, отметить прочитанными, удалить.
- POST и DELETE /api/enterprise/v2/notifications/push-token — зарегистрировать и отключить push-токен устройства.
Данные школы
GET и PATCH /api/enterprise/me — реквизиты вашей школы и их изменение. Только ключ.