API v1.0 · JSON · CORS abierto
API REST.
Acceso programático a todos los datos hídricos de TerraNava. JSON estático servido vía HTTPS · CORS habilitado · sin autenticación · actualización mensual.
Endpoints totales
709
archivos JSON disponibles
Municipios
686
1 JSON por municipio
Departamentos
18
+ resumen nacional
Licencia
CC BY 4.0
+ atribución TerraNava
Endpoints disponibles
Todos los endpoints son GET HTTPS sin parámetros. Devuelven JSON con CORS abierto. Click en "Ver JSON" para abrir el endpoint en una pestaña nueva.
Catálogo completo de la API. Lista todos los endpoints, versión, licencia y contactos.
IVH v4 actual de los 343 municipios de Bolivia con componentes
desglosados (clima, agua, desastres, social, hidro), nivel, cobertura agua,
NBI, SPI-12 y SPEI-12.
Series temporales del IVH 2015-2026 por municipio. Incluye nacional agregado por año
(críticos/altos/medios/bajos), delta 5 años, tendencia.
Estado actual de sequía (SPI-12, SPEI-12, PDSI) por departamento + series mensuales
desde 2020. Fuente: CHIRPS v2.0 + ERA5-Land + TerraClimate.
Resumen agregado por departamento: IVH promedio, distribución (criticos/altos/medios/bajos),
población total, cobertura agua, NBI.
Datos completos de un departamento: resumen, sequía actual, top 10 vulnerables, top 10 mejores.
Slugs disponibles:
beni, chuquisaca, cochabamba,
la-paz, oruro, pando, potosi,
santa-cruz, tarija.
Datos completos por municipio: IVH actual + componentes, Censo 2024, estado sequía,
hidrología (GRACE-FO, JRC), eventos históricos, serie histórica 2015-2026.
Formato:
{slug_departamento}_{slug_municipio}.json.
Ejemplos de uso
Cómo consumir la API desde frontend (JavaScript) o backend (Python).
JavaScript (fetch)
// Obtener IVH actual de todos los municipios const response = await fetch('https://terranava.org/algoritmo/api/ivh.json'); const data = await response.json(); console.log(`343 municipios cargados`); // Filtrar municipios CRÍTICOS const criticos = data.municipios.filter(m => m.nivel === 'CRÍTICO'); // Ficha de un municipio específico const ficha = await fetch('https://terranava.org/algoritmo/api/municipios/beni_riberalta.json'); const mun = await ficha.json(); console.log(`IVH ${mun.ivh.valor} - ${mun.ivh.nivel}`);
Python (requests)
import requests # Estado de sequía actual r = requests.get('https://terranava.org/algoritmo/api/drought.json') data = r.json() for d in data['estado_actual']: print(f"{d['departamento']}: SPI-12 = {d['spi_12m']:+.2f}") # Histórico de un departamento r = requests.get('https://terranava.org/algoritmo/api/departamentos/potosi.json') print(r.json()['top_10_vulnerables'])
cURL
# Catálogo $ curl https://terranava.org/algoritmo/api/index.json # Estado actual sequía + pipe a jq $ curl -s https://terranava.org/algoritmo/api/drought.json | jq '.estado_actual[] | {depto: .departamento, spi: .spi_12m}'
Detalles técnicos
CORS · Encabezado
Access-Control-Allow-Origin: * habilitado
en todos los endpoints. Podés hacer fetch desde cualquier dominio.
Cache · HTTP cache
max-age=3600 (1 hora).
Los archivos JSON se regeneran al primer día del mes.
Encoding · UTF-8. Acentos y ñ se devuelven con caracteres reales,
no escapados.
Versionado · No hay parámetros de versión en la URL.
Cambios mayores se anuncian en el catálogo.
Rate limits · No hay límite formal. Si vas a consumir >10.000
requests/día, mandanos un email a
pablo@terranava.org.
Licencia · Datos bajo CC BY 4.0.
Atribución requerida: "Fuente: TerraNava (terranava.org)".
Contacto técnico
Para integraciones empresariales, customizaciones o uso institucional intensivo: pablo@terranava.org. Para reportar errores en los datos o sugerir nuevos endpoints, abrí un issue describiendo el caso de uso.