Alertas
Configure regras para ser notificado quando placas específicas são detectadas.
Scopes: alerts:read (listar) · alerts:write (criar, atualizar, excluir)
Listar alertas
GET /api/alertas
curl "https://api.placaflow.com.br/api/alertas" \
-H "Authorization: Bearer pk_a1b2c3d4..."
Resposta 200:
{
"alerts": [
{
"id": "a1b2c3d4-...",
"name": "Intruso noturno",
"description": "Alerta para placas desconhecidas à noite",
"enabled": true,
"plateMatchMode": "allowlist",
"plates": ["ABC1D23", "XYZ9K87"],
"cameraScope": "all",
"cameraIds": [],
"scheduleEnabled": true,
"schedule": {
"startTime": "22:00",
"endTime": "06:00",
"daysOfWeek": []
},
"minConfidence": 0.8,
"cooldownMinutes": 5,
"notifications": [
{ "type": "email", "addresses": ["seguranca@empresa.com"] },
{ "type": "webhook", "url": "https://api.example.com/hook" }
],
"triggerCount": 42,
"lastTriggeredAt": "2026-03-22T03:15:00.000Z",
"createdAt": "2026-03-01T10:00:00.000Z"
}
]
}
Criar alerta
POST /api/alertas
Content-Type: application/json
Campos:
| Campo | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
name | string | sim | — | Nome do alerta |
description | string | não | "" | Descrição |
enabled | boolean | não | true | Alerta ativo |
plateMatchMode | "any" | "specific" | "allowlist" | não | "specific" | Modo de correspondência |
plates | string[] | não | [] | Lista de placas |
cameraScope | "all" | "specific" | não | "all" | Escopo de câmeras |
cameraIds | string[] | não | [] | UUIDs das câmeras (quando scope é "specific") |
scheduleEnabled | boolean | não | false | Restrição de horário |
schedule.startTime | string | não | "00:00" | Início (HH:mm) |
schedule.endTime | string | não | "23:59" | Fim (HH:mm) |
schedule.daysOfWeek | string[] | não | [] | Dias: mon, tue, wed, thu, fri, sat, sun. Vazio = todos |
minConfidence | number | não | 0.5 | Confiança mínima (0-1) |
cooldownMinutes | number | não | 5 | Tempo entre disparos |
notifications | array | não | [] | Canais de notificação |
Modos de correspondência
| Modo | Comportamento | Quando usar |
|---|---|---|
any | Dispara para qualquer placa | Monitoramento noturno, detecção de intrusão |
specific | Dispara apenas para placas na lista | Alerta de VIP, veículo procurado |
allowlist | Dispara para placas NÃO na lista | Detecção de estranhos |
Exemplo:
curl -X POST "https://api.placaflow.com.br/api/alertas" \
-H "Authorization: Bearer pk_a1b2c3d4..." \
-H "Content-Type: application/json" \
-d '{
"name": "Moradores",
"plateMatchMode": "specific",
"plates": ["ABC1D23", "XYZ9K87"],
"notifications": [
{"type": "webhook", "url": "https://api.example.com/cancela"}
]
}'
Atualizar alerta
PUT /api/alertas/:id
Content-Type: application/json
Envie apenas os campos que deseja alterar.
Excluir alerta
DELETE /api/alertas/:id
Erros
| Código | Descrição |
|---|---|
| 400 | Nome obrigatório ausente |
| 401 | Não autenticado |
| 404 | Alerta não encontrado |