Интеграция 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 необходимо:
-
Получить ключ API_KEY в личном кабинете администратора в Настройки - Интеграции - API ключ
-
Использовать данный ключ в каждом запросе к 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 — по флагу сбора статистики (необязательно)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 POST /api/users/removeBatch- Удаление пакетно пользователей
ids: array[long] — Массив ID пользователей для удаления (обязательно)
События календаря — эндпоинты и параметры
GET /api/users/events/find- Получить список событий календаря
userId: long — ID пользователя (необязательно)startDate: string — дата начала "yyyy-MM-dd HHss" (обязательно)
endDate: string — дата окончания "yyyy-MM-dd HHss" (обязательно)
type: string — фильтр по типам событий (например:productive,distractions,vacation) (необязательно)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/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- Получить список агентов
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 агента (обязательно)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) (необязательно)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/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- Список активностей
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] — (обязательно)startDate: string — (необязательно)endDate: string — (необязательно)incidents: boolean — только инциденты (необязательно)POST /api/activities/screenshots- OCR по скриншотам
usersId: array[long] — (обязательно)search: string — строка поиска (обязательно)startDate: string — (необязательно)endDate: string — (необязательно)- Требуется опция
screenshotSearchServiceUrl GET /api/activities/logs- Логи агентов/интеграций
agentsId: array[long] — (обязательно)type: string —agent|domain(обязательно)startDate: string — (обязательно)endDate: string — (обязательно)order: string — (необязательно)limit: integer — (необязательно)offset: integer — (необязательно)
Ресурсы — эндпоинты и параметры
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 ресурса (обязательно)
Примеры запросов
Создание отдела
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}`} />