API abierta
La API sirve filas, no artículos
Diseño propuesto. Todavía no construida.
No construida · Los ejemplos de abajo son la forma propuesta de la respuesta, no llamadas reales. Cuando exista, va a servir datos reales o nada: no va a servir los datos de demostración de este sitio.
Por qué filas
Porque la unidad publicable es el indicador y el texto es un campo de la fila, no al revés. Una fila con periodo se apila en una serie; una con entidad se compara con sus pares; una con regla_version y captura_id se recalcula. Un artículo que menciona números no tiene ninguna de las tres propiedades.
Toda respuesta trae su procedencia: de qué fuente salió, qué captura exacta se usó, con qué versión de regla se calculó y en qué fecha. Sin esos cuatro campos una fila no es publicable, así que la API tampoco los puede omitir.
Rutas propuestas
GET/v1/entidades
La tabla de entidades, con nivel, tipo, ubigeo, pliego y RUC. Filtrable por nivel y por tipo.
GET/v1/entidades/{id}/indicadores
Los indicadores publicados de una entidad, incluidas las filas con sin_senales en true.
GET/v1/indicadores/{indicador_id}
La serie de un indicador a través de entidades y periodos.
GET/v1/senales/{id}
Una señal verificada, con su evidencia, su umbral y su denominador.
GET/v1/reglas
El catálogo de reglas con sus umbrales y versiones.
GET/v1/fuentes
Las fuentes, su fricción, su cadencia y su condición de uso.
GET/v1/bitacora
Los cambios de forma y datos desaparecidos, con sus dos capturas.
GET/v1/rectificaciones
El registro público de rectificaciones.
Una fila de indicador
Nótese criterio_fuente: cuando el indicador compara contra un valor esperado, la API entrega quién puso ese criterio. Sin ese campo la fila no se publica.
{
"indicador_id": "gasto.ejecucion-vs-aprobado",
"entidad": {
"id": "e-07",
"nombre": "Municipalidad distrital 3",
"nivel": "local",
"tipo": "municipalidad_distrital",
"ubigeo": "120103",
"pliego": "300703"
},
"periodo": "2025",
"valor": 12,
"unidad": "%",
"criterio_fuente": {
"texto": "Presupuesto Institucional Modificado aprobado por la propia entidad para 2025",
"url": "https://datosabiertos.mef.gob.pe/..."
},
"pares": {
"cuantos": 180,
"descripcion": "municipalidades distritales de población y presupuesto comparables",
"mediana": 61
},
"fuente_id": "mef-datos",
"captura_id": "c-8841",
"regla_version": "1.0.0",
"fecha_calculo": "2026-02-14",
"enunciado": "Ejecutó 12 % del presupuesto de saneamiento que esta municipalidad aprobó para 2025. La mediana de sus 180 pares comparables es 61 %.",
"sin_senales": false,
"reglas_corridas": ["gasto.ejecucion-vs-aprobado", "gasto.modificacion-reiterada"]
}Y una fila sin señales, que también se sirve
«Sin señales en este periodo» es un resultado publicado, y por lo tanto una fila de la API con sin_senales en true y reglas_corridas lleno. El caso vacío tiene la misma forma que el caso con hallazgo: por eso se puede servir sin trabajo extra, y por eso la serie no tiene huecos.
{
"indicador_id": "gasto.ejecucion-vs-aprobado",
"entidad": { "id": "e-08", "nombre": "Municipalidad distrital 87", "nivel": "local" },
"periodo": "2025",
"sin_senales": true,
"reglas_corridas": [
"prov.concentracion", "prov.postor-unico", "prov.fraccionamiento",
"prov.ruc-reciente", "gasto.ejecucion-vs-aprobado", "gasto.modificacion-reiterada",
"obras.avance-divergente", "obras.pago-sin-avance",
"local.omision-obligatoria-vs-pares", "local.contratacion-directa-vs-pares"
],
"fecha_calculo": "2026-02-14"
}Condiciones de uso
- Indicadores y señales verificadas
- CC BY 4.0: reutilizables con atribución y enlace al indicador de origen.
- Capturas crudas
- No se redistribuyen en bloque. Se conservan como prueba y se entregan por caso, con su procedencia, a quien las necesite para reverificar.
- Datos de fuentes de pago
- No se redistribuyen. Se citan como fuente consultada, sin reproducir el documento.