🗼 Atalaya — API unificada

Todos los datos agregados por el servidor, servidos en JSON desde un solo lugar. Sin autenticación dentro de la red local. Índice de descubrimiento automático en /api/v1.

Estado y fuentes

GET/api/v1

Índice de descubrimiento: lista todas las fuentes disponibles con su resumen, la hora de actualización y el enlace a los datos completos.

GET/api/v1/font/{id}

Datos completos de una fuente (sismes, avisosMeteo, firms, copernicus, rios, energia, previsio, vent, onatge, neu, uv, radiacio, salut, seguretat). Respuesta: {dades, resum, actualitzat}.

curl https://atalaya.dedyn.io/api/v1/font/sismes
GET/api/estat?fonts=a,b

Todas las fuentes de golpe (o solo las del filtro). Es lo que usa el panel.

GET/api/historic?hores=24

Serie horaria de métricas agregadas (focos activos, avisos meteorológicos, sismos, ríos, energía y precios…). Parámetros: ?hores=N (máx. 168), ?series=0 (sin series por estación, mucho más ligero) o ?mes=YYYY-MM (un mes entero, siempre sin series).

curl 'https://atalaya.dedyn.io/api/historic?hores=48&series=0'

Tiempo real

GET/api/events

Flujo Server-Sent Events. Eventos: font (una fuente se ha actualizado) y alerta (alerta nueva del motor).

const es = new EventSource('https://atalaya.dedyn.io/api/events');
es.addEventListener('alerta', e => console.log(JSON.parse(e.data)));

Interacción

GET/api/avisos

Lista los avisos ciudadanos recientes con su estado de triaje.

POST/api/avis

Envía un aviso ciudadano. Cuerpo: {"text": "...", "lat": 40.4, "lon": -3.7}. El triaje (heurísticas + corroboración de sensores + Claude si hay clave) devuelve {puntuacio, estat, senyals}.

Recursos

GET/api/targeta.png

Tarjeta resumen del estado actual, en PNG (útil para compartir o incrustar).

GET/api/logo.png

Logo en PNG. Parámetro opcional ?mida=N para el tamaño en píxeles.

Datos agregados de fuentes públicas (ver «Fuentes» en el panel). Información orientativa: en una emergencia, llama al 112. Si expones esta API fuera de la red local, pon delante un proxy con HTTPS y autenticación.