Skip to main content
За пять шагов вы сделаете первый запрос: получите токен, настроите заголовки, найдёте или создадите пользователя и разберёте ответ.
1

Получите доступы

Напишите в поддержку — вам создадут сервисного пользователя (API-клиента) с нужными правами и выдадут три значения:
  • Authorization — API-токен (используется как Bearer <TOKEN>);
  • Seller-Id — идентификатор продавца;
  • School-Id — идентификатор школы.
Храните токен в переменных окружения, не в коде и не в репозитории.
2

Подготовьте заголовки

Все запросы выполняются с тремя обязательными заголовками:

Заголовки запроса

Authorization
string
required
API токен сервисного пользователя в формате Bearer. Получите токен в панели администратора школы. Формат: Bearer YOUR_TOKEN.
Seller-Id
string
required
Уникальный идентификатор продавца в системе. Используется для разграничения доступа между разными продавцами.
School-Id
string
required
Уникальный идентификатор школы в системе. Определяет контекст выполнения операции.
3

Сделайте первый запрос — найдите пользователя

Проверьте доступ безопасным методом чтения — user/find:
curl --location 'https://api.exode.biz/saas/v2/user/find?extId=crm_12345' \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Seller-Id: {{ sellerId }}' \
  --header 'School-Id: {{ schoolId }}'
4

Создайте пользователя

Если пользователя ещё нет — создайте его методом user/create. Логин и пароль будут отправлены автоматически (при наличии контакта).
cURL
curl --location 'https://api.exode.biz/saas/v2/user/create' \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Seller-Id: {{ sellerId }}' \
  --header 'School-Id: {{ schoolId }}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "email": "[email protected]",
    "extId": "crm_12345",
    "profile": { "firstName": "John", "lastName": "Doe" }
  }'
5

Разберите ответ

Любой ответ обёрнут в { success, code, payload }. Проверяйте success/code, а при ошибке — поле cause:
Успех
{ "success": true, "code": 200, "payload": { "user": { "id": 123, "extId": "crm_12345" } } }
Ошибка
{ "success": false, "code": 400, "cause": "EmailIsBusy", "message": "Email is busy", "error": "Email is busy" }
Подробно о заголовках, формате ответа, ошибках, rate-limit и пагинации — на странице «Работа с API».

Что дальше

Ключевые понятия

Как связаны продавец, школа, курсы, продукты и доступы.

Работа с API

Заголовки, формат ответа и ошибок, rate-limit, пагинация.

Вебхуки

Получайте события платформы в свои сервисы.

Объекты API

Полные структуры сущностей по zod-схемам.