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 необходимо:
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 агента — обязательно: да |
| Метод | Эндпоинт | Описание | Параметры |
|---|---|---|---|
| GET | /api/agents/domains/find | Список интеграций AD | — |
| POST | /api/agents/domains/save | Создать/обновить интеграцию AD | id: long — обновление — обязательно: нетcontroller: string — контроллер домена — обязательно: нетdomain: string — домен (если нет id) — обязательно: да*login: string — логин (если нет id) — обязательно: да*password: string — пароль — обязательно: нетorganizationalUnits: string(JSON) — например ["/Groups/Developers"] — обязательно: нетcreateDepartments: boolean — создавать отделы по OU — обязательно: нет |
| POST | /api/agents/domains/remove | Удалить интеграцию AD | id: 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}`} />