Подтвердите, что вы не робот
Получить демо-доступ
Получить демо-доступ
Разделы
Свернуть

Интеграция API

Введение

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

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

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

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

МетодГде передаватьПример
API-ключ в URLQuery-параметр keyGET /api/users/find?key=API_KEY
API-ключ в заголовкеAuthorizationAuthorization: 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 — обязательно: нет
agentDomainId: long — фильтр по домену — обязательно: нет
email: string — фильтр по email — обязательно: нет
active: boolean — по активности — обязательно: нет
statistics: boolean — по флагу сбора статистики — обязательно: нет
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 — объект прав — обязательно: нет
access.menu: array[string] — разделы меню — обязательно: нет
access.departments: array[long] — доступные отделы — обязательно: нет
access.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] — список отвлечений — обязательно: нет
События календаря — эндпоинты и параметры
МетодЭндпоинтОписаниеПараметры
GET/api/users/events/findПолучить список событий календаряuserId: long — ID пользователя — обязательно: нет
startDate: string — дата начала — обязательно: да
endDate: string — дата окончания — обязательно: да
POST/api/users/events/saveСоздать или обновить событие календаряid: long — для обновления — обязательно: нет
userId: long — ID пользователя — обязательно: нет
type: string — тип события — обязательно: нет
name: string — название события — обязательно: нет
startDate: string — дата начала — обязательно: нет
endDate: string — дата окончания — обязательно: нет
POST/api/users/events/removeУдалить событие календаряid: long — ID события — обязательно: да
Агенты — эндпоинты и параметры
МетодЭндпоинтОписаниеПараметры
GET/api/agents/findПолучить список агентовuserId: 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 агента — обязательно: да
Интеграции (Active Directory) — эндпоинты и параметры
МетодЭндпоинтОписаниеПараметры
GET/api/agents/domains/findСписок интеграций AD
POST/api/agents/domains/saveСоздать/обновить интеграцию ADid: long — обновление — обязательно: нет
controller: string — контроллер домена — обязательно: нет
domain: string — домен (если нет id) — обязательно: да*
login: string — логин (если нет id) — обязательно: да*
password: string — пароль — обязательно: нет
organizationalUnits: string(JSON) — например ["/Groups/Developers"]обязательно: нет
createDepartments: boolean — создавать отделы по OU — обязательно: нет
POST/api/agents/domains/removeУдалить интеграцию ADid: long — ID интеграции — обязательно: да
Отделы — эндпоинты и параметры
МетодЭндпоинтОписаниеПараметры
GET/api/departments/findСписок отделов
POST/api/departments/saveСоздать/обновить отделid: long — обновление — обязательно: нет
name: string — название отдела — обязательно: да*
departmentId: long — родительский отдел — обязательно: нет
POST/api/departments/removeУдалить отделid: long — ID отдела — обязательно: да
Должности — эндпоинты и параметры
МетодЭндпоинтОписаниеПараметры
GET/api/positions/findСписок должностей
POST/api/positions/saveСоздать/обновить должностьid: long — обновление — обязательно: нет
name: string — наименование — обязательно: да*
POST/api/positions/removeУдалить должностьid: long — ID должности — обязательно: да
Расписания — эндпоинты и параметры
МетодЭндпоинтОписаниеПараметры
GET/api/schedules/findСписок расписанийid: array[long] — фильтр по ID — обязательно: нет
POST/api/schedules/saveСоздать/обновить расписаниеid: long — обновление — обязательно: нет
name: string — имя расписания — обязательно: да*
free: boolean — гибкий режим (true/false) — обязательно: нет
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 расписания — обязательно: да
Приложения и сайты — эндпоинты и параметры
МетодЭндпоинтОписаниеПараметры
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 — обязательно: да
Политики отвлечений — эндпоинты и параметры
МетодЭндпоинтОписаниеПараметры
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Список активностейusersId: array[long] — если нет agentsIdобязательно: да*
agentsId: array[long] — если нет usersIdобязательно: да*
startDate: string — дата начала — обязательно: да
endDate: string — дата окончания — обязательно: да
type: string — state|mouse|process|site|screen|keylogger|gpsобязательно: нет
order: string — asc | descобязательно: нет
limit: integer — лимит — обязательно: нет
offset: integer — смещение — обязательно: нет
search: string — строка поиска — обязательно: нет
includeTotal: boolean — вернуть счётчик — обязательно: нет
GET/api/activities/reportsОтчёты по активностямusersId: array[long] — обязательно: да
startDate: string — обязательно: нет
endDate: string — обязательно: нет
GET/api/activities/searchesПоисковые запросы пользователейusersId: array[long] — обязательно: да
startDate: string — обязательно: нет
endDate: string —обязательно: нет
GET/api/activities/keyloggerДанные кейлоггераusersId: array[long] — обязательно: да

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

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

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({...}) })

Получение и отображение скриншота

const { data } = await fetch(`${url}/api/activities/find?${params}`).then(r=>r.json());

const screenshotId = JSON.parse(data.data).file;

<img src={`${url}/api/resources/get?id=${screenshotId}&key=${key}`} />