GET /api/cameras
Retorna todas as câmeras do usuário autenticado, ordenadas por data de criação (mais recentes primeiro).
Autenticação
Scope necessário: cameras:read
Inclua o header Authorization: Bearer <api-key> ou use cookie de sessão.
Requisição
GET /api/cameras
Headers
| Header | Obrigatório | Descrição |
|---|---|---|
Authorization | sim | Bearer pk_... (API key) ou cookie de sessão |
Exemplo
curl "https://api.placaflow.com.br/api/cameras" \
-H "Authorization: Bearer pk_a1b2c3d4e5f6g7h8i9j0..."
Resposta 200
{
"cameras": [
{
"id": "7012e192-5005-43b6-978c-7e304b3676a6",
"userId": "c3a1e902-4f5b-4b8a-9c6d-1a2b3c4d5e6f",
"createdAt": "2026-03-20T10:00:00.000Z",
"updatedAt": "2026-03-21T15:30:00.000Z",
"enabled": true,
"name": "Entrada principal",
"location": "Portão A",
"rtspUrl": "rtsp://admin:pass@192.168.1.200:554/stream",
"rtspTransport": "tcp",
"roi": null,
"minConfidence": 0.7,
"motionDetectionEnabled": true,
"motionDetectorType": "framediff",
"motionThresholdPercent": 0.01,
"motionFramesRequired": 1,
"decodeMode": "auto",
"frameIntervalMs": 200,
"frameSkip": 0,
"crop": true,
"cropResolution": "640x360",
"processingMode": "disk",
"queueSize": 100,
"jpegQuality": 100,
"snapshotUrl": null,
"lastSnapshotAt": "2026-03-22T14:30:00.000Z"
},
{
"id": "a8b9c0d1-2345-6789-abcd-ef0123456789",
"userId": "c3a1e902-4f5b-4b8a-9c6d-1a2b3c4d5e6f",
"createdAt": "2026-03-18T08:00:00.000Z",
"updatedAt": "2026-03-18T08:00:00.000Z",
"enabled": true,
"name": "Saída veículos",
"location": "Portão B",
"rtspUrl": "rtsp://admin:pass@192.168.1.201:554/stream",
"rtspTransport": "tcp",
"roi": null,
"minConfidence": 0.5,
"motionDetectionEnabled": true,
"motionDetectorType": "framediff",
"motionThresholdPercent": 0.01,
"motionFramesRequired": 1,
"decodeMode": "auto",
"frameIntervalMs": 200,
"frameSkip": 0,
"crop": true,
"cropResolution": "640x360",
"processingMode": "disk",
"queueSize": 100,
"jpegQuality": 100,
"snapshotUrl": null,
"lastSnapshotAt": "2026-03-22T14:25:00.000Z"
}
]
}
Campos de cada câmera
| Campo | Tipo | Descrição |
|---|---|---|
id | string | UUID único da câmera |
userId | string | UUID do proprietário |
createdAt | string | Data de criação ISO 8601 |
updatedAt | string | Data da última atualização ISO 8601 |
enabled | boolean | Câmera ativa ou desativada |
name | string | Nome da câmera |
location | string | Localização física |
rtspUrl | string | URL do stream RTSP |
rtspTransport | "tcp" | "udp" | Protocolo de transporte RTSP |
roi | object? | Região de interesse (coordenadas do polígono) |
minConfidence | number | Confiança mínima para aceitar reconhecimento (0-1) |
motionDetectionEnabled | boolean | Detecção de movimento ativa |
motionDetectorType | "mog2" | "framediff" | Algoritmo de detecção de movimento |
motionThresholdPercent | number | Threshold de detecção de movimento |
motionFramesRequired | number | Frames consecutivos com movimento necessários |
decodeMode | "auto" | "gpu" | "cpu" | Modo de decodificação de vídeo |
frameIntervalMs | number | Intervalo entre capturas de frames (ms) |
frameSkip | number | Número de frames ignorados entre capturas |
crop | boolean | Se deve recortar a região da placa |
cropResolution | "426x240" | "640x360" | "1280x720" | Resolução do recorte |
processingMode | "blocking" | "queue" | "disk" | Modo de processamento de frames |
queueSize | number | Tamanho da fila de processamento |
jpegQuality | number | Qualidade JPEG (1-100) |
snapshotUrl | string? | URL do último snapshot |
lastSnapshotAt | string? | Data/hora do último snapshot ISO 8601 |
Erros
| Código | Descrição |
|---|---|
| 401 | Não autenticado ou API key inválida |
| 403 | API key não possui scope cameras:read |