API / Webhooks
Documentação para integração com o Observatório UAP Brasil. Nossa API permite que automações externas (n8n, Make, Zapier, scripts próprios) enviem notícias, casos históricose relatos para a fila de moderação do observatório.
Endpoint de ingestão
Endpoint único que aceita os três tipos de conteúdo. Toda submissão entra como pendente e só é publicada após aprovação por um moderador.
POST https://observatoriouapbrasil.com.br/api/public/webhooks/ingest1. Autenticação
Cada requisição deve enviar uma chave de API gerada pelo administrador em Painel Administrativo → Webhooks → Chaves de API. A chave é mostrada uma única vez; guarde-a com segurança.
Authorization: Bearer whk_live_xxxxxxxxxxxxxxxxxxxxxxxx Content-Type: application/json
2. Envelope da requisição
{
"type": "news" | "historical_case" | "report",
"data": { ... } // estrutura específica do tipo (ver abaixo)
}3. Notícia (type: "news")
{
"type": "news",
"data": {
"title": "Título da notícia",
"subtitle": "Subtítulo opcional",
"content": "Conteúdo completo (markdown ou texto)",
"author": "Nome do autor",
"category": "Avistamentos",
"tags": ["uap", "ovni", "brasil"],
"featured_image_url": "https://exemplo.com/imagem.jpg",
"source_url": "https://fonte-original.com",
"published_at": "2026-06-04T12:00:00Z"
}
}4. Caso histórico (type: "historical_case")
{
"type": "historical_case",
"data": {
"title": "Caso Varginha (1996)",
"year": 1996,
"location": "Varginha, MG",
"summary": "Resumo curto do caso",
"description": "Descrição completa, fontes, contexto",
"tags": ["histórico", "mg"],
"source_url": "https://fonte.com",
"image_url": "https://exemplo.com/img.jpg"
}
}5. Relato (type: "report")
Ao aprovar, um registro é criado automaticamente em reports com status verified e passa a aparecer no mapa e na listagem pública.
{
"type": "report",
"data": {
"witness_name": "João da Silva",
"contact_email": "joao@exemplo.com",
"city": "Rio de Janeiro",
"state": "RJ",
"location": "Praia de Copacabana",
"event_at": "2026-05-30T22:15:00-03:00",
"duration": "5 minutos",
"witnesses_count": 3,
"object_shape": "Esfera luminosa",
"description": "Descrição detalhada do avistamento...",
"evidence_urls": []
}
}6. Respostas
202 Accepted
{ "ok": true, "submission_id": "uuid", "status": "pending" }
401 Missing/Invalid API key
403 Key not allowed to submit type "..."
422 Invalid payload (com detalhes do erro)7. Exemplo cURL
curl -X POST https://observatoriouapbrasil.com.br/api/public/webhooks/ingest \
-H "Authorization: Bearer whk_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"type":"news","data":{"title":"Teste","content":"..."}}'