Авторизация и формат
Защищённые методы используют:
Authorization: Bearer YOUR_API_KEY
Также поддерживается заголовок X-API-Key. Актуальные scopes:
access.decide — Принятие решения доступа
camera.ingest — Приём распознанных номеров от камер
qr.scan — Приём QR-кодов от считывателей
Успешный ответ
{"success":true,"data":{},"meta":{}}
Ошибка
{"success":false,"message":"Описание ошибки","errors":[]}
HTTP 401 — ключ отсутствует/не подходит scope; 403 — лицензия не подтверждена; 404 — объект не найден; 422 — некорректные входные данные.
GET /api/v1/content
Универсальное чтение разрешённого контента с пагинацией. Этот метод в текущей версии работает без API-key; разрешённые таблицы и поля ограничивает Content API.
| Параметр | Описание |
| table | Разрешённый ресурс. |
| fields | Список полей через запятую. |
| order_by | Поле сортировки. |
| order | asc / desc. |
| limit | Размер страницы. |
| page | Номер страницы от 1. |
GET /api/v1/content?table=passes&fields=id,plate_number,status&order_by=id&order=desc&limit=20&page=1
GET /api/v1/access/event
Scopes: camera.ingest или access.decide. Основная единая точка входа камеры в AutoGate 1.3.8.
Ключ можно передать через Authorization: Bearer ..., X-API-Key либо параметр api_key, если камера не умеет задавать заголовки.
GET /api/v1/access/event?api_key=KEY&plate_number=A123BC77&access_point_id=1&direction=in&camera_id=3&confidence=97.4
Названия параметров plate_number, access_point_id, direction, event_time и attachments настраиваются глобально. Камера также может иметь собственное сопоставление полей в JSON-настройках http_input.
POST /api/v1/access/event — обычная форма
Content-Type: application/x-www-form-urlencoded
api_key=KEY
plate_number=A123BC77
access_point_id=1
direction=in
camera_id=3
attachments=https://camera.local/snapshot/123.jpg
POST /api/v1/access/event — JSON
{
"plate_number":"A123BC77",
"access_point_id":1,
"direction":"in",
"camera_id":3,
"event_time":"2026-08-18 14:30:00",
"confidence":98.2,
"attachments":"https://camera.local/image.jpg"
}
POST /api/v1/access/event — изображение multipart/form-data
Content-Type: multipart/form-data
plate_number = A123BC77
access_point_id = 1
direction = in
camera_id = 3
attachments = [JPEG / PNG / WEBP file]
По умолчанию бинарный снимок принимается через $_FILES['attachments']. Если камера отправляет не файл, а строку/URL, значение принимается через $_POST['attachments']. Имя поля может быть изменено в настройках.
Единый pipeline
HTTP камера
→ нормализация номера
→ Decision / Policy Engine
→ проверка оплаты
→ запись access_events
→ уведомления
→ HTTP Relay GET/POST
→ JSON ответ камере
Таким образом журнал событий и движок решений — одна операция. Модуль HTTP Relay получает событие access.decision и может отправить результат во внешнее реле/контроллер.
Пример ответа
{
"success": true,
"data": {
"event_id": 1042,
"decision": "allow",
"reason": "access_granted",
"plate_number": "A123BC77",
"pass_id": 25,
"access_point_id": 1,
"direction": "in",
"event_time": "2026-08-18 14:30:00",
"attachment_url": "/uploads/access-events/..."
}
}
Если выезд платный и оплата отсутствует, decision=deny, причина — payment_required. После оплаты следующий запрос камеры проходит повторную проверку.
Совместимость с AutoGate 1.3.5
Старые URL сохранены, но внутри вызывают тот же единый Access Gateway:
GET|POST /api/v1/access/decide
GET|POST /api/v1/cameras/plate
Для новых интеграций рекомендуется использовать /api/v1/access/event.
Demo mode
Демо-режим 1.3.8 выполняет настоящий HTTP GET на /api/v1/access/event. Он создаёт последовательные сценарии въезда/выезда и проходит те же проверки бесплатных минут, платного пребывания, платного въезда, кассы, уведомлений и HTTP Relay, что и реальная камера.
POST /api/v1/qr/scan
Scope: qr.scan
Приём автомобильного или пешего QR. Поле можно передать как qr_token, qr или token.
{
"qr_token":"AUTOGATE:VEHICLE:...",
"access_point_id":1,
"direction":"in"
}
Автомобильный QR возвращает номер и pass_id. Пеший — ФИО, идентификатор, pedestrian_pass_id и ID события.