📖 ReDoc ⚡ Try It Out

Reezonly Space Platform API (1.0.0)

Download OpenAPI specification:

License: MIT

Руководство интеграций Reezonly Space — это главный источник информации, благодаря которому внешние CRM, CMS, ERP и маркетинговые системы быстро подключают программный доступ к Space API.

Здесь собраны схемы аутентификации, бизнес‑блоки пользователей, групп, курсов, сертификатов и отчетов, примеры запросов и схемы ответов. Документация рассказывает, как синхронизировать пользователей, подтянуть группы и права из вашей CRM, создавать курсы и выгружать отчеты — все через безопасный X-API-Key и понятные бизнес-сущности.

Что можно делать через API

  • Добавлять, изменять и удалять пользователей.
  • Назначать пользователям обучение.
  • Создавать группы, редактировать их и назначать им обучение.
  • Изменять пользовательские поля.
  • Выдавать сертификаты после завершения обучения.

Аутентификация

Для доступа к API необходимо использовать API Key в заголовке запроса:

X-API-Key: your_api_key_here

Базовый URL

https://your-space-domain.com/api/v1

Users.Operations

Базовые операции с пользователями

Назначение: CRUD для пользователей, управление статусами и ролями. Ключевые особенности:

  • Фильтрация по status (int), role, department.
  • Поддержка кастомных полей в view и update.
  • Асинхронное создание (через очередь).

Получить список пользователей

Возвращает список пользователей с пагинацией и расширенными фильтрами. Поддерживает сортировку и фильтрацию по группам, курсам и сумме оплат.

Authorizations:
BearerToken
query Parameters
page
integer >= 1
Default: 1
Example: page=1

Номер страницы для пагинации

per_page
integer [ 1 .. 100 ]
Default: 20
Example: per_page=50

Количество элементов на странице (максимум 100)

username
string

Поиск по имени или email

status
integer
Enum: 0 10 20 30

Статус: 0=New, 10=Active, 20=Blocked, 30=Unconfirmed

position
string

Фильтр по должности

department
string

Фильтр по отделу

groupIds
Array of integers

Фильтр по ID групп

courseIds
Array of integers

Фильтр по ID курсов (имеет доступ)

sort
string
Default: "-updated_at"
Example: sort=-created_at

Поле сортировки: username, email, position, department, status, courseCount, created_at, updated_at, payment_sum. Префикс '-' для убывания.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    },
  • "data": {
    }
}

Получить список администраторов

Аналогичен методу index, но возвращает только пользователей с правами администратора.

Authorizations:
BearerToken
query Parameters
page
integer >= 1
Default: 1
Example: page=1

Номер страницы для пагинации

per_page
integer [ 1 .. 100 ]
Default: 20
Example: per_page=50

Количество элементов на странице (максимум 100)

username
string

Поиск по имени или email

sort
string
Default: "-updated_at"

Поле сортировки

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    },
  • "data": {
    }
}

Получить профиль пользователя

Возвращает детальную информацию о пользователе, включая курсы, сертификаты и кастомные поля.

Authorizations:
BearerToken
query Parameters
id
required
integer >= 1
Example: id=42

Идентификатор ресурса

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    },
  • "data": {
    }
}

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

Создает нового пользователя. Пароль обязателен. Привязка к группам и курсам при создании не поддерживается (используйте отдельные методы).

Authorizations:
BearerToken
Request Body schema: multipart/form-data
required
username
required
string

Уникальное имя пользователя

email
required
string <email>

Электронная почта (должна быть уникальной)

password
required
string

Пароль пользователя

role
string

Роль пользователя (admin, user и т.д.)

department
string

Отдел или подразделение

position
string

Должность пользователя

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    },
  • "data": {
    }
}

Обновить пользователя

Обновляет данные профиля, включая кастомные поля.

Authorizations:
BearerToken
query Parameters
id
required
integer >= 1
Example: id=42

Идентификатор ресурса

Request Body schema: multipart/form-data
required
username
string

Уникальное имя пользователя

email
string

Электронная почта (должна быть уникальной)

department
string

Отдел или подразделение

position
string

Должность пользователя

password
string

Пароль пользователя (оставьте пустым, чтобы не менять)

role
string

Роль пользователя (admin, user и т.д.)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    },
  • "data": {
    }
}

Удалить пользователя(ей)

Удаляет одного или нескольких пользователей.

Authorizations:
BearerToken
query Parameters
ids
Array of integers

Массив ID пользователей для удаления (опционально, если не передано - ошибка?)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    }
}

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

Возвращает список всех возможных статусов пользователей (New, Active, Blocked, Unconfirmed) с их ID для использования в фильтрах и при создании пользователей.

Authorizations:
BearerToken

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "items": [
    ]
}

Users.Courses

Управление курсами пользователя

Назначение: назначение и отзыв курсов. Особенности: методы add-course и delete-course работают асинхронно.

Назначить курс пользователю

Назначает один или несколько курсов одному или нескольким пользователям. Операция выполняется асинхронно. Если пользователь уже имеет доступ к курсу, отметка new=false указывает на существующее назначение.

Authorizations:
BearerToken
Request Body schema: multipart/form-data
userIds
required
Array of integers
required
Array of objects

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "results": [
    ]
}

Отозвать курс у пользователя

Удаляет доступ одного или нескольких пользователей к одному или нескольким курсам. После удаления прогресс прохождения курса сохраняется, но пользователь больше не может получать доступ к материалам и выполнять задания курса.

Authorizations:
BearerToken
Request Body schema: multipart/form-data
userIds
required
Array of integers
required
Array of objects

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "results": 1
}

Users.Import

Импорт пользователей

Назначение: массовая загрузка пользователей из Excel. Процесс: load-template -> preview -> load (commit) -> get-import-progress.

Скачать шаблон импорта (XLSX)

Возвращает Excel-шаблон для массового импорта пользователей. Содержит необходимые колонки (username, email, password, department, position и др.) с примерами и подсказками. Используйте этот файл как основу для подготовки данных к импорту.

Authorizations:
BearerToken

Responses

Response samples

Content type
application/json
{
  • "success": false,
  • "errors": {
    }
}

Предварительный просмотр импорта

Валидирует загруженный файл и показывает предварительный просмотр данных, которые будут импортированы. Помогает обнаружить ошибки в формате или содержимом перед фактическим импортом. Возвращает список строк и ошибок валидации для каждой записи.

Authorizations:
BearerToken
Request Body schema: multipart/form-data
fileImport
string <binary>
updateMode
boolean

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    },
  • "data": {
    }
}

Запустить импорт

Запускает асинхронный процесс импорта пользователей из загруженного файла. Возвращает jobId для отслеживания прогресса и reportKey для получения результатов. Используйте метод get-import-progress для мониторинга и получения финального отчета.

Authorizations:
BearerToken
Request Body schema: multipart/form-data
fileImport
string <binary>
updateMode
boolean

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    },
  • "data": {
    }
}

Получить прогресс импорта

Возвращает текущий статус и прогресс импорта пользователей. Параметр id должен содержать reportKey из ответа метода load. По завершении импорта включает финальный отчет с результатами (количество успешно импортированных, ошибки, предупреждения).

Authorizations:
BearerToken
query Parameters
id
required
string

Report Key из метода load

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    },
  • "data": {
    }
}

История импортов

Возвращает список всех выполненных импортов пользователей с пагинацией. Каждый отчет содержит информацию о дате импорта, количестве обработанных записей, количестве ошибок и результатах. Используйте метод downloadUserImportReport для получения детального отчета в формате Excel.

Authorizations:
BearerToken
query Parameters
page
integer >= 1
Default: 1
Example: page=1

Номер страницы для пагинации

per_page
integer [ 1 .. 100 ]
Default: 20
Example: per_page=50

Количество элементов на странице (максимум 100)

type
integer

Фильтр по типу отчета

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    },
  • "data": {
    }
}

Скачать отчет об импорте

Возвращает детальный отчет об импорте в формате Excel. Отчет содержит информацию о каждой обработанной строке (успех/ошибка), данные пользователя и результат обработки. Используйте ID отчета из метода listUserImportReports.

Authorizations:
BearerToken
query Parameters
id
required
integer

ID отчета об импорте

Responses

Response samples

Content type
application/json
{
  • "success": false,
  • "errors": {
    }
}

Users.Fields

Кастомные поля

Назначение: работа с дополнительными атрибутами профиля (UserFieldKey).

Получить список кастомных полей

Возвращает конфигурацию дополнительных полей профиля пользователя.

Authorizations:
BearerToken

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "items": [
    ]
}

Groups.Structure

Структура и иерархия групп

Назначение: выстроить иерархию корпоративных групп с поддержкой вложенности, фильтрации и синхронизации с продуктами/ролями. Ключевые особенности:

  • Родительские связи, проверка циклов, фильтры по статусу/group type и PaginationMeta.
  • Используются схемы Group, GroupListItem и стандартные ответы на ошибки. Пример Use case: интегратор CRM подстраивает дерево отделов: получает групповой каталог, создаёт новый подраздел с POST /group/group/create, затем проверяет структуру через /group/group/view.

Получить список групп

Возвращает список групп (без пагинации). Поддерживаются фильтры по id, parent_id, строке поиска и флагу showDefault (0/1). Сортировка задаётся параметром sort (например, sort=updated_at или sort=-updated_at).

Authorizations:
BearerToken
query Parameters
id
integer >= 1
Example: id=12

ID группы

parent_id
integer >= 1
Example: parent_id=10

ID родительской группы; если не указан — выводятся все корневые

search
string <= 255 characters
Example: search=Sales

Поиск по названию или описанию группы

sort
string
Default: "-updated_at"
Enum: "id" "-id" "search" "-search" "updated_at" "-updated_at" "userCount" "-userCount"
Example: sort=-updated_at

Поле сортировки (префикс - для убывания)

showDefault
integer
Default: 0
Enum: 0 1

Показывать системные группы (guest/authorized)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Получить детальную информацию о группе

Возвращает полную информацию о группе.

Authorizations:
BearerToken
query Parameters
id
required
integer >= 1
Example: id=1

ID группы

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Создать новую группу

Создает новую группу пользователей с поддержкой иерархии. Автоматически валидирует структуру иерархии, предотвращая циклические зависимости. Поддерживает загрузку изображения группы и опциональное добавление пользователей.

Бизнес-логика:

  • Проверка уникальности названия в рамках родительской группы
  • Валидация иерархии (предотвращение циклов)
  • Автоматическое построение иерархического пути
  • Загрузка изображения в S3 хранилище
  • Логирование действия в ActionLog
Authorizations:
BearerToken
Request Body schema: multipart/form-data
required
name
required
string [ 2 .. 255 ] characters

Название группы (обязательное поле)

comment
string <= 512 characters

Описание группы (опционально)

parent_id
integer or null >= 1

ID родительской группы:

  • null для корневой группы
  • ID существующей группы для дочерней
user_ids
Array of integers <= 100 items [ items >= 1 ]

Пользователи для добавления в группу

image_upload
string <binary>

Файл изображения группы (через multipart/form-data)

Responses

Request samples

Content type
multipart/form-data
Example
{
  "name": "Support"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Обновить информацию о группе

Обновляет базовую информацию о группе: название, описание, родительскую группу. При изменении parent_id автоматически перестраивается иерархический путь для всех дочерних групп.

Важно: Изменение родительской группы затрагивает всю ветку дочерних групп.

Authorizations:
BearerToken
query Parameters
id
required
integer >= 1
Example: id=12

ID группы для обновления

Request Body schema: multipart/form-data
required
name
required
string [ 2 .. 255 ] characters

Название группы (обязательное поле)

comment
string <= 512 characters

Описание группы (опционально)

parent_id
integer or null >= 1

ID родительской группы:

  • null для корневой группы
  • ID существующей группы для дочерней
user_ids
Array of integers <= 100 items [ items >= 1 ]

Пользователи для добавления в группу

image_upload
string <binary>

Файл изображения группы (через multipart/form-data)

Responses

Request samples

Content type
multipart/form-data
Example
{
  "name": "Sales / Enterprise"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Удалить группу

Удаляет группу и все связанные данные:

  • Связи пользователей с группой
  • Правила доступа группы
  • Логирование действия

Важно: Нельзя удалить группу, у которой есть дочерние группы. Сначала нужно удалить или переместить все дочерние группы.

Authorizations:
BearerToken
query Parameters
id
required
integer >= 1

ID группы для удаления

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Массовое удаление групп

Удаляет несколько групп за один запрос. Каждая группа проверяется на отсутствие дочерних групп перед удалением.

Authorizations:
BearerToken
Request Body schema: multipart/form-data
required
groupIds
required
Array of integers <= 50 items [ items >= 1 ]

Массив ID групп для удаления (максимум 50)

Responses

Request samples

Content type
multipart/form-data
{
  "groupIds": [
    10,
    11,
    12
  ]
}

Response samples

Content type
application/json
{
  • "success": true
}

Получить список групп для справочника

Возвращает плоский список групп; иерархия собирается на клиенте при необходимости.

Authorizations:
BearerToken
query Parameters
showDefault
integer
Default: 0
Enum: 0 1

Показать системные группы (гостевые/авторизованные)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "items": [
    ]
}

Запустить экспорт структуры групп

Создаёт задачу экспорта групп по указанным фильтрам. Возвращает идентификатор экспорта и ссылку для скачивания после формирования.

Назначение: выгрузка дерева групп для сверки с внешней HR/CRM и последующего импорта/миграции.

Пример Use case: HR переносит сотрудников между группами, обновляет курсы через assign-courses, а затем скачивает актуальный экспорт структуры, чтобы сверить дерево отделов с HRM.

Authorizations:
BearerToken
Request Body schema: application/json
optional
property name*
additional property
any

Responses

Request samples

Content type
application/json
Example
{
  • "format": "xlsx",
  • "include_users": false
}

Response samples

Content type
application/json
{}

Скачать сформированный экспорт групп

Возвращает файл экспорта (XLSX/CSV) по идентификатору задачи экспорта. Используется после получения уведомления о готовности экспорта или поллинга статуса.

Authorizations:
BearerToken
query Parameters
id
required
integer >= 1

ID задания экспорта

Responses

Response samples

Content type
application/octet-stream
UEsDBBQACAgI...

Groups.Members

Управление участниками групп

Назначение: массово добавлять/удалять пользователей и назначать курсы для групп на стороне интеграции. Ключевые особенности: простые payload’ы (user_id, course_ids, списки ids[]), поддержка экспорта, assign-courses для курсов, DELETE /multiple-delete. Пример Use case: HR переносит 50 сотрудников между группами, одновременно обновляя назначенные курсы через POST /group/group/assign-courses, а затем скачивает экспорт структуры (/group/group/export).

Добавить пользователей в группы

Добавляет пользователей в одну или несколько групп. Поддерживает пакетную обработку до 100 пользователей. Проверяет дубликаты и автоматически пропускает уже добавленных пользователей.

Authorizations:
BearerToken
Request Body schema: multipart/form-data
required
groupIds
required
Array of integers [ 1 .. 10 ] items [ items >= 1 ]

ID групп для операции

userIds
required
Array of integers [ 1 .. 100 ] items [ items >= 1 ]

ID пользователей для добавления/удаления

role
string
Enum: "superadmin" "admin" "editor" "curator" "student"

Роль пользователя в группе (опционально, используется при добавлении)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    }
}

Удалить пользователей из групп

Удаляет пользователей из указанных групп. Автоматически обрабатывает ситуации, когда пользователя нет в группе.

Authorizations:
BearerToken
Request Body schema: multipart/form-data
required
groupIds
required
Array of integers [ 1 .. 10 ] items [ items >= 1 ]

ID групп для операции

userIds
required
Array of integers [ 1 .. 100 ] items [ items >= 1 ]

ID пользователей для добавления/удаления

role
string
Enum: "superadmin" "admin" "editor" "curator" "student"

Роль пользователя в группе (опционально, используется при добавлении)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "meta": {
    }
}

Назначить курсы всем участникам группы

Назначает указанные курсы всем текущим участникам группы. Операция выполняется асинхронно через очередь для больших групп.

Authorizations:
BearerToken
Request Body schema: multipart/form-data
required
group_id
required
integer >= 1

ID группы, для которой назначаются курсы

course_ids
required
Array of integers [ 1 .. 50 ] items [ items >= 1 ]

Идентификаторы курсов для назначения

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Certificates.Templates

Управление шаблонами для генерации PDF сертификатов: внешний вид, расположение элементов и переменные для подстановки данных (read-only).

Получить список шаблонов сертификатов

Возвращает все доступные шаблоны для генерации сертификатов

Authorizations:
BearerToken
query Parameters
page
integer >= 1
Default: 1
Example: page=1

Номер страницы для пагинации

per_page
integer [ 1 .. 100 ]
Default: 20
Example: per_page=50

Количество элементов на странице (максимум 100)

active_only
boolean
Default: true

Показать только активные шаблоны

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Получить детальную информацию о шаблоне сертификата

Возвращает полную информацию о шаблоне включая переменные и предпросмотр

Authorizations:
BearerToken
query Parameters
id
required
integer >= 1
Example: id=42

Идентификатор ресурса

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Certificates.Issued

Управление выданными сертификатами, их статусами и верификацией.

Получить список выданных сертификатов

Возвращает список выданных сертификатов с фильтрацией

Authorizations:
BearerToken
query Parameters
page
integer >= 1
Default: 1
Example: page=1

Номер страницы для пагинации

per_page
integer [ 1 .. 100 ]
Default: 20
Example: per_page=50

Количество элементов на странице (максимум 100)

sort
string
Example: sort=-created_at

Сортировка результатов (например, -created_at для обратной сортировки)

search
string

Поиск по сертификатам

course_id
integer >= 1

Фильтр по ID курса

user_id
integer >= 1

Фильтр по ID пользователя

Responses

Response samples

Content type
application/json
{}

Получить информацию о выданном сертификате

Возвращает детальную информацию о конкретном выданном сертификате

Authorizations:
BearerToken
query Parameters
id
required
integer >= 1
Example: id=42

Идентификатор ресурса

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Выдать сертификат

Выдает новый сертификат пользователю за прохождение курса

Authorizations:
BearerToken
Request Body schema: application/json
required
user_id
required
integer >= 1

ID пользователя

course_id
required
integer >= 1

ID курса

template_id
required
integer >= 1

ID шаблона сертификата

issue_date
string <date>

Дата выдачи (по умолчанию текущая)

expires_at
string <date>

Дата истечения (необязательно)

custom_data
object

Дополнительные данные для шаблона

Responses

Request samples

Content type
application/json
{
  • "user_id": 123,
  • "course_id": 456,
  • "template_id": 2,
  • "issue_date": "2024-01-15",
  • "expires_at": "2025-01-15",
  • "custom_data": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Certificate created"
}

Скачать PDF сертификата

Возвращает PDF файл сертификата для скачивания

Authorizations:
BearerToken
query Parameters
id
required
integer >= 1
Example: id=42

Идентификатор ресурса

Responses

Response samples

Content type
application/pdf
UEsDBBQACAgI...

Сформировать ZIP с сертификатами

Запускает генерацию ZIP-архива сертификатов по фильтрам (search, course_id, user_id, пагинация, сортировка). Одновременно может быть только одна активная задача на ключ.

Назначение: массовая выгрузка сертификатов для передачи внешним системам или печати.

Пример Use case: администратор выбирает курс и диапазон пользователей, запускает экспорт и получает ссылку на архив.

Authorizations:
BearerToken
Request Body schema: application/json
optional
search
string
course_id
integer >= 1
user_id
integer >= 1
page
integer >= 1
Default: 1
per-page
integer [ 1 .. 500 ]
Default: 50
sort
string

Responses

Request samples

Content type
application/json
{
  • "course_id": 456,
  • "page": 1,
  • "per-page": 100,
  • "sort": "-issued_at"
}

Response samples

Content type
application/json
{}

Certificates.Lookups

Справочники и системные настройки, связанные с сертификатами.

Список курсов для выдачи сертификатов

Возвращает курсы (id, title, type) для выбора course_id при выдаче сертификатов.

Authorizations:
BearerToken
query Parameters
page
integer >= 1
Default: 1
Example: page=1

Номер страницы для пагинации

per_page
integer [ 1 .. 100 ]
Default: 20
Example: per_page=50

Количество элементов на странице (максимум 100)

sort
string
Example: sort=-created_at

Сортировка результатов (например, -created_at для обратной сортировки)

title
string

Поиск по названию курса

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Список пользователей для выдачи сертификатов

Возвращает пользователей (id, username, email) для выбора user_id при выдаче сертификатов.

Authorizations:
BearerToken
query Parameters
page
integer >= 1
Default: 1
Example: page=1

Номер страницы для пагинации

per_page
integer [ 1 .. 100 ]
Default: 20
Example: per_page=50

Количество элементов на странице (максимум 100)

search
string

Поиск по имени/email

courseIds
Array of integers

Массив ID продуктов/курсов

groupIds
Array of integers

Массив ID групп

inAllGroups
boolean

Требовать принадлежность ко всем указанным группам

progressFrom
integer

Минимальный прогресс

progressTo
integer

Максимальный прогресс

documentExists
integer
Enum: 0 1

Фильтр по наличию документа

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Справочник типов сертификатов

Возвращает список типов сертификатов для подстановки в запросах выдачи.

Authorizations:
BearerToken

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Список переменных сертификатов

Возвращает доступные переменные для шаблонов сертификатов (ключ, имя, обязательность).

Authorizations:
BearerToken
query Parameters
list_id
integer

ID списка переменных

name
string

Фильтр по имени переменной

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Наборы переменных сертификатов

Возвращает значения переменных (variable_id, key, value) для подстановки в шаблоны.

Authorizations:
BearerToken

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Courses

Курсы и обучающие продукты (read-only). Назначение: отдать актуальные метаданные курсов и продуктов для витрин/CRM/маркетинга. Ключевые особенности: постраничная выдача (/course/course/index), структура и уроки, атрибуты активности (students_count, enabled, status, picture, lms_id). Пример: внешняя CMS запрашивает /course/course/index, показывает карточки, затем /course/course/view для программы и уроков.

Получить каталог курсов

Возвращает список доступных курсов с базовой информацией (только чтение)

Authorizations:
BearerToken
query Parameters
page
integer >= 1
Default: 1
Example: page=1

Номер страницы для пагинации

per_page
integer [ 1 .. 100 ]
Default: 20
Example: per_page=50

Количество элементов на странице (максимум 100)

title
string

Поиск по названию курса

type
integer

Тип курса (см. Course::TYPE_*)

enabled
string

Фильтр по признаку доступности

sort
string

Поле сортировки

status
string

Статус курса

type_id
integer

ID типа (product id)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Получить детальную информацию о курсе

Возвращает полную информацию о курсе включая программу обучения (только чтение)

Authorizations:
BearerToken
query Parameters
id
required
integer >= 1
Example: id=42

Идентификатор ресурса

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Pages

Страницы и контент сайта (read-only). Назначение: раскрыть структуру публичных/закрытых страниц для внешних CMS. Ключевые особенности: список типов (/dictionary/dictionary/page-types), выдача pages, поля enabled, SEO-метаданные, alias, category. Пример: внешняя система берёт меню, вызывает /dictionary/dictionary/pages, сортирует по типу, обновляет ссылки без доступа к внутренней CMS.

Получить список типов страниц

Справочник типов страниц сайта и продуктов (read-only): landing, blog, help, legal и другие.

Назначение: дать фронтам и внешним CMS нормализованные типы для фильтров и группировки страниц/лендингов.

Ключевые особенности: стабильные коды типов, совместимость с /dictionary/dictionary/pages, можно кешировать на клиенте.

Пример Use case: SPA-витрина запрашивает типы, строит фильтры и подсветку меню по категориям страниц.

Authorizations:
BearerToken
query Parameters
type
string

Фильтр по типу страницы

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Получить справочник страниц

Доступные страницы сайта (лендинги, продуктовые страницы) с базовыми метаданными (read-only): title, alias, type, enabled, SEO-атрибуты.

Назначение: раскрыть структуру публичных и закрытых страниц, чтобы внешние CMS могли собирать меню и лендинги без доступа в админку.

Ключевые особенности: фильтрация по типу (используйте /dictionary/dictionary/page-types), статус enabled, поля alias и category для навигации.

Пример Use case: внешняя система заимствует SPA-меню, вызывает /dictionary/dictionary/pages, сортирует по типу и обновляет ссылки на новом сайте без внутреннего CMS.

Authorizations:
BearerToken

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Integration Reports

Отчеты для интеграционных систем

Генерация данных «Сводного» отчёта в JSON для BI/дашбордов без генерации файлов.

Сводный отчёт (JSON)

JSON-эквивалент XLSX «Сводный» отчёта с фильтрами по продуктам, группам, прогрессу и полям профиля.

Назначение: отдать тот же набор колонок, что в XLSX «Сводный», но в JSON для BI/дашбордов без генерации файлов.

Пример Use case: BI-интеграция запрашивает данные по конкретным продуктам и отделам, строит графики прогресса и статусов оплат без скачивания XLSX.

Authorizations:
BearerToken
Request Body schema: application/json
optional
product
Array of integers
group
Array of integers
user_ids
Array of integers
progress_from
integer [ 0 .. 100 ]
Default: 0
progress_to
integer [ 0 .. 100 ]
Default: 100
object

Фильтры по полям профиля (username, email, phone, department, position)

page
integer >= 1
Default: 1
per-page
integer [ 1 .. 1000 ]
Default: 200
sort
string
Default: "-date_added"
Enum: "-date_added" "date_added" "-progress" "progress"

Responses

Request samples

Content type
application/json
{
  • "product": [
    ],
  • "group": [
    ],
  • "progress_from": 50,
  • "progress_to": 85,
  • "page": 1,
  • "per-page": 200,
  • "sort": "-date_added"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}