Inicio / API de datos abiertos Versión 1688725 2026-06-06

Datos abiertos

API de datos abiertos

El mismo inventario que ves en la web, servido también como JSON estable para que cualquier proyecto, investigador o periodista pueda integrarlo. Datos abiertos bajo CC BY-SA 4.0, sin servidor ni claves.

1.

Qué es

La web enseña los datos como páginas para personas. La API enseña los mismos datos en JSON, para programas. No es contenido nuevo: es el mismo inventario en otro formato, igual que el feed de hitos. Sirve para que otra web, un cuaderno de análisis o el script de un periodista integren los casos sin copiar a mano ni scrapear el HTML.

No es una API de servidor. No hay backend, ni base de datos, ni clave de acceso: son ficheros JSON estáticos generados en el build y servidos desde el CDN, con coste de runtime cero. El contenido editorial está licenciado bajo CC BY-SA 4.0 (reutilizable citando la fuente y compartiendo igual); la API sólo lo hace cómodo de consumir.

El razonamiento completo y el contrato de cara afuera viven en el repositorio: contrato de la API y registro de decisiones.

2.

El modelo es un grafo

El inventario son tres tipos de nodoCaso, Persona y Organización — unidos por aristas (el rol de una persona en un caso, el vínculo de una organización, la relación entre casos, la afectación a un partido). Lo que hace los datos componibles es que cada nodo lleva sus aristas: desde la ficha de una persona llegas a sus casos; desde la de un caso, a sus personas, órganos y partidos afectados. Cada organización lleva además su CIF/NIF inline y la lista de casos en que aparece, para cruzar por identificador sin joins frágiles por nombre.

Tres formas de acceso, combinables: un índice ligero por colección (lo descargas una vez y filtras en tu lado), el detalle de cada nodo bajo demanda, y algunos recortes pre-construidos por URL (por partido).

3.

Endpoints

Todos generados en el build. Cada respuesta va envuelta en el sobre { meta, datos }.

Índices — una fila por entidad, para filtrar en cliente

Detalle — ficha completa de un nodo

  • /api/v1/casos/<slug>.json · ej. Ficha completa de un caso.
  • /api/v1/personas/<slug>.json · ej. Ficha completa de una persona.
  • /api/v1/organizaciones/<slug>.json · ej. Ficha completa de una organización.
  • /api/v1/partido/<slug>.json · ej. Casos que afectan a un partido (con su justificación de afectación).

Conjunto y contratos

  • /api/v1/dump.json Todo el inventario público en un fichero. Opt-in, para investigación.
  • /api/v1/datapackage.json Descriptor estándar Frictionless Data del dataset.
  • /llms.txt Punto de entrada para una IA que vaya a integrar los datos (incluye las reglas de presunción de inocencia).

La forma de cada entidad está fijada por sus JSON Schema: los campos description de cada schema son la documentación de cada propiedad.

4.

Los guardarraíles viajan con el dato

Cada respuesta lleva un objeto meta con la licencia, la atribución y el aviso de que imputación no es condena. Y dentro de los datos: cada hecho conserva su nivel de fuente (1–4) y cada rol procesal su tipo discreto (investigado, procesado, acusado, condenado, absuelto, desimputado) con su trayectoria temporal. Un consumidor que quisiera renderizar «X = culpable» tendría que ignorar activamente campos que lleva delante.

{
  "meta": {
    "licencia": "CC BY-SA 4.0",
    "atribucion": "presuntamente.org, ficha <nombre>, consultada el <fecha>",
    "aviso": "Imputación no es condena. Cada hecho lleva su nivel de fuente
              (1-4) y cada rol procesal su tipo discreto y su trayectoria.",
    "version": "v1",
    "fuente": "https://presuntamente.org/casos/<slug>"
  },
  "datos": { /* ... */ }
}
5.

Sólo lo público

La API es un vector de publicación más y pasa por el mismo filtro que el resto del sitio: sólo se sirven casos en estado público (beta pública o superior) y las personas y organizaciones enlazadas a ellos. Los borradores no salen, igual que no salen en la home ni en el feed.

Por ser un contrato que consumen terceros, es incluso más estricta que la web en dos puntos: no propaga contenido retractado, y no expone campos internos de trabajo editorial.

6.

Integrar y estabilidad

No mantenemos SDKs. La apuesta es hacer el repositorio legible por una IA: apunta tu modelo a llms.txt y a los JSON Schema, y te genera la integración en tu lenguaje. El llms.txt incluye, además del mapa de endpoints, cómo respetar la presunción de inocencia al renderizar.

Promesa de estabilidad de la v1:

  • Podemos añadir campos nuevos sin avisar.
  • No quitamos ni renombramos campos, ni cambiamos el significado de un id, sin pasar a v2 (ruta nueva; la v1 se mantiene un tiempo). Los id/slugs del inventario son estables por diseño.

Ver el índice de casos (JSON) →

7.

Licencia y repositorio

  • Datos / contenido editorial: CC BY-SA 4.0. Reutiliza citando presuntamente.org y compartiendo bajo la misma licencia.
  • Código: AGPL-3.0-or-later.
  • Repositorio público: github.com/davidchicano/presuntamente ↗