Перейти к содержанию

Интеграция API

API интерфейс предназначен для разработчиков и используется для интеграции ваших приложений с системой ИНСАЙДЕР. Если у вас имеются вопросы по работе API или требуются дополнительные возможности интеграции, то свяжитесь с нами по адресу: sale@insider.sale или в техническую поддержку https://support.insider.red/

API работает по протоколу HTTP и представляет собой набор методов, с помощью которых совершаются запросы и возвращаются ответы для каждой операции. Все ответы приходят в виде JSON структур.

Начало работы

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

Метод Где передавать Пример
API-ключ в URL Query-параметр key GET /api/users/find?key=API_KEY
API-ключ в заголовке Authorization Authorization: API_KEY

Работа с API

Для работы с API необходимо:

  1. Получить ключ API_KEY в личном кабинете администратора в Настройки - Интеграции - API ключ

  2. Использовать данный ключ в каждом запросе к API в параметрах URL или в заголовке HTTP “Authorization”

Формат запроса

URL любого API-запроса составляется следующим образом:  

https://<имя-вашего-сервера-или-ip-адрес>/api/

Пример c ключом в URL:  

https://<имя-вашего-сервера-или-ip-адрес>/api/users/find?key=apikey

Или c ключом в заголовке HTTP:  

https://<имя-вашего-сервера-или-ip-адрес>/api/users/find  

Заголовок HTTP  

Authorization: apikey

Обозначения

  • Типы дат: yyyy-MM-dd HH:mm:ss, если не указано иное

Список методов

Пользователи — эндпоинты и параметры
GET /api/users/find
Получить список пользователей
  • id: array[long] — фильтр по ID (необязательно)
  • email: string — фильтр по email (необязательно)
  • active: boolean — по активности (необязательно)
  • statistics: boolean — по флагу сбора статистики (необязательно)
  • guid: string — фильтр по GUID (необязательно)
POST /api/users/save
Создать или обновить пользователя
  • id: long — для обновления существующего (необязательно)
  • email: string — Email пользователя (необязательно)
  • guid: string — GUID интеграций (Bitrix24, 1С) (необязательно)
  • upn: string — UPN (Active Directory) (необязательно)
  • firstName: string — обязательно при создании (если нет id)
  • lastName: string — фамилия (необязательно)
  • secondName: string — отчество (необязательно)
  • departmentId: long — отдел (необязательно)
  • positionId: long — должность (необязательно)
  • scheduleId: long — расписание (необязательно)
  • timezone: string — часовой пояс (необязательно)
  • active: boolean — статус активности (необязательно)
  • deleted: boolean — признак удаления (необязательно)
  • statistics: boolean — включить сбор статистики (необязательно)
GET /api/users/getAccess
Получить права пользователя
  • id: long — ID пользователя (обязательно)
POST /api/users/setAccess
Установить права пользователя
  • id: long — ID пользователя (обязательно)
  • access: object — объект прав (необязательно)
    • menu: array[string] — разделы меню
    • departments: array[long] — доступные отделы
    • users: array[long] — доступные пользователи
POST /api/users/setPassword
Сменить пароль пользователя
  • id: long — ID пользователя (обязательно)
  • password: string — новый пароль (обязательно)
GET /api/users/getDistractions
Получить отвлечения пользователя
  • id: long — ID пользователя (обязательно)
POST /api/users/setDistractions
Назначить отвлечения пользователю
  • id: long — ID пользователя (обязательно)
  • distractionIds: array[long] — список отвлечений (необязательно)
POST /api/users/removeBatch
Удаление пакетно пользователей
  • ids: array[long] — Массив ID пользователей для удаления (обязательно)

События календаря — эндпоинты и параметры
GET /api/users/events/find
Получить список событий календаря
  • userIds: array[long] — ID пользователей (необязательно)
  • startDate: string — дата начала, формат "yyyy-MM-dd HH:mm:ss" (обязательно)
  • endDate: string — дата окончания, формат "yyyy-MM-dd HH:mm:ss" (обязательно)
  • type: array[string] — фильтр по типам событий (например: productive, distractions, vacation) (необязательно)
POST /api/users/events/save
Создать или обновить событие календаря
  • id: long — ID события (требуется для обновления) (необязательно)
  • userId: long — ID пользователя (обязательно при создании)
  • type: string — тип события (обязательно при создании)
  • name: string — название события (необязательно)
  • startDate: string — дата начала, формат "yyyy-MM-dd HH:mm:ss" (обязательно при создании)
  • endDate: string — дата окончания, формат "yyyy-MM-dd HH:mm:ss" (обязательно при создании)
POST /api/users/events/remove
Удалить событие календаря
  • id: long — ID события (обязательно)

Типы событий — эндпоинты и параметры
GET /api/events/find
Получить список типов событий
POST /api/events/save
Создать или обновить тип события
  • id: long — ID события (для обновления) (необязательно)
  • name: string — название события — обязательно (если id не указан)
  • type: string — тип активности (productive | distractions) — обязательно (если id не указан)
POST /api/events/remove
Удалить тип события
  • id: long — ID события (обязательно)

Агенты — эндпоинты и параметры
GET /api/agents/find
Получить список агентов
  • userIds: array[long] — фильтр по пользователям (необязательно)
POST /api/agents/create
Создать агента
  • userId: long — связать с пользователем (необязательно)
POST /api/agents/active
Активировать/деактивировать агента. Изменяет статус активности агента. При активации учитываются лимиты.
  • id: long — ID агента (обязательно)
  • active: boolean — состояние (обязательно)
POST /api/agents/setUserId
Привязать/отвязать пользователя
  • id: long — ID агента (обязательно)
  • userId: long — ID пользователя (не указывать для отвязки) (необязательно)
POST /api/agents/remove
Удалить агента
  • id: long — ID агента (обязательно)
POST /api/agents/removeBatch
Удалить агентов пакетно
  • ids: array[long] — Массив ID агентов для удаления. (обязательно)

Отделы — эндпоинты и параметры
GET /api/departments/find
Возвращает иерархический список всех отделов
POST /api/departments/save
Создать/обновить отдел
  • id: long — обновление (необязательно)
  • name: string — название отдела (обязательно)
  • departmentId: long — родительский отдел (необязательно)
POST /api/departments/remove
Удалить отдел
  • id: long — ID отдела (обязательно)
POST /api/departments/removeBatch
Удаляет несколько отделов, включая все дочерние отделы, и отвязывает от них пользователей.
  • ids: array[long] — Массив ID отделов для удаления (обязательно)

Должности — эндпоинты и параметры
GET /api/positions/find
Список должностей
POST /api/positions/save
Создать/обновить должность
  • id: long — обновление (необязательно)
  • name: string — наименование (обязательно)
POST /api/positions/remove
Удалить должность
  • id: long — ID должности (обязательно)
POST /api/positions/removeBatch
Удаляет несколько должностей и отвязывает от них пользователей.
  • ids: array[long] — Массив ID должностей для удаления (обязательно)

Расписания — эндпоинты и параметры
GET /api/schedules/find
Список расписаний
  • id: array[long] — фильтр по ID (необязательно)
POST /api/schedules/save
Создать/обновить расписание
  • id: long — обновление (необязательно)
  • name: string — имя расписания (обязательно)
  • free: boolean — гибкий режим (true/false) (необязательно)
  • country: string — код страны для производственного календаря (ru, by, kz, ua) (необязательно)
  • data: array[object] — 7 объектов Пн–Вс (обязательно)
    • Если free=false:
      • data[].intervals[].from, data[].intervals[].to (HH:mm) — обязательно
    • Если free=true:
      • data[].value (HH:mm) — обязательно
POST /api/schedules/remove
Удалить расписание
  • id: long — ID расписания (обязательно)
POST /api/schedules/removeBatch
Удаляет несколько расписаний.
  • ids: array[long] — ID расписания (обязательно)
GET /api/schedules/calendar
Получить производственный календарь
  • year: integer — год (обязательно)
  • id: long — ID расписания (необязательно)
  • country: string — код страны (ru, by, kz, ua) (обязателен, если не указан id)
  • sixDay: boolean — 6-дневная рабочая неделя (необязательно)

Приложения и сайты — эндпоинты и параметры
GET /api/applications/find
Список приложений/сайтов
  • id: array[long] — фильтр по ID (необязательно)
POST /api/applications/save
Создать/обновить приложение/сайт
  • id: long — обновление (необязательно)
  • name: string — имя (обязательно)
  • path: string — путь/домен/шаблон (обязательно)
  • type: string — process или site (обязательно)
  • groupId: long — группа (необязательно)
  • title: string — отображаемое имя (необязательно)
POST /api/applications/remove
Удалить приложение/сайт
  • id: long — ID (обязательно)
POST /api/applications/removeBatch
Удаляет несколько приложений/сайтов
  • ids: array[long] — Массив ID приложений для удаления (обязательно)

Политики отвлечений — эндпоинты и параметры
GET /api/distractions/find
Список политик отвлечений
POST /api/distractions/save
Создать/обновить политику отвлечений
  • id: long — обновление (необязательно)
  • name: string — имя политики (обязательно)
GET /api/distractions/getApplications
Получить приложения политики
  • id: long — ID политики (обязательно)
POST /api/distractions/setApplications
Назначить приложения политике
  • id: long — ID политики (обязательно)
  • applicationIds: array[long] — список приложений (необязательно)
GET /api/distractions/getUsers
Получить пользователей политики
  • id: long — ID политики (обязательно)
POST /api/distractions/setUsers
Назначить пользователей политике
  • id: long — ID политики (обязательно)
  • userIds: array[long] — список пользователей (необязательно)
POST /api/distractions/remove
Удалить политику отвлечений
  • id: long — ID политики (обязательно)

Активности — эндпоинты и параметры
GET /api/activities/find
Список активностей
  • userIds: array[long] — фильтр по пользователям (необязательно)
  • agentIds: array[long] — фильтр по агентам (необязательно)
  • startDate: string — дата начала (обязательно)
  • endDate: string — дата окончания (обязательно)
  • type: string — state|mouse|process|site|screen|keylogger|gps|task (необязательно)
  • order: string — asc | desc (необязательно)
  • limit: integer — лимит (необязательно)
  • offset: integer — смещение (необязательно)
  • search: string — строка поиска (необязательно)
  • includeTotal: boolean — вернуть счётчик (необязательно)
GET /api/activities/reports
Отчёты по активностям
  • userIds: array[long] — фильтр по пользователям (необязательно)
  • startDate: string — начало периода (необязательно)
  • endDate: string — конец периода (необязательно)
GET /api/activities/searches
Поисковые запросы пользователей
  • userIds: array[long] — фильтр по пользователям (необязательно)
  • startDate: string — начало периода (необязательно)
  • endDate: string — конец периода (необязательно)
GET /api/activities/keylogger
Данные кейлоггера
  • userIds: array[long] — фильтр по пользователям (необязательно)
  • startDate: string — начало периода (необязательно)
  • endDate: string — конец периода (необязательно)
  • incidents: boolean — только инциденты (необязательно)
POST /api/activities/screenshots
OCR по скриншотам
  • userIds: array[long] — фильтр по пользователям (необязательно)
  • search: string — строка поиска (обязательно)
  • startDate: string — начало периода (необязательно)
  • endDate: string — конец периода (необязательно)
  • Требуется опция screenshotSearchServiceUrl

Ресурсы — эндпоинты и параметры
POST /api/resources/uploadPicture
Загрузить изображение
  • files[]: file — одно или несколько (multipart/form-data) (обязательно)
POST /api/resources/loadPicture
Получить URL изображения
  • id: long — ID ресурса (обязательно)
POST /api/resources/removePicture
Удалить изображение
  • id: long — ID ресурса (обязательно)
GET /api/resources/get
Скачать файл ресурса
  • id: long — ID ресурса (обязательно)

Задачи — эндпоинты и параметры
GET /api/tasks/find
Получить список задач
Доступно по ключу экземпляра.
  • id: array[long] — массив внутренних ID для фильтрации (необязательно)
  • externalId: string — внешний идентификатор задачи (необязательно)
  • host: string — хост источника задачи, например домен портала (необязательно)
  • userIds: array[long] — массив ID ответственных сотрудников (необязательно)
  • status: string — статус: IN_PROGRESS, COMPLETED, ARCHIVED (необязательно)
  • startDate: string — начало периода (фильтр по дате закрытия), формат "yyyy-MM-dd HH:mm:ss" (необязательно)
  • endDate: string — окончание периода (фильтр по дате создания), формат "yyyy-MM-dd HH:mm:ss" (необязательно)
  • deleted: boolean — фильтр по флагу удаления, по умолчанию false (необязательно)
POST /api/tasks/save
Создать или обновить задачу
  • id: long — внутренний ID задачи (требуется для обновления) (необязательно)
  • externalId: string — внешний ID задачи (обязательно при создании)
  • host: string — хост источника (обязательно при создании)
  • userId: long — ID ответственного сотрудника (обязательно при создании)
  • title: string — название задачи (необязательно)
  • status: string — статус: IN_PROGRESS, COMPLETED, ARCHIVED (необязательно)
  • creationDate: string — дата создания, формат "yyyy-MM-dd HH:mm:ss" (необязательно)
  • closedDate: string — дата закрытия, формат "yyyy-MM-dd HH:mm:ss" (необязательно)
  • deleted: boolean — флаг удаления (необязательно)

Инциденты — эндпоинты и параметры
GET /api/incidents/find
Получить список инцидентов
  • id: long — ID конкретного инцидента (необязательно)
  • startDate: string — начало периода, формат "yyyy-MM-dd" или "yyyy-MM-dd HH:mm:ss" (необязательно)
  • endDate: string — конец периода (необязательно)
  • userIds: array[long] — массив ID сотрудников (необязательно)
  • priority: string — приоритет: CRITICAL, MEDIUM, LOW (необязательно)
  • eventType: string — тип события: KEYLOGGER, SITE, PROCESS, IDLE_EXCEEDED, DISTRACTIONS_EXCEEDED, LATENESS, ABSENCE, AUDIT_EVENT, EXTERNAL (необязательно)
  • source: string — источник: SYSTEM, API (необязательно)
  • status: string — статус: OPEN, RESOLVED (необязательно)
  • limit: integer — количество записей (необязательно)
  • offset: integer — смещение (необязательно)
  • order: string — порядок сортировки (asc или desc) (необязательно)
  • includeTotal: boolean — возвращать общее кол-во записей (необязательно)
POST /api/incidents/resolve
Закрыть инцидент
  • id: long — ID инцидента (обязательно)
POST /api/incidents/create
Создать инцидент из внешней системы
  • userId: long — ID сотрудника (обязательно)
  • priority: string — приоритет: CRITICAL, MEDIUM, LOW (обязательно)
  • data: object — дополнительные данные в формате JSON (обязательно)

Примеры запросов

Создание отдела

fetch(`${url}/api/departments/save?key=${key}`,
    { method:'POST', body: formData }
)

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

fetch(`${url}/api/users/save`,
    {
        method:'POST',
        headers:{authorization: API_KEY,'Content-Type':'application/json'},
        body: JSON.stringify({...})
    }
)