HTTP Server API
1 Подключение к серверу
Операции по взаимодействию с сервером Revisor VMS производятся посредством HTTP API. Модуль, ответственный за HTTP-подключения (HTTP сервер), включен по умолчанию, принимая подключения на порту 11012. Изменить его настройки можно, воспользовавшись Мастером Настройки Сервера.
2 Общие параметры
Для всех команд взаимодействия с сервером требуется авторизация. Команды поддерживают авторизацию через URL, либо Basic Auth. Например, для команды “/rsapi/cameras” (загрузка камер), возможны следующие варианты:
URL Auth с паролем в чистом виде. К строке подключения добавляются параметры user и password, причем password не шифруется.
http://localhost:11012/rsapi/cameras?user=admin&password=123
URL Auth с зашифрованным в MD5 паролем. К строке подключения добавляются параметры user и password, причем password задан в виде хэша MD5. Обратите внимание, что при хэшировании используется Unicode, а не ASCII.
http://localhost:11012/rsapi/cameras?user=admin&password=1e00d0a88c54404910d7b21397c59b39
Хэш пароля можно получить, воспользовавшись утилитой RSInstall.exe, входящей в комплект поставки:
"C:\Program Files\Sagitech VMS\RSInstall.exe" -hashpassword test
Basic Auth. Осуществляется обычным для HTTP образом через поле Authorization запроса HTTP.
GET /rsapi/cameras/ HTTP/1.1
Authorization: Basic aHR0cHdhdGNoOmY=
Для всех команд может использоваться параметр rand, позволяющий избежать кэширования браузером.
http://localhost:11012/rsapi/cameras?user=admin&password=123&rand=12343
Для всех команд, использующих уникальный идентификатор камеры в системе, возможна замена идентификатора порядковым номером камеры в конфигурации.
http://localhost:11012/rsapi/mjpeg?id=1
3 Проверка авторизации
Команда:
/rsapi/auth
Описание:
Позволяет проверить правильность имени пользователя и пароля. Если авторизация прошла успешно, то возвращается HTTP 200 OK, если нет, 401 Unauthorized.
Пример запроса
GET http://localhost:11012/auth
4 Получение списка камер
Команда:
/rsapi/cameras
Описание:
Команда позволяет загрузить с сервера список камер в формате XML. Возможно указание формата времени – локальное время сервера или UTC.
Пример запроса
GET http://localhost:11012/rsapi/cameras{?timeKind=local/utc}
Пример ответа сервера (конфигурация из двух камер):
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Cameras>
<Camera>
<ID>6b658ca5-f23b-40fa-a898-4415ba93ac13</ID>
<Name>Beward B1062xx</Name>
<Description></Description>
<Disabled>false</Disabled>
<ModelName>Beward B1062xx</ModelName>
<ReceiveAudio>true</ReceiveAudio>
<SecondSourceEnabled>true</SecondSourceEnabled>
<PtzMoveEnabled>false</PtzMoveEnabled>
<PtzZoomEnabled>false</PtzZoomEnabled>
<ArchiveStart>2013-07-11T10:06:46.17</ArchiveStart>
<ArchiveEnd>2013-07-12T17:02:44.737</ArchiveEnd>
</Camera>
<Camera>
<ID>34690399-9a7a-4c1f-99ea-097498a84c0d</ID>
<Name>Beward BD4330RVZH</Name>
<Description></Description>
<Disabled>false</Disabled>
<ModelName>Beward BD4330xx</ModelName>
<ReceiveAudio>false</ReceiveAudio>
<SecondSourceEnabled>false</SecondSourceEnabled>
<PtzMoveEnabled>false</PtzMoveEnabled>
<PtzZoomEnabled>true</PtzZoomEnabled>
<ArchiveStart>2013-07-11T04:22:08.277</ArchiveStart>
<ArchiveEnd>2013-07-11T11:40:59.117</ArchiveEnd>
</Camera>
</Cameras>
Комментарии к полям:
- ID – уникальный идентификатор камеры в системе.
- Name – имя камеры.
- Description – описание камеры.
- Disabled – флаг, определяющий - отключена камера на сервере или нет.
- ModelName – название модели камеры.
- SecondSourceEnabled – флаг, равен “true”, если у камеры задано два источника.
- PtzMoveEnabled – флаг, равен “true”, если драйвер камеры поддерживает управление поворотным модулем PTZ.
- PtzZoomEnabled – флаг, равен “true”, если драйвер камеры поддерживает управление оптическим зумом PTZ
- ArchiveStart – дата и время начала записи по камере.
- ArchiveEnd – дата и время окончания записи по камере.
5 Получение списка идентификаторов недоступных камер
Команда:
/rsapi/unavailablecameraids
Описание:
Возвращает список идентификаторов камер, которые в данный момент недоступны (невозможно получить хотя бы один видео- или аудио- поток).
Пример запроса
GET http://localhost:11012/rsapi/unavailablecameraids
Пример ответа сервера:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<CameraIDs>
<CameraID>6c640962-7e41-49b7-9d40-09433eec6057</CameraID>
<CameraID>b4319e50-b99b-4057-b098-4e651179ef9c</CameraID>
</CameraIDs>
6 Получение состояния камеры
Команда:
/rsapi/camerastate?id=[CameraID]
Описание:
Возвращает состояние заданной камеры. Поле State может иметь одно из следующих значений: Disabled (отключена), Error (ошибка), RecordingIsOff (запись отключена), Writing (запись ведется), NotWriting (запись отключена).
Пример запроса
GET http://localhost:11012/rsapi/camerastate?id=a3300d2c-4771-4fcc-b31d-fe0085fc4712
Пример ответа сервера:
<CameraStateInfo>
<ID>a3300d2c-4771-4fcc-b31d-fe0085fc4712</ID>
<Name>FR-Camera</Name>
<FullGroupName>GroupN2</FullGroupName>
<State>Writing</State>
</CameraStateInfo>
7 Доступ к конфигурации web-интерфейса пользователя
Команда:
/rsapi/configuration/userwebconfig
Описание:
Сохраняет, возвращает или удаляет конфигурацию web-интерфейса пользователя используя REST API. Команда GET возвращает сохраненную конфигурацию, команда POST или PUT производит сохранение конфигурации, команда DELETE удаляет конфигурацию.
Пример запроса
GET http://localhost:11012/rsapi/configuration/userwebconfig
Пример ответа сервера:
<Configuration>
<Settings>
<SelectedProfileID>00000000-0000-0000-0000-000000000000</SelectedProfileID>
</Settings>
<ViewProfiles/>
</Configuration>
8 Запуск записи
Команда:
/rsapi/startrecord?id=[CameraID]&length=[timeduration]
Описание:
Включает запись данных с указанной камеры на запрошенное количество секунд.
Пример запроса
GET http://localhost:11012/rsapi/startrecord?id=7f019a68-c364-430e-9934-7dc458e98066&length=3600
Параметры:
- id – уникальный идентификатор камеры в системе.
- length – требуемая продолжительность записи в секундах. Возможные значения: от 10 до 86400.
9 Остановка записи
Команда:
/rsapi/stoprecord?id=[CameraID]
Описание:
Останавливает запись, запущенную командой или оператором. Запись, запущенная по детектору, либо ведущаяся в постоянном режиме, остановлена не будет.
Пример запроса
GET http://localhost:11012/rsapi/stoprecord?id=7f019a68-c364-430e-9934-7dc458e98066
Параметры:
- id – уникальный идентификатор камеры в системе.
10 Получение текущего кадра
Команда:
/rsapi/snapshot?id=[CameraId]{&viewSize=[width]x[height]}{&timeKind=local/utc}
Описание:
Получение одиночного текущего кадра с камеры в формате JPEG.
Пример запроса
GET http://localhost:11012/rsapi/snapshot?id=7f019a68-c364-430e-9934-7dc458e98066&viewSize=320x240
Параметры:
- id – уникальный идентификатор камеры в системе.
- viewSize – опциональный параметр, указывает на необходимость подстройки размеров кадра под размеры заданной области просмотра. Т.к. сжатие кадра производится с коэффициентом, который кратен 2, то подстройка происходит не до точных размеров области. Если параметр опущен, то команда вернет кадр в оригинальном разрешении.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
11 Получение видео в формате камеры
Команда:
/rsapi/stream?id=[CameraID]&framerate=[fps]&streamIndex=[StreamID]{&timeKind=local/utc}
Описание:
В ответ на данный запрос сервер начинает отправку видео по HTTP в том формате, в котором его отдает камера. Формат указывается в заголовке каждого кадра в поле Content-Type. Возможно одно из четырех значений. Для h.264 и mpeg4 также указывается тип кадра:
-
Content-Type: image/jpeg
-
Content-Type: rsvid/h264; frametype=I
-
Content-Type: rsvid/h265; frametype=I
-
Content-Type: rsvid/mpeg4; frametype=I
Пример запроса
GET http://localhost:11012/rsapi/stream?id=7f019a68-c364-430e-9934-7dc458e98066&framerate=10
Параметры:
- id – уникальный идентификатор камеры в системе.
- framerate – количество кадров в секунду.
- streamIndex – номер потока. Возможные значения: 0 – основной поток, 1 – дополнительный.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
12 Получение видео в формате MJPEG
Команда:
/rsapi/mjpeg?id=[CameraID]&framerate=[fps]{&viewSize=[width]x[height]}{&timeKind=local/utc}
Описание:
В ответ на данный запрос сервер начинает отправку видео в формате MJPEG. Если камера отдает видео в другом формате, то происходит его переупаковка.
Пример запроса
GET http://localhost:11012/rsapi/mjpeg?id=7f019a68-c364-430e-9934-7dc458e98066&framerate=10&viewSize=320x240
Параметры:
- id – уникальный идентификатор камеры в системе.
- framerate – количество кадров в секунду.
- viewSize – опциональный параметр, указывает на необходимость подстройки размеров видеопотока под размеры заданной области просмотра. Т.к. сжатие потока производится с коэффициентом, который кратен 2, то подстройка происходит не до точных размеров области. Если параметр опущен, то команда вернет видеопоток в оригинальном разрешении.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
13 Получение видео в формате MPEG-TS
Команда:
/rsapi/mpeg-ts/stream.m3u8?id=[CameraID]&streamIndex=[StreamID]
Описание:
В ответ на данный запрос сервер начинает отправку видео по HTTP в формате MPEG-TS. Функционал доступен только если камера кодирует видеопоток в H.264.
Пример запроса
GET http://localhost:11012/rsapi/mpeg-ts/stream.m3u8?id=7f019a68-c364-430e-9934-7dc458e98066
Параметры:
- id – уникальный идентификатор камеры в системе.
- streamIndex – номер потока. Возможные значения: 0 – основной поток, 1 – дополнительный.
14 Получение аудио в формате PCM или AAC
Команда:
/rsapi/audio?id=[CameraID]&format=[AudioFormat]
Описание:
В ответ на данный запрос сервер начинает отправку аудио по HTTP в заданном формате. Формат и параметры аудиокадра указывается в заголовке каждого кадра в поле Content-Type:
Content-Type: PCM; sampleFrequency=8000; bitsPerSample=16; numberOfChannels=1; specificParam=0
Пример запроса
GET http://localhost:11012/rsapi/audio?id=7f019a68-c364-430e-9934-7dc458e98066&format=PCM
Параметры:
- id – уникальный идентификатор камеры в системе.
- format – формат аудио. Возможные значения: PCM, AAC.
15 Управление PTZ
Команда:
/rsapi/ptzcontrol?id=[CameraID]&action=[Action]{&presetNum=[PresetNumber]}{&speed=[Скорость]}{&angle=[Угол]}
Описание:
Управление поворотным модулем и оптическим зумом камеры.
Пример запроса
GET http://localhost:11012/rsapi/ptzcontrol?id=b7893da9-572e-4ca9-aaa0-abdeb09ea55d&action=left
Параметры:
- id – уникальный идентификатор камеры в системе.
- action – необходимое действие PTZ. Возможные значения: Home, Right, RightUp, Up, LeftUp, Left, LeftDown, Down, RightDown, ZoomIn, ZoomOut, FocusIn, FocusOut, FocusAuto, IrisIn, IrisOut, IrisAuto, SetPreset, ClearPreset, CallPreset, StartMove, StopMove, StartZoomIn, StartZoomOut, StopZoom.
- presetNum – номер пресета для действий SetPreset, ClearPreset, CallPreset.
- speed – скорость движения или зума для действий StartMove, StartZoomIn, StartZoomOut. Возможные значения: от 1 до 5 для StartMove, от 1 до 3 для StartZoomIn или StartZoomOut.
- angle – угол поворота в градусах для действия StartMove. Возможные значения: от 0 до 360.
16 Получение текущих событий в режиме подписки
Команда:
/rsapi/getalarm{?level=[Level]}
Описание:
Получение тревожных событий и серверных уведомлений в реальном времени. При запросе устанавливается подключение, в которое пушатся события по мере их возникновения. Ограничение на длительность сессии отсутствует. События передаются в виде потока текстовых данных.
Пример запроса
GET http://localhost:11012/rsapi/getalarm?level=alarm{&timeKind=local/utc}
Пример ответа сервера:
HTTP/1.1 200 OK
Content-Type: multipart/x-mixed-replace;boundary=--myboundary
--myboundary
Content-Type: text/plain
Level=Alarm;Type=Sabotage;CameraID=df09b965-96bc-4604-9e34-32b071f282c4;EventID=221356db-ead7-4d07-b4be-297c29580a05;Time=2019-01-24T12:00:01
--myboundary
Content-Type: text/plain
--myboundary
Content-Type: text/plain
--myboundary
Content-Type: text/plain
Level=Notification;Type=LPR;CameraID=e84eac52-4f85-402c-9055-7a4b34360fa9;EventID=6fbaa45d-554f-4430-8486-bd5a92378a78;Time=2019-01-24T12:00:02;Plate=E436EP18
--myboundary
Content-Type: text/plain
.....
Параметры:
- level – опциональный параметр, позволяющий указать уровень тревожности события. Если не указан, будет отсылаться информация всех уровней тревожности. Возможные значения: alarm (тревога), notification (уведомление), error (ошибка).
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
17 Получение текущих событий в режиме опроса
Команда:
/rsapi/getcurrentevents?sessionid=[SessionID]{&timeKind=local/utc}
Описание:
Получение тревожных событий и серверных уведомлений в реальном времени. События передаются в виде XML. При первом запросе создается сессия с заданным идентификатором. При последующих запросах возвращаются события, произошедшие с момента последнего обращения в рамках заданной идентификатором сессии.
Пример запроса
GET http://localhost:11012/rsapi/getcurrentevents?sessionid={126C98F4-CE73-4825-B9FC-CAEF22AC146B}
Пример ответа сервера:
HTTP/1.1 200 OK
Content-Type: text/xml
<EventInfos>
<EventInfo>
<ID>6f87387e-3ea7-4bb2-b361-e3d786c157b9</ID>
<Type>LPR</Type>
<TypeDescription>License plate detected</TypeDescription>
<Level>Notification</Level>
<Time>2022-10-07T16:42:42.971</Time>
<CameraID>a33f8200-1b78-4021-8387-8cb5a71e51c5</CameraID>
<CameraName>LPR</CameraName>
<ShortDescription>O913XO18</ShortDescription>
<LongDescription>Plate: O913XO18 Direction: Top to down Passage:Undefined</LongDescription>
<CsvDescription>Plate=O913XO18;Direction=TopDown;Passage=None</CsvDescription>
<IsFrameAttached>false</IsFrameAttached>
<Rect/>
</EventInfo>
</EventInfos>
Параметры:
- sessionId – идентификатор сессии. Используется как для создания новой сессии, так и для поиска сессии при повторном обращении.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
18 Загрузка событий из архива
Команда:
/rsapi/searchevents?timeFrom={[StartTime]}{&timeTo=[EndTime]}{&levels=[Levels]}{&cameraids=[CameraIDList]}{&lastminutes=[Minutes]}{&timeKind=local/utc}
Описание:
Загрузка тревожных событий и серверных уведомлений из архива в формате XML.
Пример запроса
GET http://localhost:11012/rsapi/searchevents?lastminutes=30&levels=1,0
Пример ответа сервера:
HTTP/1.1 200 OK
Content-Type: text/xml
<EventInfos>
<EventInfo>
<ID>6f87387e-3ea7-4bb2-b361-e3d786c157b9</ID>
<Type>LPR</Type>
<TypeDescription>License plate detected</TypeDescription>
<Level>Notification</Level>
<Time>2022-10-07T16:42:42.971</Time>
<CameraID>a33f8200-1b78-4021-8387-8cb5a71e51c5</CameraID>
<CameraName>LPR</CameraName>
<ShortDescription>O913XO18</ShortDescription>
<LongDescription>Plate: O913XO18 Direction: Top to down Passage:
Undefined</LongDescription>
<CsvDescription>Plate=O913XO18;Direction=TopDown;Passage=None</CsvDescription>
<IsFrameAttached>false</IsFrameAttached>
<Rect/>
</EventInfo>
</EventInfos>
Параметры:
- timeFrom – начало временного интервала для загрузки данных. Не указывается, если задан параметр lastMinutes.
- timeTo – окончание временного интервала для загрузки данных. Не указывается, если задан параметр lastMinutes.
- levels – опциональный параметр, список уровней тревожности события через запятую.
- cameraIds – опциональный параметр, список идентификаторов камер через запятую.
- lastMinutes – альтернативный вариант указания временного интервала. Количество минут до текущего момента времени, за которое требуется загрузка данных.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
19 Получение кадра, привязанного к событию
Команда:
/rsapi/ geteventsnapshot?eventid=[EventID]&eventtime=[EventTime]{&timeKind=local/utc}
Описание:
Получение кадра, привязанного к заданному событию в формате JPEG.
Пример запроса
GET http://localhost:11012/rsapi/geteventsnapshot?eventid=221356db-ead7-4d07-b4be-297c29580a05&eventtime=2019-01-24T12:00:01
Параметры:
- eventid – уникальный идентификатор события в системе.
- eventtime – время возникновения события.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
Примечание
Применимо только к событиям от модулей распознавания автономеров, распознавания лиц, распознавания номеров вагонов.
20 Генерация события
Команда:
/rsapi/raiseevent{?timeKind=local/utc}
Описание:
Позволяет сгенерировать тревожное событие (или уведомление) на сервере. В теле запроса передается структура EventInfo, содержащая информацию о событии.
Пример запроса
POST http://localhost:11012/rsapi/raiseevent
Тело запроса:
Content-Type: text/xml
<EventInfo>
<ID>6f87387e-3ea7-4bb2-b361-e3d786c157b9</ID>
<Type>External</Type>
<Level>Alarm</Level>
<Time>2022-10-07T16:42:42.971</Time>
<CameraID>a33f8200-1b78-4021-8387-8cb5a71e51c5</CameraID>
<ExternalType>My event</ExternalType>
<Description>Something has happened</Description>
<FrameData>*[BASE64IMAGE]*</FrameData>
<Rect/>
</EventInfo>
Пример ответа сервера:
HTTP/1.1 200 OK
Параметры:
- ID – уникальный идентификатор события.
- Type – тип события. Поддерживается только значение “External” (событие от внешнего источника).
- Level – уровень тревожности (Notification/Alarm/Error).
- Time – время.
- TimeKind – формат времени – локальное время сервера (значение “Local”) или UTC (значение “UTC”).
- CameraID – уникальный идентификатор камеры (если требуется привязка события к камере, иначе - пустая срока).
- ExternalType – название (короткое описание) внешнего события.
- Description – расширенное описание внешнего события.
- FrameData – привязанное Jpeg-изображение в формате Base64 (опционально).
- Rect – координаты найденного на изображении объекта (опционально).
21 Архив: покадровая загрузка видео в формате JPEG
21.1 Инициализация сессии
Команда:
/rsapi/archive/start?id=[CameraID]&time=[Time]&direction=[DirectionOfPlay]{&timeKind=local/utc}
Описание:
Для начала проигрывания архива необходимо открыть сессию проигрывания при помощи данной команды.
Пример запроса
GET http://localhost:11012/rsapi/archive/start?id=b7893da9-572e-4ca9-aaa0-abdeb09ea55d&time=2013-01-24T12:00:01&direction=Forward
Пример ответа сервера:
sessionid=250a21a1-ec9c-49d3-a761-f3d50e1a635e
Параметры:
- id – уникальный идентификатор камеры в системе.
- time – время начала проигрывания в формате 2013-01-24T12:00:01, либо 2013/01/24T12:00:01.
- direction – направление проигрывания. Значения: Forward, Backward. Значение по умолчанию: Forward.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
Примечание
При отсутствии обращений к архиву сессия закрывается автоматически, поэтому даже при паузе необходимо раз в секунду загружать либо текущее изображение (speed=0), либо текущее время.
21.2 Получение текущего/следующего видеокадра
Команда:
/rsapi/archive/snapshot?sessionid=[ARCHIVESESSIONID]&speed=[Speed]{&viewSize=[width]x[height]}{&timeKind=local/utc}
Описание:
Получение текущего или следующего кадра архива в формате JPEG.
Пример запроса
GET http://localhost:11012/rsapi/archive/snapshot?sessionid=b7893da9-572e-4ca9-aaa0-abdeb09ea55d&viewSize=320x240
Параметры:
- sessionid – идентификатор сессии проигрывания архива.
- speed – скорость проигрывания, от 0 до 64. Если скорость равна 0, то будет возвращен текущий кадр. Значение по умолчанию: 1.
- viewSize – опциональный параметр, указывает на необходимость подстройки размеров кадра под размеры заданной области просмотра. Т.к. сжатие кадра производится с коэффициентом, который кратен 2, то подстройка происходит не до точных размеров области. Если параметр опущен, то команда вернет кадр в оригинальном разрешении.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
21.3 Получение текущего времени
Команда:
/rsapi/archive/time?sessionid=[ARCHIVESESSIONID]{&timeKind=local/utc}
Описание:
Получение текущего времени для данной сессии проигрывания архива.
Пример запроса
GET http://localhost:11012/rsapi/archive/time?sessionid=b7893da9-572e-4ca9-aaa0-abdeb09ea55d
Параметры:
- sessionid – идентификатор сессии проигрывания архива
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
21.4 Получение аудио кадров
Команда:
/rsapi/archive/audio?sessionid=[ARCHIVESESSIONID]&format=[FORMAT]
Описание:
Получение списка аудиокадров, актуальных на момент проигрывания заданной сессии. Формат и параметры аудиокадра указывается в заголовке каждого кадра в поле Content-Type.
Пример запроса
GET http://localhost:11012/rsapi/archive/audio?sessionid=b7893da9-572e-4ca9-aaa0-abdeb09ea55d?format=PCM
Параметры:
- sessionid – идентификатор сессии проигрывания архива.
- format – формат аудио. Возможные значения: PCM, AAC.
21.5 Закрытие сессии
Команда:
/rsapi/archive/stop?sessionid=[ARCHIVESESSIONID]
Описание:
Закрытие сессии проигрывания архива.
Пример запроса
GET http://localhost:11012/rsapi/archive/stop?sessionid=b7893da9-572e-4ca9-aaa0-abdeb09ea55d
Параметры:
- sessionid –идентификатор сессии проигрывания архива.
22 Архив: получение видеопотока в формате камеры
22.1 Инициализация сессии
Команда:
/rsapi/archive/stream/init?id=[CameraID]&startTime=[StartTime]&stopTime=[StopTime]&direction=[PlayDirection]&speed=[Speed]{&audioFormat=[AudioFormat]}{&timeKind=local/utc}
Описание:
В ответ на данный запрос сервер производит инициализацию сессии чтения архивного видео и аудио в том формате, в котором его отдает камера. В ответ будет возвращен идентификатор сессии, который можно использовать для получения видеопотока, а также постановки на паузу или изменения скорости проигрывания.
Пример запроса
Пример ответа сервера:
sessionid=250a21a1-ec9c-49d3-a761-f3d50e1a635e
Параметры:
- id – уникальный идентификатор камеры в системе.
- startTime – время начала проигрывания в формате 2013-01-24T12:00:01, либо 2013/01/24T12:00:01.
- stopTime – время окончания проигрывания в формате 2013-01-24T12:00:01, либо 2013/01/24T12:00:01 (если не задано - не останавливать проигрывание). Вместо данного параметра может использоваться альтернативный параметр “duration”, определяющий длительность записи относительно startTime (пример: duration=00:00:45).
- direction – направление проигрывания. Значения: Forward, Backward. Значение по умолчанию: Forward.
- speed - скорость проигрывания, от 0 до 64. Значение по умолчанию: 1. Если указана нулевая скорость, то в ответ на вызов /rsapi/archive/stream/get будет возвращен первый кадр, после чего выполнена постановка на паузу.
- audioFormat - формат аудио. Возможные значения: PCM, AAC. Если параметр не задан, отправка аудио происходить не будет.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
22.2 Получение видеопотока
Команда:
/rsapi/archive/stream/get?sessionid=[SessionID]{&timeKind=local/utc}
Описание:
В ответ на запрос сервер начнет отправку данных архива (видео и аудио). Формат кадра указывается в отдельном заголовке каждого кадра в поле Content-Type. Возможно одно из значений, представленных ниже. Дополнительные параметры кадров располагаются после точки с запятой и могут меняться в зависимости от настроек кодирования. Номер профиля AAC возвращается в переменной specificParam.
Content-Type: image/jpeg
Content-Type: rsvid/h264; frametype=I
Content-Type: rsvid/h265; frametype=I
Content-Type: rsvid/mpeg4; frametype=I
Content-Type: PCM; sampleFrequency=44100; bitsPerSample=16;
numberOfChannels=1
Content-Type: AAC; bitrate=64000; sampleFrequency=32000;
numberOfChannels=1; specificParam=0;
При постановке проигрывания на паузу или завершении проигрывания, сервер будет отправлять текстовый пакет с описанием состояния (“State=Paused” или “State=StreamEnd”):
--myboundary
Content-Type: text/html
Content-Length: 12
State=Paused
Пример запроса
GET http://localhost:11012/rsapi/archive/stream/get?sessionid=250a21a1-ec9c-49d3-a761-f3d50e1a635e
Параметры:
- sessionid – уникальный идентификатор сессии.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
22.3 Управление скоростью
Команда:
rsapi/archive/stream/update?sessionid=[SessionID]&speed=[Speed]
Описание:
Запрос позволяет изменить скорость получения потока, запрошенного через функцию /rsapi/archive/stream/get. При использовании нулевого значения для скорости, проигрывание потока будет поставлено на паузу. Для снятия с паузы необходимо выполнить запрос с ненулевой скоростью.
Пример запроса
GET http://localhost:11012/rsapi/archive/stream/update?sessionid= 84e7fe06-b75d-4439-b988-744b9edd00b4&speed=2
Параметры:
- sessionid – уникальный идентификатор сессии.
- speed - скорость проигрывания, от 0 (пауза) до 64.
22.4 Остановка потока
Команда:
/rsapi/archive/stream/stop?sessionid=[SessionID]
Описание:
Запрос позволяет закрыть сессию проигрывания архива.
Пример запроса
GET http://localhost:11012/rsapi/archive/stream/stop?sessionid= 84e7fe06-b75d-4439-b988-744b9edd00b4
Параметры:
- sessionid – уникальный идентификатор сессии.
23 Архив: получение видеопотока в формате MJPEG
Команда:
/rsapi/archive/mjpeg?id=[CameraID]&startTime=[StartTime]&stopTime=[StopTime]&direction=[PlayDirection]&speed=[Speed]{&viewSize=[width]x[height]}{&audioFormat=[AudioFormat]}{&timeKind=local/utc}
Описание:
Запрос архива в виде непрерывной последовательности JPEG-кадров.
Пример запроса
GET http://localhost:11012/rsapi/archive/mjpeg?id=b7893da9-572e-4ca9-aaa0-abdeb09ea55d&startTime=2013-01-24T12:00:01&direction=Forward&speed=2&viewSize=320x240
Параметры:
- id – уникальный идентификатор камеры в системе.
- startTime – время начала проигрывания в формате 2013-01-24T12:00:01, либо 2013/01/24T12:00:01.
- stopTime – время окончания проигрывания в формате 2013-01-24T12:00:01, либо 2013/01/24T12:00:01 (если не задано - не останавливать проигрывание). Вместо данного параметра может использоваться альтернативный параметр “duration”, определяющий длительность записи относительно startTime (пример: duration=00:00:45).
- direction – направление проигрывания. Значения: Forward, Backward. Значение по умолчанию: Forward.
- speed - скорость проигрывания, от 0.20 до 64. Значение по умолчанию: 1.
- viewSize – опциональный параметр, указывает на необходимость подстройки размеров видеопотока под размеры заданной области просмотра. Т.к. сжатие потока производится с коэффициентом, который кратен 2, то подстройка происходит не до точных размеров области. Если параметр опущен, то команда вернет видеопоток в оригинальном разрешении.
- audioFormat - формат аудио. Возможные значения: PCM, AAC. Если параметр не задан, отправка аудио происходить не будет.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
24 Архив: получение списка записей за дату
Команда:
/rsapi/archive/sequences?id=[CameraID]&date=[Date]{&timeKind=local/utc}
Описание:
Получение списка видеорядов (записей) для указанной камеры за указанную дату.
Пример запроса
GET http://localhost:11012/rsapi/archive/sequences?id=a5a3e771-d98a-4022-8799-6b150b699f7b&date=2017-09-21
Пример ответа сервера:
HTTP/1.1 200 OK
Content-Type: text/xml
<Sequences>
<Sequence>
<RecordStart>2017-09-20T18:48:43.277</RecordStart>
<RecordEnd>2017-09-20T18:48:57.647</RecordEnd>
<DiskID>809141b8-15b1-44eb-962b-12e7d6259f69</DiskID>
<Reason>Motion</Reason>
<IsFinished>true</IsFinished>
</Sequence>
<Sequence>
<RecordStart>2017-09-20T18:49:01.603</RecordStart>
<RecordEnd>2017-09-20T18:49:21.757</RecordEnd>
<DiskID>809141b8-15b1-44eb-962b-12e7d6259f69</DiskID>
<Reason>Motion</Reason>
<IsFinished>true</IsFinished>
</Sequence>
.....
</Sequences>
Параметры:
- id – уникальный идентификатор камеры в системе.
- date – дата в формате 2013-01-24, либо 2013/01/24.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC. Если указано время в формате UTC (“timeKind=UTC”), то необходимо заменить параметр “date” временными рамками экспорта (“&timeFrom=[TimeFrom]&timeTo=[TimeTo]”).
25 Экспорт архива
25.1 Инициализация
Команда:
/rsapi/archive/export/start?id=[СфьукфШВ]&startTime=[timeFrom]&endTime=[timeTo]{&timeKind=local/utc}
Описание:
Производит запуск экспорта участка архива камеры в файл MP4. В ответе возвращает идентификатор сессии экспорта.
Пример запроса
http://localhost:11012/rsapi/archive/export/start?id=04d1a4b0-c6af-40c4-adb8-28f59af19411&startTime=2022-05-27T15:00:00&endTime=2022-05-27T15:10:00
Пример ответа сервера:
sessionId=04d1a4b0-c6af-40c4-adb8-28f59af19411
Параметры:
- id – уникальный идентификатор камеры в системе.
- startTime – дата и время начала экспорта.
- endTime – дата и время окончания экспорта.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
25.2 Запрос состояния
Команда:
/rsapi/archive/export/status
Описание:
Возвращает состояние экспорта – статус (одно из значений: NotFound, Exporting, Error, Canceled, Success), процент выполнения и текст ошибки при ее наличии.
Пример запроса
http://localhost:11012/rsapi/archive/export/status?sessionId=c15b8ec2-ea1f-422b-a1ea-dd7dab810de7
Пример ответа сервера:
status=Exporting; percent=50
Параметры:
- sessionId –идентификатор сессии экспорта.
25.3 Загрузка файла
Команда:
/rsapi/archive/export/download
Описание:
Возвращает содержимое экспортированного файла. Для выполнения команды, экспорт должен быть завершен (состояние “Success”).
Пример запроса
http://localhost:11012/rsapi/archive/export/download?sessionId=c15b8ec2-ea1f-422b-a1ea-dd7dab810de7
Параметры:
- sessionId –идентификатор сессии экспорта.
25.4 Отмена
Команда:
/rsapi/archive/export/cancel
Описание:
Отменяет начатый экспорт, не дожидаясь окончания его выполнения.
Пример запроса
http://localhost:11012/rsapi/archive/export/cancel?sessionId=c15b8ec2-ea1f-422b-a1ea-dd7dab810de7
Параметры:
- sessionId –идентификатор сессии экспорта.
26 Экспорт одиночного кадра архива
Команда:
/rsapi/archive/exportsnapshot?id=[CameraId]&time=[Time]{&viewSize=[width]x[height]}{&timeKind=local/utc}
Описание:
Получение одиночного кадра из архива камеры в формате JPEG.
Пример запроса
GET http://localhost:11012/rsapi/archive/exportsnapshot?id=7f019a68-c364-430e-9934-7dc458e98066&time=2024-04-06T10:00&viewSize=320x240
Параметры:
- id – уникальный идентификатор камеры в системе.
- time – время.
- viewSize – опциональный параметр, указывает на необходимость подстройки размеров кадра под размеры заданной области просмотра. Т.к. сжатие кадра производится с коэффициентом, который кратен 2, то подстройка происходит не до точных размеров области. Если параметр опущен, то команда вернет кадр в оригинальном разрешении.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
27 Получение прав текущего пользователя
Команда:
/rsapi/configuration/users/roles/select
Описание:
Возвращает список прав пользователя, запустившего команду, в формате XML.
Пример запроса
http://localhost:11012/rsapi/configuration/users/roles/select
Пример ответа сервера:
<SecurityRoles>
<SecurityRole>
<ID>2435f711-e430-4b1f-8d32-a05936524588</ID>
<Name>Administration</Name>
</SecurityRole>
…
<SecurityRole>
<ID>70343d0b-6079-4c77-bc45-6902422bc18a</ID>
<Name>WebArchiveExport</Name>
</SecurityRole>
</SecurityRoles>
28 Получение списка камер
Команда:
/rsapi/configuration/cameras
Описание:
Возвращает XML-документ со списком камер.
Пример запроса
http://localhost:11012/rsapi/configuration/cameras
Пример ответа сервера:
<Cameras>
<Camera>
<ID>9436d3e1-0410-4cc1-8383-c88099a9d3f7</ID>
<Name>AXIS 211 - 00408C93666B - 192.168.1.87</Name>
<Description/>
<Address>192.168.1.87</Address>
<Port>80</Port>
<RtspPort>554</RtspPort>
<RtspUseUdp>false</RtspUseUdp>
<User>root</User>
<Password>admin</Password>
<CameraNumber>0</CameraNumber>
<ModelID>ef740a24-2f84-4f49-b481-009693b66514</ModelID>
<RecProfileID>b9884849-dfab-44fa-94d8-c42d68b70365</RecProfileID>
<ReceiveAudio>true</ReceiveAudio>
<Disabled>true</Disabled>
<UseIntelDecoder>false</UseIntelDecoder>
<ClientUseDXVA>false</ClientUseDXVA>
<ExternalAudioUrl>dshow://2</ExternalAudioUrl>
<ArchiveMinStorageHours>0</ArchiveMinStorageHours>
<ArchiveMaxStorageHours>0</ArchiveMaxStorageHours>
<BaseSource>
<Resolution/>
<Compression>Default</Compression>
<Fps>0</Fps>
<Protocol>Rtsp</Protocol>
<UrlParams/>
</BaseSource>
<SecoundSource/>
</Camera>
</Cameras>
29 Получение списка профилей отображения
Команда:
/rsapi/configuration/viewprofiles
Описание:
Возвращает XML-документ со списком профилей отображения (раскладок) пользователя, заданного параметрами авторизации.
Пример запроса
GET http://localhost:11012/rsapi/configuration/viewprofiles
Пример ответа сервера:
<ViewProfiles>
<ViewProfile>
<ID>ea7b4be3-25ff-4ca3-aff2-473020066baa</ID>
<Name>Profile 1 (1 x 1)</Name>
<RowCount>1</RowCount>
<ColumnCount>1</ColumnCount>
<Cells>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
</Cells>
</ViewProfile>
<ViewProfile>
<ID>799fa59f-23d2-4b55-a99b-4fcbe879ab02</ID>
<Name>Profile 3 (5 + 1)</Name>
<RowCount>3</RowCount>
<ColumnCount>3</ColumnCount>
<Cells>
<Cell>
<ColSpan>2</ColSpan>
<RowSpan>2</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
</Cells>
</ViewProfile>
</ViewProfiles>
30 Получение списка общих профилей отображения
Команда:
/rsapi/configuration/sharedviewprofiles
Описание:
Возвращает XML-документ со списком общих профилей отображения, доступных пользователю, заданному параметрами авторизации.
Пример запроса
GET http://localhost:11012/rsapi/configuration/sharedviewprofiles
Пример ответа сервера:
<ViewProfiles>
<ViewProfile>
<ID>ea7b4be3-25ff-4ca3-aff2-473020066baa</ID>
<Name>Profile 1 (1 x 1)</Name>
<RowCount>1</RowCount>
<ColumnCount>1</ColumnCount>
<Cells>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
</Cells>
</ViewProfile>
<ViewProfile>
<ID>799fa59f-23d2-4b55-a99b-4fcbe879ab02</ID>
<Name>Profile 3 (5 + 1)</Name>
<RowCount>3</RowCount>
<ColumnCount>3</ColumnCount>
<Cells>
<Cell>
<ColSpan>2</ColSpan>
<RowSpan>2</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
<Cell>
<ColSpan>1</ColSpan>
<RowSpan>1</RowSpan>
<CameraID>00000000-0000-0000-0000-000000000000</CameraID>
<SourceSwitchWidth>640</SourceSwitchWidth>
</Cell>
</Cells>
</ViewProfile>
</ViewProfiles>
31 Получение списка профилей записи
Команда:
/rsapi/configuration/recprofiles
Описание:
Возвращает XML-документ со списком профилей записи.
Пример запроса
GET http://localhost:11012/rsapi/configuration/recprofiles
Пример ответа сервера:
<RecProfiles>
<RecProfile>
<ID>b9884849-dfab-44fa-94d8-c42d68b70365</ID>
<Name>Record by motion detector</Name>
<Description/>
<Lines>
<Line>
<Days>127</Days>
<StartTime>00:00:00</StartTime>
<EndTime>00:00:00</EndTime>
<BaseSource>true</BaseSource>
<Fps>60</Fps>
<Type>Motion</Type>
<PreTime>5</PreTime>
<PostTime>10</PostTime>
</Line>
</Lines>
</RecProfile>
</RecProfiles>
32 Получение списка дисков
Команда:
/rsapi/configuration/disks
Описание:
Возвращает XML-документ со списком зарегистрированных в системе дисков.
Пример запроса
http://localhost:11012/rsapi/configuration/disks
Пример ответа сервера:
<Disks>
<Disk>
<ID>e2170d0a-7979-4dd2-be69-732ae703550e</ID>
<Name>D:\\/Name>
<Description/>
<Disabled>false</Disabled>
<Quota>0</Quota>
</Disk>
</Disks>
33 Получение списка пользовательских действий
Команда:
/rsapi/configuration/useractions
Описание:
Возвращает XML-документ со списком пользовательских действий.
Пример запроса
GET http://localhost:11012/rsapi/configuration/useractions
Пример ответа сервера:
<UserActions>
<UserAction>
<ID>ccf157b2-b6a6-4235-a369-04d1c8b98cf9</ID>
<Name>Action1</Name>
<Description/>
<Disabled>false</Disabled>
</UserAction>
</UserActions>
34 Запуск пользовательского действия на исполнение
Команда:
/rsapi/configuration/useractions/execute
Описание:
Запускает заданное пользовательское действие.
Пример запроса
GET http://localhost:11012/rsapi/configuration/useractions/execute?id=ccf157b2-b6a6-4235-a369-04d1c8b98cf9
Параметры:
- id – уникальный идентификатор действия в системе.
35 Запрос базовых настроек
Команда:
/rsapi/configuration/appconfig
Описание:
Возвращает базовые настройки приложения, которые находятся в файле config/Revisor.config.
Пример запроса
POST http://localhost:11012/rsapi/configuration/appconfig
Пример ответа сервера:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
<configuration>
<appSettings>
<!-- Common variables. -->
<add key="Port" value="11011"/>
<add key="InterfaceLanguage" value="English"/>
<add key="PreferFFmpegVideoDecoder" value="yes"/>
<add key="PreferFFmpegAudioDecoder" value="yes"/>
<!-- Server variables. -->
<add key="HttpPort" value="11012"/>
<add key="HttpSourceSwitchWidth" value="640"/>
<add key="HttpsPort" value=""/>
<add key="HttpsCertificate" value=""/>
<add key="RtspPort" value=""/>
<add key="BindTo" value="Dns"/>
<add key="CreateFirewallRules" value="yes"/>
<add key="SkipBrokenJpegOverRtspFrames" value="no"/>
<add key="SkipBrokenH264OverRtspSequences" value="no"/>
<add key="EnableArchiveRecompression" value="yes"/>
<add key="MobileHighResolution" value="800x480"/>
<add key="MobileHighFps" value="15"/>
<add key="MobileMediumResolution" value="320x240"/>
<add key="MobileMediumFps" value="5"/>
<!-- Client variables. -->
<add key="DisableScreenSaver" value="yes"/>
</appSettings>
</configuration>
36 Прием события от системы RDC RFID
Команда:
/rsapi/modules/rdc_rfid
Описание:
Функция, вызываемая системой RDC RFID для передачи события на сервер.
Пример запроса
GET http://localhost:11012/rsapi/modules/rdc_rfid
37 Проверка доступности модуля видеоаналитики
Команда:
/rsapi/modules/getcanaccessmodule?moduleId=[moduleID]
Описание:
Функция позволяет проверить, установлен ли заданный модуль аналитики и есть ли у запрашивающего пользователя права на работу с ним.
Пример запроса
GET http://localhost:11012/rsapi/modules/getcanaccessmodule?moduleId= 12F7CDA9-EC68-4FA0-A14F-F1C86E22088C
Параметры:
- moduleId – уникальный идентификатор модуля, например 12F7CDA9-EC68-4FA0-A14F-F1C86E22088C для модуля автономеров, или EE272D1D-B29A-4EA3-84EB-6E62B45519AB для модуля распознавания лиц.
38 Модуль подсчета посетителей
38.1 Получение состояния
Команда:
/rsapi/modules/counter/getstats
Описание:
Возвращает XML-документ, содержащий информацию по состоянию модулей подсчета посетителей на всех камерах.
Пример запроса
GET http://localhost:11012/rsapi/modules/counter/getstats
Пример ответа сервера:
<CameraStates>
<CameraState>
<CameraID>2771ed81-dddc-42ed-af3f-b04a4b478b1c</CameraID>
<LastResetTime>2020-03-20T11:50:26.591</LastResetTime>
<In>20</In>
<Out>10</Out>
</CameraState>
<CameraState>
<CameraID>a10c06b5-3399-44be-934b-49e0bda892c7</CameraID>
<LastResetTime>2020-03-20T11:50:26.591</LastResetTime>
<In>15</In>
<Out>12</Out>
</CameraState>
</CameraStates>
38.2 Сброс состояния
Команда:
/rsapi/modules/counter/reset
Описание:
Сбрасывает состояние модуля подсчета посетителей на всех камерах.
Пример запроса
GET http://localhost:11012/rsapi/modules/counter/reset
38.3 Построение отчета
Команда:
/rsapi/modules/counter/report
Описание:
Возвращает статистические данные о людях, входящих в контролируемую зону, выходящих из неё и находящихся внутри неё. Если параметр summarizeCameras установлен в true, данные агрегируются по всем выбранным камерам вместо возврата отдельных данных по каждой камере.
Тело запроса:
{
"timeFrom": "string",
"timeTo": "string",
"axisXsize": "string",
"cameraIds": ["string"],
"weekdays": ["string"],
"dayStartTime": "string",
"dayEndTime": "string",
"summarizeCameras": true
}
Параметры запроса:
- timeFrom - Начало отчётного периода.
- timeTo - Конец отчётного периода.
- axisXsize - Временной масштаб для группировки данных отчёта. Допустимые значения: Minute, Hour, Day, Week, Month.
- cameraIds - Список идентификаторов камер, которые нужно включить в отчёт. Если null, включаются все - доступные камеры.
- weekdays - Список дней недели, которые нужно включить в фильтр отчёта. Если null, включаются все дни.
- dayStartTime - Время начала дневного интервала, используемого для фильтрации.
- dayEndTime - Время окончания дневного интервала, используемого для фильтрации.
- summarizeCameras - Если true, агрегирует данные со всех выбранных камер в один результат. Если false, возвращает данные отдельно по каждой камере.
Пример запроса
POST http://localhost:11012/rsapi/modules/counter/report
Тело запроса:
{
"timeFrom": "2026-03-06T00:00:00",
"timeTo": "2026-03-06T23:59:59",
"axisXsize": "day",
"cameraIds": [
"cd949313-fd85-4b53-9c68-197c3dd3aec7"
],
"weekdays": [
"friday"
],
"dayStartTime": "08:00",
"dayEndTime": "20:00",
"summarizeCameras": true
}
Пример ответа сервера:
{
"reportName": "PeopleCounter",
"period": {
"from": "2026-02-01T00:00:00",
"to": "2026-02-07T23:59:59"
},
"columns": [
{ "key": "in", "name": "In" },
{ "key": "out", "name": "Out" },
{ "key": "inside", "name": "Inside" }
],
"rows": [
{
"cameraName": "Camera 1",
"2026-05": { "In": 50, "Out": 40, "Inside": 10 },
"2026-06": { "In": 30, "Out": 25, "Inside": 5 }
},
{
"cameraName": "Camera 2",
"2026-05": { "In": 20, "Out": 18, "Inside": 2 },
"2026-06": { "In": 15, "Out": 14, "Inside": 1 }
}
]
}
Описание полей:
- reportName - Имя отчёта (PeopleCounter)
- period.from - Начало отчётного периода (ISO yyyy-MM-ddTHH : mm : ss)
- period.to - Конец отчётного периода
- columns - Колонки данных (In, Out, Inside)
- columns.key - Идентификатор колонки
- columns.name - Отображаемое имя колонки
- rows - Строки данных по камерам и интервалам
- rows.cameraName - Имя камеры
- rows.[axis] - Данные за интервал (час/день/неделя/месяц)
- rows.[axis].In - Количество входов
- rows.[axis].Out - Количество выходов
- rows.[axis].Inside - Количество людей внутри зоны
Форматы интервалов по оси X:
- Hour - yyyy-MM-dd HH:00:00
- Day - yyyy-MM-dd
- Week - yyyy-weekNumber (например, 2026-10)
- Month - yyyy-MM
39 Модуль обнаружения очереди: получение состояния
Команда:
/rsapi/modules/queue/getstats
Описание:
Возвращает XML-документ, содержащий информацию по состоянию модулей обнаружения очереди на всех камерах.
Пример запроса
GET http://localhost:11012/rsapi/modules/queue/getstats
Пример ответа сервера:
<CameraStates>
<CameraState>
<CameraID>1998454d-ac0b-4437-8a05-a679a8863805</CameraID>
<ZoneStates>
<ZoneState>
<ZoneIndex>1</ZoneIndex>
<QueueLength>4</QueueLength>
<IsQueue>false</IsQueue>
</ZoneState>
<ZoneState>
<ZoneIndex>2</ZoneIndex>
<QueueLength>4</QueueLength>
<IsQueue>false</IsQueue>
</ZoneState>
</ZoneStates>
</CameraState>
</CameraStates>
40 Модуль HeatMap: построение тепловой карты
Команда:
/rsapi/modules/heatmap/build?id=[CameraID]& timeFrom=[dtFrom]&timeTo=[dtTo] {&weekDays=[weekD]}{&dayStartTime=[dtStart]}{&dayEndTime=[dtEnd]}{&opacity=[opac]}{&timeKind=local/utc}
Описание:
Построение тепловой карты для заданной камеры за заданный промежуток времени. Запрос возвращает изображение в формате JPEG.
Пример запроса
GET http://localhost:11012/rsapi/modules/heatmap/build?id=01e5d104-79a5-449d-b888-daa317035a2e&timeFrom=2025-08-27T10:00&timeTo=2025-08-27T18:00&weekDays=Monday,Tuesday,Wednesday&dayStartTime=08:00&dayEndTime=18:00&opacity=0.75&timekind=utc
Параметры:
- id – уникальный идентификатор камеры в системе.
- timeFrom – начало временного интервала, за который загружаются данные.
- timeTo – окончание временного интервала, за который загружаются данные.
- weekDays – опциональный параметр, указывает дни недели, за которые необходимо загружать данные. Значения разделяются запятой. Возможные значения: All (по умолчанию - все дни недели), Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
- dayStartTime – опциональный параметр, начало дневного интервала времени (например, начала рабочего дня).
- dayEndTime - опциональный параметр, окончание дневного интервала времени (например, конца рабочего дня).
- opacity - опциональный параметр, прозрачность тепловой карты при наложении поверх текущего кадра. Возможные значения: от 0.1 до 0.9. Значение по умолчанию: 0.5.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
41 Модуль распознавания автономеров
41.1 Работа с картотекой
Команда:
/rsapi/modules/lpr/owners
Описание:
Позволяет взаимодействовать с картотекой модуля распознавания автономеров через REST API.
Примечание
Для команд GET, POST, PUT, DELETE возможно указание идентификатора карточки в URL. В случае GET это позволяет получить только одну карточку из списка. Для остальных команд это оставлено для совместимости и не является обязательным.
Пример запроса
http://localhost:11012/rsapi/modules/lpr/owners/5925d527-48c6-4b67-816c-e13aca2944b4.
Варианты:
- GET - получение списка или отдельного элемента.
Пример запроса
GET http://localhost:11012/rsapi/modules/lpr/owners
Ответ:
<LPROwners>
<LPROwner>
<ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
<FirstName>Ivan</FirstName>
<FamilyName>Ivanov</FamilyName>
<MiddleName/>
<Plate>H097XO166</Plate>
<Model/>
<VinCode/>
<WorkPlace/>
<Position/>
<Phone/>
<Description/>
<GroupIDs>
<GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
</GroupIDs>
<Pass>
<ID>90e0b1f4-fca3-4d74-92cc-8e9ead07df8a</ID>
<PeriodStartTime/>
<PeriodEndTime/>
<DayStartTime>08:00:00</DayStartTime>
<DayEndTime>20:00:00</DayEndTime>
<Days>All</Days>
<MaxPassages>0</MaxPassages>
<MaxInsideSameGroup>0</MaxInsideSameGroup>
<Description/>
</Pass>
</LPROwner>
</LPROwners>
- POST – добавление карточки.
Пример запроса
POST http://localhost:11012/rsapi/modules/lpr/owners
Тело запроса:
<LPROwner>
<ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
<FirstName>Ivan/FirstName>
<FamilyName>Ivan</FamilyName>
<MiddleName/>
<Plate>H097XO166</Plate>
<Model/>
<VinCode/>
<WorkPlace/>
<Position/>
<Phone/>
<Description/>
<GroupIDs>
<GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
</GroupIDs>
<Pass>
<ID>90e0b1f4-fca3-4d74-92cc-8e9ead07df8a</ID>
<PeriodStartTime/>
<PeriodEndTime/>
<DayStartTime>08:00:00</DayStartTime>
<DayEndTime>20:00:00</DayEndTime>
<Days>All</Days>
<MaxPassages>0</MaxPassages>
<MaxInsideSameGroup>0</MaxInsideSameGroup>
<Description/>
</Pass>
</LPROwner>
- PUT – редактирование карточки.
Пример запроса
PUT http://localhost:11012/rsapi/modules/lpr/owners
Тело запроса:
<LPROwner>
<ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
<FirstName>Ivan</FirstName>
<FamilyName>Ivanov</FamilyName>
<MiddleName/>
<Plate>H097XO166</Plate>
<Model/>
<VinCode/>
<WorkPlace/>
<Position/>
<Phone/>
<Description/>
<GroupIDs>
<GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
</GroupIDs>
<Pass/>
</LPROwner>
- DELETE – удаление карточки.
Запрос, вариант 1 (с идентификатором в теле запроса)
DELETE http://localhost:11012/rsapi/modules/lpr/owners
Тело запроса:
<LPROwnerId>5925d527-48c6-4b67-816c-e13aca2944b4</LPROwnerId>
Запрос, вариант 2 (с идентификатором в URL)
DELETE http://localhost:11012/rsapi/modules/lpr/owners/5925d527-48c6-4b67-816c-e13aca2944b4
41.2 Работа с группами
Команда:
/rsapi/modules/lpr/groups
Описание:
Позволяет взаимодействовать с группами модуля распознавания автономеров через REST API. Поддерживаемые команды HTTP:
- GET – получение списка или отдельного элемента;
- POST – добавление группы;
- PUT – редактирование группы;
- DELETE – удаление группы.
Примечание
Для команд GET, POST, PUT, DELETE возможно указание идентификатора карточки в URL. В случае GET это позволяет получить только одну группу из списка. Для остальных команд это оставлено для совместимости и не является обязательным.
Пример запроса
GET http://localhost:11012/rsapi/modules/lpr/groups/5925d527-48c6-4b67-816c-e13aca2944b4.
Пример запроса
GET http://localhost:11012/rsapi/modules/lpr/groups
Пример ответа сервера на запрос GET:
<LPRGroups>
<LPRGroup>
<ID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</ID>
<Name>White</Name>
<Color>FFFFFFFF</Color>
</LPRGroup>
<LPRGroup>
<ID>8a41c537-c50f-497e-a05e-a0347f4de893</ID>
<Name>Control</Name>
<Color>FFFF8080</Color>
</LPRGroup>
<LPRGroup>
<ID>efe05502-591c-473f-a07e-7586b65a707b</ID>
<Name>Black</Name>
<Color>FF000000</Color>
</LPRGroup>
</LPRGroups>
41.3 Информация о парковке
Команда:
/rsapi/modules/lpr/parkinginfo
Описание:
Возвращает информацию о машинах, находящихся на территории парковки. Также возвращает размер парковки (количество машиномест, заданное в конфигурационном файле LPR.config).
Пример запроса
GET http://localhost:11012/rsapi/modules/lpr/parkinginfo
Пример ответа сервера:
<ParkingInfo>
<ParkingSize>100</ParkingSize>
<LPRInsideInfos>
<LPRInsideInfo>
<ID>4627daf4-1700-4607-a6ec-bc000e8e274d</ID>
<Plate>H097XO18</Plate>
<EntranceTime>12.07.2023 23:54:06</EntranceTime>
<CameraID>4ddf26b5-1241-4b8b-84a8-50fa06624c36</CameraID>
</LPRInsideInfo>
<LPRInsideInfo>
<ID>095ccca5-24c4-420e-a7f2-b81aba6a2200</ID>
<Plate>C677EP18</Plate>
<EntranceTime>12.07.2023 23:54:18</EntranceTime>
<CameraID>4ddf26b5-1241-4b8b-84a8-50fa06624c36</CameraID>
</LPRInsideInfo>
</LPRInsideInfos>
</ParkingInfo>
42 Модуль распознавания лиц
42.1 Работа с картотекой
Команда:
/rsapi/modules/fr/persons
Описание:
Позволяет взаимодействовать с картотекой модуля распознавания лиц через REST API.
Примечание
Для команд GET, POST, PUT, DELETE возможно указание идентификатора карточки в URL. В случае GET это позволяет получить только одну карточку из списка. Для остальных команд это оставлено для совместимости и не является обязательным.
Пример запроса
GET http://localhost:11012/rsapi/modules/fr/persons/5925d527-48c6-4b67-816c-e13aca2944b4.
Варианты:
- GET - получение списка или отдельного элемента. Возможно указание флага sendphotos для отправки сервером привязанных к карточке фотографий в блоке Photos.
Пример запроса
GET http://localhost:11012/rsapi/modules/fr/persons?sendphotos=1
Ответ:
<FRPersons>
<FRPerson>
<ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
<FirstName>Ivan</FirstName>
<FamilyName>Ivanov</FamilyName>
<MiddleName/>
<WorkPlace/>
<Position/>
<Phone/>
<CardNumber>110</CardNumber>
<CardVersion>0</CardVersion>
<Description/>
<GroupIDs>
<GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
</GroupIDs>
<Photos>
<Photo>*[BASE64IMAGE]*</Photo>
</Photos>
</FRPerson>
</FRPersons>
- POST – добавление карточки.
Примечание
Блок Photos не является обязательным.
Пример запроса
POST http://localhost:11012/rsapi/modules/fr/persons
Тело запроса:
<FRPerson>
<ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
<FirstName>Ivan</FirstName>
<FamilyName>Ivanov</FamilyName>
<MiddleName/>
<WorkPlace/>
<Position/>
<Phone/>
<CardNumber>110</CardNumber>
<CardVersion>0</CardVersion>
<Description/>
<GroupIDs>
<GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
</GroupIDs>
<Photos>
<Photo>*[BASE64IMAGE]*</Photo>
</Photos>
</FRPerson>
- PUT – редактирование карточки.
Примечание
Блок Photos не является обязательным.
Пример запроса
PUT http://localhost:11012/rsapi/modules/fr/persons
Тело запроса:
<FRPerson>
<ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
<FirstName>Ivan</FirstName>
<FamilyName>Ivanov</FamilyName>
<MiddleName/>
<WorkPlace/>
<Position/>
<Phone/>
<CardNumber>110</CardNumber>
<CardVersion>0</CardVersion>
<Description/>
<GroupIDs>
<GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
</GroupIDs>
<Photos>
<Photo>*[BASE64IMAGE]*</Photo>
</Photos>
</FRPerson>
- DELETE – удаление карточки.
Запрос, вариант 1 (с идентификатором в теле запроса)
DELETE http://localhost:11012/rsapi/modules/fr/persons
Тело запроса:
<FRPersonId>5925d527-48c6-4b67-816c-e13aca2944b4</FRPersonId>
Запрос, вариант 2 (с идентификатором в URL)
DELETE http://localhost:11012/rsapi/modules/fr/persons/5925d527-48c6-4b67-816c-e13aca2944b4
42.2 Работа с группами
Команда:
/rsapi/modules/fr/groups
Описание:
Позволяет взаимодействовать с группами модуля распознавания лиц через REST API. Поддерживаемые команды HTTP:
- GET – получение списка или отдельного элемента;
- POST – добавление группы;
- PUT – редактирование группы;
- DELETE – удаление группы.
Примечание
Для команд GET, POST, PUT, DELETE возможно указание идентификатора карточки в URL. В случае GET это позволяет получить только одну группу из списка. Для остальных команд это оставлено для совместимости и не является обязательным.
Пример запроса
GET http://localhost:11012/rsapi/modules/fr/groups/5925d527-48c6-4b67-816c-e13aca2944b4.
Пример запроса
GET http://localhost:11012/rsapi/modules/fr/groups
Пример ответа сервера на запрос GET:
<FRGroups>
<FRGroup>
<ID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</ID>
<Name>White</Name>
<Color>FFFFFFFF</Color>
</FRGroup>
<FRGroup>
<ID>8a41c537-c50f-497e-a05e-a0347f4de893</ID>
<Name>Control</Name>
<Color>FFFF8080</Color>
</FRGroup>
<FRGroup>
<ID>efe05502-591c-473f-a07e-7586b65a707b</ID>
<Name>Black</Name>
<Color>FF000000</Color>
</FRGroup>
</FRGroups>
42.3 Верификация по номеру карты СКУД
Команда:
/rsapi/modules/fr/checkpresence
Описание:
Позволяет произвести верификацию – проверку соответствия лица перед объективом камеры (параметр CameraID). Сверка производится по номеру карты СКУД, переданному в теле POST-запроса. Ответ содержит значение четырех переменных:
- Result – строковое значение результата. Возможные значения: MatchPositive (лицо однозначно сопоставлено), NoCardInDB (карточка с заданным идентификатором в базе данных не найдена), NoPhotoInCard (карточка с заданным идентификатором найдена, но фото к карточке не привязано), NoFaceDetected (лицо в видеопотоке не обнаружено), MatchNegative (лицо не сопоставлено ни с одной картой в БД), MatchIncorrect (лицо сопоставлено с другой картой в БД).
- ResultCode – цифровое значение результата. Возможные знаяения: 0 (MatchPositive), 1 (NoCardInDB), 2 (NoPhotoInCard), 3 (NoFaceDetected), 4 (MatchNegative), 5 (MatchIncorrect).
- MatchFactor – точность, с которой сопоставлено лицо.
- MatchCardNumber – номер карты СКУД, с которой сопоставлено лицо.
Пример запроса
POST http://localhost:11012/rsapi/modules/fr/checkpresence
Тело запроса:
CameraID={1B8E4CB5-FCDF-4FC3-A45C-F21065CFEE71}
CardNumber=110
Пример ответа сервера:
Result=MatchPositive
ResultCode=0
MatchFactor=99
MatchCardNumber=110
42.4 Верификация по фотографии
Команда:
/rsapi/modules/fr/checkfacepresence
Описание:
Позволяет произвести верификацию – проверку соответствия лица перед объективом камеры (параметр CameraID) лицу на переданной в запросе фотографии. Изображение кодируется в Base64 и передается в теле POST-запроса, в виде строки «ImageData=[Base64Image]». Ответ содержит значение четырех переменных:
- Result – строковое значение результата. Возможные значения: MatchPositive (лицо однозначно сопоставлено), NoFaceDetected (лицо в видеопотоке не обнаружено), MatchNegative (лицо перед объективом камеры не соответствует лицу на переданном изображении).
- ResultCode – цифровое значение результата. Возможные знаяения: 0 (MatchPositive), 3 (NoFaceDetected), 4 (MatchNegative).
- MatchFactor – точность, с которой сопоставлено лицо.
Пример запроса
POST http://localhost:11012/rsapi/modules/fr/checkfacepresence
Тело запроса:
CameraID={1B8E4CB5-FCDF-4FC3-A45C-F21065CFEE71}
ImageData=*[Base64Image]*
Пример ответа сервера:
Result=MatchPositive
ResultCode=0
MatchFactor=99
42.5 Распознавание по команде из внешней системы
Команда:
/rsapi/modules/fr/ondemand
Описание:
Позволяет произвести распознавание лица перед объективом камеры. Используется при выбранном в настройках модуля режиме «Распознавание по запросу» (в данном режиме модуль производит анализ лиц перед объективом только по внешней команде, остальное время проводит в ожидании). В качестве параметров передаются идентификатор запроса в произвольном формате (переменная RequestID), таймаут в милисекундах на поиск лица в кадре (переменная Timeout) и идентификатор камеры (CameraID). Команда завершается сразу, не возвращая результат распознавания, однако переданный идентификатор запроса привязывается к событию распознавания лица и может быть получен как через сценарии, так и через команду подписки на события от сервера.
Пример запроса
POST http://localhost:11012/rsapi/modules/fr/ondemand
Тело запроса:
CameraID={1B8E4CB5-FCDF-4FC3-A45C-F21065CFEE71}
RequestID=123-ABC
Timeout=10000
42.6 Подписка на события
Команда:
/rsapi/modules/fr/events?format=[Format]
Пример запроса 1
GET http://localhost:11012/rsapi/modules/fr/events?format=plain
Пример ответа сервера 1:
HTTP/1.1 200 OK
Content-Type: multipart/x-mixed-replace;boundary=--myboundary
--myboundary
Content-Type: text/plain
level=Notification;type=FaceRecognition;cameraId=a3300d2c-4771-4fcc-b31d-fe0085fc4712;eventId=cf647529-372a-455a-9129-175b758f4dfc;time=2020-04-14T17:34:00.140;personId=9515ac2c-e34d-4b2a-a051-35fbea17efe2;recognized=true;passage=None;realtime=2020-04-14T17:33:59.363;state=unknown;requestId=;factor=99.33;cardNumber="101"
--myboundary
Content-Type: text/plain
…
Пример запроса 2
GET http://localhost:11012/rsapi/modules/fr/events?format=json
Пример ответа сервера 2:
HTTP/1.1 200 OK
Content-Type: multipart/x-mixed-replace;boundary=--myboundary
--myboundary
Content-Type: application/json
{
"level": "Notification",
"type": "FaceRecognition",
"cameraId": "a3300d2c-4771-4fcc-b31d-fe0085fc4712",
"eventId": "20b175af-7741-493b-af08-796818682614",
"time": "2020-04-14T17:24:19.452",
"personId": "946d5717-e2c7-4f7b-b85b-da6361d4bf53",
"recognized": "true",
"passage": "None",
"realtime": "2020-04-14T17:24:19.024",
"state": "unknown",
"requestId": "",
"factor": 99.0,
"cardNumber": "111"
}
--myboundary
Content-Type: application/json
…
Описание:
Возвращает в реальном времени события от модуля распознавания лиц.
Параметры:
- format – вариант форматирования. Поддерживаемые значения: plain (по умолчанию), json.
42.7 Загрузка событий из архива
Команда:
/rsapi/modules/fr/searchevents?{timeFrom=[dtFrom]}{&timeTo=[dtTo]}{&levels=[Lvl]}{&cameraids=[CameraIDs]}{&lastminutes=[min]}{&timeKind=local/utc}{&sendFaces=[sendFaces]}{&personFullName=[Name]}{&personDescription=[Desc]}{&isRecognized=[isRec]}{&passage=[pass]}{&gender=[gen]}{&mask=[mask]}{&state=[state]}{&groupIds=[groupdIDs]}{&fromAge=[ageFrom]}{&toAge=[ageTo]}{&extendedValue=[ext]}
Описание:
Загружает из архива и возвращает список событий модуля распознавания лиц в соответствии с заданными фильтрами.
Пример запроса
http://localhost:11012/rsapi/modules/fr/searchevents?timeFrom=2025-08-27&timeTo=2025-08-27&personfullname=Test
Пример ответа сервера:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Items>
<Item>
<EventID>84796b4b-cf94-48dc-890d-3802f2ba7c05</EventID>
<HostID>35e3e8df-55c4-4803-83ab-1682a48ca5a6</HostID>
<Time>2025-08-27T16:13:16.043</Time>
<CameraID>3e1c9b57-b02d-46d8-a144-200d72fb08f3</CameraID>
<CameraName>FR</CameraName>
<PersonID>b31f5929-fe27-49bf-b138-7ddc14fb262b</PersonID>
<PersonName>Test Person</PersonName>
<GroupNames></GroupNames>
<Description></Description>
<WorkPlace></WorkPlace>
<Position></Position>
<CardNumber></CardNumber>
<IsRecognized>True</IsRecognized>
<State>Unknown</State>
<StateString>Unknown</StateString>
<Factor>0</Factor>
<Passage>None</Passage>
<Age>0</Age>
<Gender>Unknown</Gender>
<GenderString>Unknown</GenderString>
<Ethnicity>Unknown</Ethnicity>
<EthnicityString>Unknown</EthnicityString>
<Mask>Unknown</Mask>
<MaskString>Unknown</MaskString>
<Temperature>0</Temperature>
<LivenessFactor />
<Level>Notification</Level>
<LevelString>Information</LevelString>
<Rect>
<X>48.75</X>
<Y>53.125</Y>
<Width>11.71875</Width>
<Height>16.666666</Height>
</Rect>
<FaceJpegData />
</Item>
</Items>
Параметры:
- timeFrom – начало временного интервала для загрузки данных. Не указывается, если задан параметр lastMinutes.
- timeTo – окончание временного интервала для загрузки данных. Не указывается, если задан параметр lastMinutes.
- levels – опциональный параметр, список уровней тревожности события через запятую.
- cameraIds – опциональный параметр, список идентификаторов камер через запятую.
- lastMinutes – альтернативный вариант указания временного интервала. Количество минут до текущего момента времени, за которое требуется загрузка данных.
- timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
- sendFaces – опциональный параметр, указывает необходимость отправки фотографий лиц. Возможные значения: true, false.
- personFullName - опциональный параметр, фильтр по имени сотрудника.
- personDescription - опциональный параметр, фильтр по описанию сотрудника.
- isRecognized - опциональный параметр, фильтр по статусу распознавания. Возможные значения: true, false.
- passage - опциональный параметр, фильтр по направлению прохода. Возможные значения: None, Entrance, Exit.
- gender - опциональный параметр, фильтр по полу. Возможные значения: Unknown, Female, Male.
- mask - опциональный параметр, фильтр по наличию маски. Возможные значения: Unknown, Detected, NotDetected.
- state - опциональный параметр, фильтр по состоянию. Возможные значения: Unknown, Draft, ReEntrance, Duplicate, MatchPositive, MatchIncorrect, MatchNegative, PPEApproved, PPERejected, PPETimeout, Edited.
- groupIds - опциональный параметр, фильтр по идентификатором групп (указываются через запятую).
- fromAge - опциональный параметр, фильтр по возрасту, нижняя граница.
- toAge - опциональный параметр, фильтр по возрасту, верхняя граница. extendedValue - опциональный параметр, фильтр значению дополнительного поля.
42.8 Аналитика посетителей: получение состояния
Команда:
/rsapi/modules/fr/analytics/getstats
Описание:
Возвращает XML-документ, содержащий информацию по состоянию аналитики посетителей на всех камерах.
Пример запроса
GET http://localhost:11012/rsapi/modules/fr/analytics/getstats
Пример ответа сервера:
<CameraStates>
<CameraState>
<CameraID>3e1c9b57-b02d-46d8-a144-200d72fb08f3</CameraID>
<LastResetTime>2025-12-04T18:18:18.532</LastResetTime>
<Results>
<Result>
<Type>In</Type>
<Value>2</Value>
</Result>
<Result>
<Type>Gender_Male</Type>
<Value>2</Value>
</Result>
<Result>
<Type>Age_25_34</Type>
<Value>1</Value>
</Result>
<Result>
<Type>Age_18_24</Type>
<Value>1</Value>
</Result>
</Results>
</CameraState>
</CameraStates>
42.9 Аналитика посетителей: сброс состояния
Команда:
/rsapi/modules/fr/analytics/reset
Описание:
Сбрасывает состояние аналитики посетителей на всех камерах.
42.10 Аналитика посетителей: построение отчета
Команда:
/rsapi/modules/fr/analytics/report
Описание:
Возвращает данные аналитики распознавания лиц для выбранных камер и заданного периода времени.
Отчёт поддерживает несколько типов аналитики:
- InOut — статистика входов/выходов
- Unique — уникальные посетители
- Gender — распределение по полу
- Age — распределение по возрасту
- Combined — комбинированные аналитические данные
Тело запроса:
{
"timeFrom": "string",
"timeTo": "string",
"axisXsize": "string",
"summarizeCameras": true,
"reportType": "string",
"cameraIds": ["string"]
}
Параметры запроса:
- timeFrom - Начало отчётного периода.
- timeTo - Конец отчётного периода.
- axisXsize - Временной масштаб для группировки данных отчёта. Допустимые значения: Minute, Hour, Day, Week, Month.
- summarizeCameras - Если true, агрегирует данные со всех выбранных камер в один результат. Если false, возвращает данные отдельно по каждой камере.
- reportType - Тип аналитических данных, которые нужно вернуть. Допустимые значения: InOut, Gender, Unique, Age, Combined.
- cameraIds - Список идентификаторов камер, которые нужно включить в отчёт. Пустой список означает все камеры.
Пример запроса
POST http://localhost:11012/rsapi/modules/fr/analytics/report
Тело запроса:
{
"timeFrom": "2026-03-06T00:00:00",
"timeTo": "2026-03-06T23:59:59",
"axisXsize": "Day",
"summarizeCameras": true,
"reportType": "Combined",
"cameraIds": [
"cd949313-fd85-4b53-9c68-197c3dd3aec7"
]
}
Пример ответа сервера:
{
"reportName": "FRCounter",
"reportType": "InOut",
"period": {
"from": "2026-02-01T00:00:00",
"to": "2026-02-07T23:59:59"
},
"columns": [
{ "key": "cameraName", "title": "Camera" },
{ "key": "timeStart", "title": "Start" },
{ "key": "timeEnd", "title": "End" },
{ "key": "in", "title": "In" },
{ "key": "out", "title": "Out" }
],
"rows": [
{
"cameraName": "Camera 1",
"timeStart": "2026-02-01",
"timeEnd": "2026-02-02",
"in": 10,
"out": 7
},
{
"cameraName": "Camera 2",
"timeStart": "2026-02-01",
"timeEnd": "2026-02-02",
"in": 5,
"out": 3
}
]
}
Описание полей:
- reportName - Имя отчёта (FRCounter)
- reportType - Тип аналитики (InOut, Unique, Gender, Age, Combined)
- period.from - Начало отчётного периода (ISO yyyy-MM-ddTHH : mm : ss)
- period.to - Конец отчётного периода
- columns - Список колонок отчёта
- columns.key - Идентификатор колонки
- columns.title - Отображаемое имя колонки
- rows - Строки с данными по камерам и интервалам
- rows.cameraName - Имя камеры
- rows.timeStart - Начало интервала
- rows.timeEnd - Конец интервала
- rows.in - Количество входов
- rows.out - Количество выходов
- rows.unique - Количество уникальных лиц (тип Unique)
- rows.male / rows.female - Количество по полу (тип Gender)
- rows.age_0_17 … rows.age_65_plus - Возрастные группы (тип Age или Combined)
- rows.unknown - Неопределённый возраст (тип Age или Combined)