Skip to main content
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).
Храните токен в переменных окружения. Никогда не коммитьте токены и не передавайте на клиент — ExodeAPI работает только на сервере.

Доступные ресурсы

Клиент предоставляет namespace school с семью ресурсами:

school.user

CRUD пользователей, состояние (state), удаление, токены авторизации.

school.group

Список групп, массовое добавление/удаление участников.

school.course

Список курсов и прогресс участников по курсу.

school.productAccess

Список доступов к продуктам.

school.invoice

Список счетов.

school.form

Макеты форм и значения кастомных полей.

school.queryExport

Генерация и опрос результата выгрузок.

Пользователи (school.user)

Подробнее про автологин через ___uat — в разделе Интеграция с Telegram Mini App.

Группы (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