API pública

Consulta abierta de clima y riesgo

Endpoint principal (todo en uno)

GET/inundaciones/api/v1/status.php?lat=&lon=

Clima + riesgo + riesgo fluvial + reportes cercanos de un punto, en una sola llamada.

▶ Probar (Guayaquil)
{
  "ubicacion": { "lat": -2.17, "lon": -79.92, "elevacion_m": 8 },
  "clima": { "temp_c": 31.9, "lluvia_mm": 0, "intensidad": "sin_lluvia", ... },
  "riesgo": { "indice": 15, "nivel": "Bajo", "factores": [...] },
  "riesgo_fluvial": { "severidad": "NO_FLOODING", "estacion_km": 28.1, ... },
  "reportes_cercanos_12h": 0
}

Con el plan gratuito la respuesta trae ubicacion, clima y riesgo (índice y nivel). El desglose riesgo.factores, riesgo_fluvial y reportes_cercanos_12h están disponibles desde el plan Medios — la propia respuesta te lo indica en solo_en_planes_de_pago. Ver planes →

Webhooks Empresa e Institucional

En vez de preguntar cada minuto, te avisamos nosotros. Registras una URL https y recibes un POST cuando una ciudad entra en riesgo por lluvia o cuando una estación de río cambia de severidad. Solo se avisa cuando el estado cambia: si una ciudad lleva seis horas en Alerta, se envía una vez, no doce.

POST/inundaciones/api/v1/webhooks.php

Crea uno. Campos: url (https), y opcionales descripcion, pais, lat+lon+radio_km, nivel_min (Atención|Alerta|Peligro), eventos (riesgo.lluvia, rio.severidad). Devuelve el secreto una sola vez.

GET/inundaciones/api/v1/webhooks.php

Lista los tuyos, con fallos acumulados y último envío correcto.

POST/inundaciones/api/v1/webhooks.php?accion=probar&id=N

Manda un evento de prueba al instante y te devuelve el HTTP que respondió tu servidor.

DELETE/inundaciones/api/v1/webhooks.php?id=N

Verificar la firma

Cada envío trae X-Amaru-Timestamp y X-Amaru-Signature. Recalcula el HMAC con tu secreto y compara en tiempo constante. Rechaza lo que tenga más de 5 minutos: evita que alguien reenvíe un aviso viejo.

$firma = hash_hmac('sha256', $ts . '.' . $cuerpo, $secreto);
if (!hash_equals($firma, $recibida)) { http_response_code(401); exit; }

Responde 2xx para confirmar. Si no, reintentamos a 1 min, 5 min, 30 min, 2 h y 6 h. Tras 10 fallos seguidos el webhook se desactiva y hay que reactivarlo.

Panorama regional

GET/inundaciones/api/hotspots.php?pais=XX

¿Dónde hay problemas ahora? Alertas de río, zonas con caudal en alza y grupos de reportes, ordenados por gravedad. Sin pais = toda Sudamérica.

▶ Probar (Sudamérica)

Endpoints individuales

GET/api/weather.php?lat=&lon=

Clima actual + pronóstico por hora.

GET/api/risk.php?lat=&lon=

Índice de riesgo 0-100 con factores explicados.

GET/api/flood.php?lat=&lon=

Riesgo fluvial (Google Flood): estación más cercana.

GET/api/rivers.php

Estaciones fluviales monitoreadas en Ecuador.

GET/api/history.php?lat=&lon=

Lluvia histórica y años de El Niño.

GET/api/cities.php

Ciudades disponibles.

GET/api/reports.php?bbox=minLon,minLat,maxLon,maxLat

Reportes ciudadanos en un área.

Widget para incrustar

GET/widget.php?id={ciudad}

Tarjeta embebible por iframe. Generador de código →

⚠️ Uso responsable: por ahora es abierta y sin llave. Para producción se añadirá límite de uso por IP/llave. Cita la fuente y recuerda que no reemplaza alertas oficiales de SNGR/INAMHI.