[ REST API ]
Vision API
Видеоаналитика и CV-события (REST + Webhooks)
Подключайте RTSP/H.264-потоки с существующих камер, получайте события детекции (СИЗ, трафик, номера, аномалии) и интегрируйте их в СКУД, ERP или дашборды через REST и webhooks. Задержка обработки на Edge — до 100 мс.
Базовый URL
https://vision.a5x.pro/apiAuthorization: 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
| Поле | Тип | Описание |
|---|---|---|
traffic | scenario | Подсчёт уникального трафика, тепловые карты, очереди. |
ppe | scenario | Контроль СИЗ: каски, жилеты, маски, перчатки. |
safety | scenario | Огонь, задымление, падение, запретные зоны. |
lpr | scenario | Распознавание госномеров и контейнеров. |
barcode | scenario | Штрихкоды и маркировки на складе. |
Cloud / Edge
- Edge-агент на объекте: буферизация при потере связи, отправка метаданных и снимков в A5X Cloud.
- В облаке — дашборды, агрегаты трафика, SLA-алерты и REST API для интеграций.
Регистрация видеопотока
https://vision.a5x.pro/api/v1/streamsПодключение RTSP-камеры и выбор сценариев аналитики.
| Поле | Тип | Описание |
|---|---|---|
name* | string | Человекочитаемое имя камеры. |
rtsp_url* | string | URL RTSP-потока (H.264). |
scenarios* | string[] | Список сценариев: traffic, ppe, safety, lpr, barcode. |
site_id | string | ID объекта / филиала в вашей системе. |
geo | object | Опциональные координаты и этаж для карт. |
201 Created
{
"id": "STR_01",
"name": "Склад — ворота A",
"status": "connecting",
"scenarios": ["ppe", "intrusion"],
"created_at": "2026-06-27T12:00:00Z"
}Коды ответов
| HTTP | error.code | Ситуация |
|---|---|---|
| 201 | — | Поток принят, идёт подключение. |
| 400 | invalid_rtsp | Неверный URL или неподдерживаемый кодек. |
| 401 | invalid_api_key | Ключ недействителен. |
| 402 | stream_limit_exceeded | Превышен лимит камер по тарифу. |
Статус потока
https://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"
}События детекции
https://vision.a5x.pro/api/v1/eventsВыборка событий CV за период: нарушения СИЗ, срабатывания зон, распознанные номера.
| Поле | Тип | Описание |
|---|---|---|
stream_id | string | Фильтр по камере. |
scenario | string | traffic | ppe | safety | lpr | barcode. |
from | datetime | Начало периода (ISO 8601, UTC). |
to | datetime | Конец периода (ISO 8601, UTC). |
limit | integer | До 100. По умолчанию 50. |
cursor | string | Пагинация: 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
https://vision.a5x.pro/api/v1/webhooksПодписка на push-уведомления о событиях. A5X отправляет POST на ваш URL с подписью HMAC-SHA256 в заголовке X-A5X-Signature.
| Поле | Тип | Описание |
|---|---|---|
url* | string | HTTPS endpoint вашей системы. |
events* | string[] | Фильтр типов: ppe.violation, safety.intrusion, traffic.hourly, … |
secret | string | Секрет для проверки подписи (опционально, генерируется автоматически). |
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)
https://vision.a5x.pro/api/v1/analytics/trafficПочасовые и дневные агрегаты: уникальные посетители, длина очереди, конверсия зон.
| Поле | Тип | Описание |
|---|---|---|
stream_id* | string | Камера входной группы. |
granularity | string | hour | 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 }
]
}