Skip to main content

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

Authorization
string
required
API токен сервисного пользователя в формате Bearer. Получите токен в панели администратора школы. Формат: Bearer YOUR_TOKEN.
Seller-Id
string
required
Уникальный идентификатор продавца в системе. Используется для разграничения доступа между разными продавцами.
School-Id
string
required
Уникальный идентификатор школы в системе. Определяет контекст выполнения операции.
Состояния пользователя — это ключ-значение записи в базе, связанные с конкретным пользователем. Чтение и запись доступны только для ограниченного списка ключей (whitelist). Для некоторых ключей применяется маскирование при чтении.Эндпоинты ниже работают в контексте школы и требуют прав управления пользователями школы.Установка значения через PUT полностью замещает предыдущее значение ключа. Частичных обновлений (merge) нет.

Список поддерживаемых ключей

  • Тип: object.
  • GET/SET: да/да.
  • Маскирование: нет.
  • Назначение: UTM/реферальные параметры первичного визита/регистрации.
  • UtmSignupParams хранится как объект произвольных строковых пар ключ-значение (например, utm_source, utm_medium, fbclid).
Success (GET UtmSignupParams)
{
  "success": true,
  "code": 200,
  "payload": {
    "value": {
      "fbclid": "EAA12xQ9YzGpKJ7tMoNybfBcGgGSsSixioGWZRcjvdAUCzvIjyGEXStvsIJC1wKj8ZpJ3kTn5Q2sL0mH7u9vW",
      "utm_term": "9876543210123456789",
      "utm_medium": "paid",
      "utm_source": "google",
      "utm_content": "creative_42_variant_b",
      "utm_campaign": "back_to_school_2025_ru"
    }
  }
}
Body (SET UtmSignupParams)
{
  "value": {
    "utm_source": "google",
    "utm_medium": "paid",
    "utm_campaign": "back_to_school_2025_ru",
    "utm_content": "creative_42_variant_b",
    "utm_term": "9876543210123456789",
    "fbclid": "EAA12xQ9YzGpKJ7tMoNybfBcGgGSsSixioGWZRcjvdAUCzvIjyGEXStvsIJC1wKj8ZpJ3kTn5Q2sL0mH7u9vW"
  }
}
  • Тип: boolean.
  • GET/SET: да/да.
  • Маскирование: нет.
  • Назначение: Флаг заполнения персональных данных.
  • PersonalInfoFilled — булево значение true / false, отражающее факт заполнения персональных данных.
Success (GET PersonalInfoFilled)
{
  "success": true,
  "code": 200,
  "payload": {
    "value": true
  }
}
Body (SET PersonalInfoFilled)
{
  "value": true
}

Получить состояние по ключу

GET /saas/v2/user/:userId/state/get?key=PersonalInfoFilled

Параметры

:userId
integer
required
ID пользователя в рамках школы.
key
string
required
Ключ состояния.

Ответ

value
any
required
Значение состояния.
curl --location 'https://api.exode.biz/saas/v2/user/123/state/get?key=PersonalInfoFilled' \
  --header 'Seller-Id: {{ sellerId }}' \
  --header 'School-Id: {{ schoolId }}' \
  --header 'Authorization: Bearer YOUR_TOKEN'
{
  "success": true,
  "code": 200,
  "payload": {
    "value": true
  }
}

Установить состояние по ключу

PUT /saas/v2/user/:userId/state/set?key=PersonalInfoFilled

Параметры

:userId
integer
required
ID пользователя в рамках школы.
key
string
required
Ключ состояния.
value
any
required
Значение, записываемое в состояние. Тип зависит от ключа.

Ответ

set
boolean
required
Флаг успешной записи состояния.

Требования к правам доступа

Требуется аутентификация по токену и право управления пользователями школы (SchoolManageUsers).