API v1.1 · 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
359
archivos JSON disponibles
Municipios
343
1 JSON por municipio
Departamentos
9
+ 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.

GET /api/index.json Ver JSON →
Catálogo completo de la API. Lista todos los endpoints, versión, licencia y contactos.
1 KBSin auth⏱Actualización: mensual
GET /api/ivh.json Ver JSON →
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.
~136 KBSin auth343 unidades territoriales
GET /api/ivh-historico.json Ver JSON →
Series temporales del IVH 2015-2026 por municipio. Incluye nacional agregado por año (críticos/altos/medios/bajos), delta 5 años, tendencia.
~135 KBSin auth12 años · 343 unidades territoriales
GET /api/drought.json Ver JSON →
Estado actual de sequía (SPI-12, SPEI-12, PDSI) por departamento + series mensuales desde 2020. Fuente: CHIRPS v2.0 + ERA5-Land + TerraClimate.
~22 KBSin auth9 departamentos
GET /api/departamentos.json Ver JSON →
Resumen agregado por departamento: IVH promedio, distribución (criticos/altos/medios/bajos), población total, cobertura agua, NBI.
~2 KBSin auth9 departamentos
GET /api/departamentos/{slug}.json Ejemplo Beni →
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.
~2 KB c/uSin auth9 archivos
GET /api/municipios/{depto}_{municipio}.json Ejemplo Riberalta →
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.
~2 KB c/uSin auth343 archivos

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 unidades territoriales cargadas`);

// 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.