ExodeAPI — типизированный HTTP-клиент, покрывающий эндпоинты /saas/v2/*. Предназначен для сервера (Node.js),
инкапсулирует аутентификацию, сериализацию query/тела, обработку ошибок и (опционально) валидацию ответов по
zod-схемам.
Полная REST-спецификация (request/response, коды ошибок) — в разделе Exode API.
SDK — типизированная обёртка над тем же контрактом; типы выведены из тех же серверных zod-схем.
Инициализация
Параметры конфигурации
number
required
Идентификатор продавца. Передаётся в заголовке
Seller-Id.number
required
Идентификатор школы. Передаётся в заголовке
School-Id.string
required
API-токен сервисного пользователя. Передаётся в
Authorization: Bearer <token>.string
Базовый URL API. По умолчанию
https://api.exode.biz/saas/v2.number
Таймаут запроса в миллисекундах. По умолчанию
30000. При превышении — ExodeAPIError с cause: "Timeout" (code 408).Доступные ресурсы
Клиент предоставляет namespaceschool с семью ресурсами:
school.user
CRUD пользователей, состояние (state), удаление, токены авторизации.
school.group
Список групп, массовое добавление/удаление участников.
school.course
Список курсов и прогресс участников по курсу.
school.productAccess
Список доступов к продуктам.
school.invoice
Список счетов.
school.form
Макеты форм и значения кастомных полей.
school.queryExport
Генерация и опрос результата выгрузок.
Пользователи (school.user)
Группы (school.group)
Курсы (school.course)
Доступы к продуктам (school.productAccess)
Счета (school.invoice)
Формы (school.form)
Выгрузки (school.queryExport)
Выгрузки работают асинхронно: генерация запускает workflow, результат опрашивается по UUID.
Статусы выполнения
generate ограничен лимитом 100 запросов в час. Типы отчётов и переменные — в разделе
Отчёты и выгрузки.Типизация ответов
Типы всех ответов выведены из тех же серверных zod-схем (черезz.infer) и доступны на импорт
(User, Profile, Session, Group, GroupMember, CourseProgress, FormLayout, FormFieldValue,
а также *Output-типы). Рантайм-валидации на стороне клиента нет: контракты уже проверяются на бэкенде
(@ZodResponse), поэтому zod не попадает в рантайм-бандл — ответ возвращается как есть, строго типизированным.
Обработка ошибок
Все ошибки оборачиваются вExodeAPIError:
Полный список доменных
cause-кодов — в разделе Работа с API.Обновлено: 2026-08-15 16:55 UTC