Довідник методів зовнішнього API
Нижче — усі публічні методи зовнішнього API, згруповані за ресурсами. Це стислий довідник із ключовими параметрами; повні схеми запитів і відповідей завжди актуальні у Swagger.
Якщо метод не позначено окремо, авторизація — заголовок x-api-key з ключем вашої школи (див. «Робота з API» — як його створити).
Спільні параметри списків
Методи GET, що повертають список (users, homeworks, user_reviews, subject_structures), приймають однакові query-параметри:
start, end
пагінація — індекс першого і останнього запису (стандартно 20 записів на сторінку)
sort, order
поле й напрямок сортування
filter
JSON-рядок з фільтром: filter.q — пошук, filter.extraIds — додати конкретні документи, filter.exceptIds — виключити документи
ids
JSON-масив ID, щоб отримати декілька записів одразу
Користувачі (users)
GET
/external/api/users/
Список користувачів
GET
/external/api/users/raw-items
"Сирі" записи користувачів (без обробки)
GET
/external/api/users/{id}
Один користувач за ID
GET
/external/api/users/{id}/progress
Прогрес користувача
POST
/external/api/users/
Створити користувача
POST
/external/api/users/upsert
Створити користувача або оновити наявного за email
POST
/external/api/users/create-with-orders
Створити користувача одразу із замовленнями (offerIds)
POST
/external/api/users/bulk-provide-offers
Масово надати оффери (offerIds) списку користувачів (userIds)
PUT
/external/api/users/{id}
Оновити одного користувача
PUT
/external/api/users/bulk-update
Масово оновити список користувачів (userIds + поля, що змінюються)
DELETE
/external/api/users/{id}
Видалити користувача
Ключові поля тіла запиту для створення/оновлення користувача:
name,email,phone— основні дані (дляPOST /users/обов'язковіnameіemail);isActive,isDemoMode— активність акаунту й демо-режим;seesAllSubjects,ignoreNotOpenLevels,ignoreStopItems— розширені права перегляду;subjects[]— масив доступів до предметів, у кожному:subjectId,groups[],levelPacks[],access.openMode(immediately/exactlyAt),access.closeMode(never/afterSeveralDays/exactlyAt),access.startDate,access.endDate,access.dayCount,userEventsLimit;newPassword— новий пароль (мінімум 6 символів), доступно при оновленні;noteAboutUser[]— нотатки про користувача (text,createdAt,employeeId,userVisible).
Баланс монет (user_balance)
PATCH
/external/api/user_balance/
Масове нарахування/списання монет — див. розділ «Масове оновлення балансу монет» на сторінці «Робота з API»
Домашні завдання (homework)
GET
/external/api/homeworks/
Список домашніх завдань, з додатковими фільтрами по статусу й даті перевірки вчителем
POST
/external/api/ai-media-feedback/{homeworkId}
Прикріпити аудіо-фідбек до домашнього завдання (multipart/form-data, поле file)
POST
/external/api/ai-text-feedback/{homeworkId}
Додати текстовий коментар і/або статус перевірки (text, isApproved)
filter для списку домашніх завдань додатково підтримує: filter.updatedAtByTeacherStart/End (дата перевірки вчителем, формат yyyy-mm-dd), filter.statusHistory.status і filter.statusHistory.updatedAtStart/End.
Події (events)
POST
/external/api/events/for-many-subjects
Створити подію одразу для декількох предметів
Обов'язкові поля тіла запиту: subjectIds[], name, date, finishDate, description, persons, assignTo (groups/users), registerAllUsers, groups[], users[], online, meetingUrl, notifications[], leader (employee, guest), tags[], ignoreUserLimits, creationWithoutNotice, status. Для платної події — об'єкт paid (price, googleProductId, appleProductId).
Відгуки користувачів (user_reviews)
GET
/external/api/user_reviews/
Список відгуків користувачів (спільні параметри списків)
Структура предметів (subject_structures)
GET
/external/api/subject_structures/
Список структур предметів (рівні → теми → уроки) — спільні параметри списків
Уроки (decks)
PUT
/external/api/decks/{id}/updateTheory
Оновити теорію уроку — тіло запиту: html (HTML-контент теорії)
Генерація вправ (exercises_generate)
POST
/external/api/exercises_generate/
Згенерувати вправи для уроків за допомогою ШІ
POST
/external/api/exercises_generate/justRefreshTheory
Примусово вивантажити теорію уроків в AI API (без генерації вправ)
Поля запиту генерації: lessons[] (ID уроків), count (1–10 вправ на урок), type — тип вправи (5 — вибрати слова, 7 — домашнє завдання, 8 — знайти пари, 9 — заповнити пропуски, 11 — тест із вибором відповіді), language (мова генерації), additionalInstructions (необов'язкові інструкції для ШІ), forceRefreshTheory (примусово оновити теорію перед генерацією). Для типу 9 обов'язковий об'єкт type9Adjustments.answerType (keyboard/select). Заголовок locale (необов'язково) визначає мову можливих повідомлень про помилки.
Місії (missions)
POST
/external/api/copy_missions/
Скопіювати місії з одного предмета в інші
Поля запиту: sourceSubjectId — предмет-джерело, targetSubjectsId[] — предмети-цілі, targetCompanyId і targetCompanyApiKey — щоб скопіювати місії в іншу компанію (за замовчуванням копіювання відбувається в межах поточної школи).
Слова та терміни (words)
POST
/external/api/images_for_words/
Завантажити PPTX із зображеннями та ідентифікаторами слів (multipart/form-data, поле file)