{"openapi":"3.0.3","info":{"title":"API pública de Vigía","version":"1.0.0","description":"Datos de riesgo, alertas y sismos de Vigía (RED LabOT) para integrar otras aplicaciones sin replicar la lógica. Sin autenticación. Las respuestas se cachean en el borde, así que los datos pueden tener hasta unos minutos de antigüedad; revise `meta.generadoEn`. Vigía no es un sistema oficial de alerta: ante una emergencia llame al 123."},"servers":[{"url":"https://vigia.redlabot.org"}],"paths":{"/api/v1/veredas":{"get":{"summary":"Listado de veredas","parameters":[{"name":"municipio","in":"query","schema":{"type":"string"},"description":"Filtra por municipio (sin distinguir tildes ni mayúsculas)."}],"responses":{"200":{"description":"Veredas con su caja envolvente y centro.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Vereda"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"502":{"$ref":"#/components/responses/ErrorUpstream"}}}},"/api/v1/veredas/{codigoVereda}":{"get":{"summary":"Riesgo compuesto de una vereda","parameters":[{"name":"codigoVereda","in":"path","required":true,"schema":{"type":"string"}},{"name":"geometria","in":"query","schema":{"type":"boolean"},"description":"Si es `true`, incluye el polígono de la vereda en `data.geometria`."}],"responses":{"200":{"description":"Riesgo de la vereda.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Riesgo"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"404":{"$ref":"#/components/responses/NoEncontrado"},"502":{"$ref":"#/components/responses/ErrorUpstream"}}}},"/api/v1/riesgo":{"get":{"summary":"Riesgo compuesto de todas las veredas","description":"Con `formato=geojson`, `data` es una FeatureCollection que puede pasarse directamente como fuente GeoJSON a MapLibre o Leaflet; para un SIG como QGIS, extraiga primero `data` del sobre.","parameters":[{"name":"municipio","in":"query","schema":{"type":"string"}},{"name":"accion","in":"query","schema":{"type":"string","enum":["informar","prepararse","actuar"]},"description":"Devuelve las veredas con esa acción o una más grave."},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","geojson"],"default":"json"}}],"responses":{"200":{"description":"Riesgo por vereda.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Riesgo"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/ParametroInvalido"},"502":{"$ref":"#/components/responses/ErrorUpstream"}}}},"/api/v1/alertas":{"get":{"summary":"Alertas emitidas en las últimas 72 horas","parameters":[{"name":"amenaza","in":"query","schema":{"type":"string","enum":["deslizamientos","inundaciones","incendios","sismos"]}}],"responses":{"200":{"description":"Alertas públicas. Nunca incluyen datos de suscriptores.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Alerta"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/ParametroInvalido"},"502":{"$ref":"#/components/responses/ErrorUpstream"}}}},"/api/v1/sismos":{"get":{"summary":"Sismos recientes en el área de Vigía","description":"Une SGC y USGS y elimina duplicados; SGC prevalece.","parameters":[{"name":"minMagnitud","in":"query","schema":{"type":"number","minimum":0,"maximum":10,"default":0}},{"name":"dias","in":"query","schema":{"type":"integer","minimum":1,"maximum":30,"default":7}},{"name":"limite","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"responses":{"200":{"description":"Sismos, del más reciente al más antiguo.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Sismo"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/ParametroInvalido"},"502":{"$ref":"#/components/responses/ErrorUpstream"}}}}},"components":{"schemas":{"Meta":{"type":"object","properties":{"generadoEn":{"type":"string","format":"date-time"},"atribucion":{"type":"string"},"total":{"type":"integer","description":"Número de elementos devueltos (solo en listados)."}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"Vereda":{"type":"object","properties":{"codigoVereda":{"type":"string"},"nombre":{"type":"string"},"municipio":{"type":"string"},"esCascoUrbano":{"type":"boolean"},"bbox":{"type":"object","properties":{"sur":{"type":"number"},"oeste":{"type":"number"},"norte":{"type":"number"},"este":{"type":"number"}}},"centro":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}}}}},"Riesgo":{"type":"object","properties":{"codigoVereda":{"type":"string"},"nombre":{"type":"string"},"municipio":{"type":"string"},"esCascoUrbano":{"type":"boolean"},"nivel":{"type":"string","nullable":true,"enum":["Muy bajo","Bajo","Moderado","Alto","Muy alto",null],"description":"Lo fija la amenaza más grave (criterio OMM/GDACS), no el promedio: una sola amenaza severa no se diluye."},"puntaje":{"type":"number","nullable":true,"description":"Promedio ponderado de 0 a 1 para ordenar veredas dentro de un mismo nivel. No determina `nivel`, así que un nivel alto puede tener un puntaje bajo."},"accion":{"type":"string","nullable":true,"enum":["Informar","Prepararse","Actuar",null]},"amenazaDominante":{"type":"string","nullable":true},"amenazas":{"type":"array","items":{"type":"object","properties":{"amenaza":{"type":"string"},"etiqueta":{"type":"string"},"nivel":{"type":"string","nullable":true,"description":"Nivel en la escala propia de cada amenaza; las etiquetas pueden variar entre amenazas (por ejemplo Baja o Bajo)."},"puntaje":{"type":"number","nullable":true},"detalle":{"type":"string","nullable":true}}}},"poblacion":{"type":"object","properties":{"total":{"type":"integer","nullable":true},"menores5":{"type":"integer","nullable":true},"mayores60":{"type":"integer","nullable":true}}},"infraestructura":{"type":"object","properties":{"escuelas":{"type":"integer","nullable":true},"hospitales":{"type":"integer","nullable":true},"farmacias":{"type":"integer","nullable":true},"criticas":{"type":"integer","nullable":true},"sitiosCriticos":{"type":"integer"}}},"resumen":{"type":"string"}}},"Alerta":{"type":"object","properties":{"id":{"type":"string"},"amenaza":{"type":"string","enum":["deslizamientos","inundaciones","incendios","sismos"]},"nivel":{"type":"string","enum":["prepararse","actuar"]},"zona":{"type":"string"},"fecha":{"type":"string","format":"date-time"},"magnitud":{"type":"number","nullable":true}}},"Sismo":{"type":"object","properties":{"id":{"type":"string"},"fuente":{"type":"string","enum":["SGC","USGS"]},"fecha":{"type":"string","format":"date-time"},"magnitud":{"type":"number"},"profundidadKm":{"type":"number","nullable":true},"lat":{"type":"number"},"lon":{"type":"number"},"lugar":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true,"description":"SGC: manual (revisado por analista) o automatic."}}}},"responses":{"ParametroInvalido":{"description":"Parámetro inválido.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NoEncontrado":{"description":"Recurso no encontrado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ErrorUpstream":{"description":"Falló una fuente de datos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}