[ REST API ]

Vision API

Видеоаналитика и CV-события (REST + Webhooks)

Подключайте RTSP/H.264-потоки с существующих камер, получайте события детекции (СИЗ, трафик, номера, аномалии) и интегрируйте их в СКУД, ERP или дашборды через REST и webhooks. Задержка обработки на Edge — до 100 мс.

Базовый URL

https://vision.a5x.pro/api

Authorization: Bearer YOUR_API_KEY. Ключ выдаётся в личном кабинете после подключения модуля A5X Vision.

Быстрый старт

curl -X POST "https://vision.a5x.pro/api/v1/streams" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Склад — ворота A",
    "rtsp_url": "rtsp://user:pass@192.168.1.10:554/stream1",
    "scenarios": ["ppe", "intrusion"]
  }'

Сценарии CV

ПолеТипОписание
trafficscenarioПодсчёт уникального трафика, тепловые карты, очереди.
ppescenarioКонтроль СИЗ: каски, жилеты, маски, перчатки.
safetyscenarioОгонь, задымление, падение, запретные зоны.
lprscenarioРаспознавание госномеров и контейнеров.
barcodescenarioШтрихкоды и маркировки на складе.

Cloud / Edge

  • Edge-агент на объекте: буферизация при потере связи, отправка метаданных и снимков в A5X Cloud.
  • В облаке — дашборды, агрегаты трафика, SLA-алерты и REST API для интеграций.

Регистрация видеопотока

POSThttps://vision.a5x.pro/api/v1/streams

Подключение RTSP-камеры и выбор сценариев аналитики.

Параметры запроса
ПолеТипОписание
name*stringЧеловекочитаемое имя камеры.
rtsp_url*stringURL RTSP-потока (H.264).
scenarios*string[]Список сценариев: traffic, ppe, safety, lpr, barcode.
site_idstringID объекта / филиала в вашей системе.
geoobjectОпциональные координаты и этаж для карт.

201 Created

{
  "id": "STR_01",
  "name": "Склад — ворота A",
  "status": "connecting",
  "scenarios": ["ppe", "intrusion"],
  "created_at": "2026-06-27T12:00:00Z"
}

Коды ответов

HTTPerror.codeСитуация
201Поток принят, идёт подключение.
400invalid_rtspНеверный URL или неподдерживаемый кодек.
401invalid_api_keyКлюч недействителен.
402stream_limit_exceededПревышен лимит камер по тарифу.

Статус потока

GEThttps://vision.a5x.pro/api/v1/streams/{stream_id}

Текущее состояние подключения, активные сценарии и последняя активность.

200 OK

{
  "id": "STR_01",
  "status": "online",
  "fps": 25,
  "latency_ms": 87,
  "last_event_at": "2026-06-27T17:42:13Z"
}

События детекции

GEThttps://vision.a5x.pro/api/v1/events

Выборка событий CV за период: нарушения СИЗ, срабатывания зон, распознанные номера.

Параметры запроса
ПолеТипОписание
stream_idstringФильтр по камере.
scenariostringtraffic | ppe | safety | lpr | barcode.
fromdatetimeНачало периода (ISO 8601, UTC).
todatetimeКонец периода (ISO 8601, UTC).
limitintegerДо 100. По умолчанию 50.
cursorstringПагинация: cursor из предыдущего ответа.

200 OK

{
  "items": [
    {
      "id": "EVT_8842",
      "stream_id": "STR_01",
      "scenario": "ppe",
      "type": "safety_vest_missing",
      "confidence": 0.94,
      "occurred_at": "2026-06-27T17:42:13Z",
      "snapshot_url": "https://vision.a5x.pro/media/snapshots/EVT_8842.jpg",
      "metadata": { "zone": "Zone_A" }
    }
  ],
  "next_cursor": "eyJpZCI6Ijg4NDIifQ"
}

Webhooks

POSThttps://vision.a5x.pro/api/v1/webhooks

Подписка на push-уведомления о событиях. A5X отправляет POST на ваш URL с подписью HMAC-SHA256 в заголовке X-A5X-Signature.

Параметры запроса
ПолеТипОписание
url*stringHTTPS endpoint вашей системы.
events*string[]Фильтр типов: ppe.violation, safety.intrusion, traffic.hourly, …
secretstringСекрет для проверки подписи (опционально, генерируется автоматически).

Payload webhook

{
  "event_id": "EVT_8842",
  "type": "ppe.violation",
  "stream_id": "STR_01",
  "occurred_at": "2026-06-27T17:42:13Z",
  "payload": {
    "violation": "safety_vest_missing",
    "zone": "Zone_A"
  }
}

Агрегаты трафика (Retail)

GEThttps://vision.a5x.pro/api/v1/analytics/traffic

Почасовые и дневные агрегаты: уникальные посетители, длина очереди, конверсия зон.

Параметры запроса
ПолеТипОписание
stream_id*stringКамера входной группы.
granularitystringhour | day. По умолчанию hour.
from*dateНачало периода.
to*dateКонец периода.

200 OK

{
  "stream_id": "STR_02",
  "granularity": "hour",
  "series": [
    { "bucket": "2026-06-27T17:00:00Z", "unique_visitors": 142, "avg_queue_sec": 38 }
  ]
}