Saltar al contenido
Urnario

Para desarrolladoresv1 · libre · sin clave · solo lectura

El archivo, por API

Los mismos datos que la web, en JSON, CSV y Parquet, y un conector MCP para que un asistente de IA consulte resultados oficiales sin inventarlos.

Rutas

Base: https://urnario.nuvolastudiogroup.com/v1. Especificación completa: openapi.yaml.

  • GET /v1/eleccionesLista de elecciones
  • GET /v1/elecciones/{id}Una elección y sus candidaturas
  • GET /v1/elecciones/{id}/participacionParticipación de todos los municipios en una elección
  • GET /v1/municipiosÍndice de municipios
  • GET /v1/municipios/{ine}Serie completa de un municipio
  • GET /v1/elecciones/{id}/secciones/{provincia}Todas las secciones censales de una provincia en una elección (formato compacto)
  • GET /v1/curiosidadesCuriosidades oficiales y neutras
  • GET /v1/mapa/municipiosGeometría del mapa de municipios
  • GET /v1/mapa/participacionTramos de participación de cada municipio en cada elección
  • GET /v1/candidaturas/{eleccion}Candidaturas proclamadas al Congreso y al Senado (BOE)
  • GET /v1/provinciasLista de provincias
  • GET /v1/comunidadesLista de comunidades y ciudades autónomas
  • GET /v1/provincias/{codigo}Serie completa de una provincia (cifras oficiales, con escaños y voto CERA)
  • GET /v1/comunidades/{codigo}Serie completa de una comunidad (cifras oficiales)
  • GET /v1/espanaSerie completa de España (cifras oficiales)

Ejemplo

Respuesta real, recortada, de GET /v1/municipios/49260.

{
  "meta": {
    "fuente": "Origen de los datos: Ministerio del Interior",
    "fecha_actualizacion_fuente": {
      "202307": "2023-12-27"
    },
    "licencia": "CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/deed.es)",
  …
  },
  "ine": "49260",
  "nombre": "Villanueva del Campo",
  "provincia": {
    "codigo": "49",
    "nombre": "Zamora"
  },
  "elecciones": [
    {
      "eleccion": "197706",
      "electores": 997,
      "votantes": 896,
      "participacion": 89.87,
      "resultados": [
        {
          "candidatura": "197706-000087",
          "siglas": "UCD",
          "votos": 510,
          "porcentaje": 59.16
        },
        …
      ]
    },
    …,
    {
      "eleccion": "202307",
      "electores": 645,
      "votantes": 498,
      "participacion": 77.21,
      "resultados": [
        {
          "candidatura": "202307-000005",
          "siglas": "PP",
          "votos": 204,
          "porcentaje": 42.32
        },
        …
      ]
    }
  ]
}

Cita obligatoria. Cada respuesta lleva en meta el origen de los datos, la fecha en que Interior actualizó cada elección, la licencia y la cita del proyecto. Al reutilizarlos, muéstralos.

Participación. participacion es la oficial; residentes, sin el voto desde el extranjero (CERA), es con la que se comparan los municipios. Lo explicamos en «Cómo está hecho».

Candidaturas. Cada una es de una sola elección (AAAAMM-código), con el nombre tal como lo registra Interior. No hay bloques ni «herederos».

Formato. JSON con UTF-8, ficheros estáticos que se pueden guardar en caché. Sin clave y con CORS abierto.

Conector de IA (MCP)

Un servidor MCP para que un asistente como Claude responda con estos datos. Solo lee la API, así que no puede dar nada que la API no tenga, y cada respuesta lleva la atribución y el enlace a la ficha.

  • resultados_municipioUn municipio en una elección: votos de cada candidatura, participación y su diferencia con la provincia, la comunidad y España.
  • participacion_historicaLa participación de un municipio, una provincia, una comunidad o España en las 16 elecciones.
  • comparar_municipiosDe dos a cuatro municipios, lado a lado.
  • candidaturas_provinciaLa papeleta del Congreso de una provincia en una elección, con votos, escaños y voto desde el extranjero.
  • curiosidadesRécords y rarezas oficiales, con sus criterios.

Con la misma neutralidad que la web

Sus instrucciones le piden al asistente dar los datos tal cual: sin «ganadores» ni «feudos», sin agrupar candidaturas en bloques, sin unir partidos de elecciones distintas y sin predicciones. No interpreta ni recomienda el voto.

Cómo se usa

Por ahora se instala en el equipo (Node.js 20 o superior) y se añade a la configuración de servidores MCP del asistente:

{
  "mcpServers": {
    "urnario": {
      "command": "node",
      "args": [
        "<carpeta>/mcp/servidor.mjs"
      ],
      "env": {
        "URNARIO_API": "https://urnario.nuvolastudiogroup.com/v1"
      }
    }
  }
}

Una versión remota, para usarlo sin instalar nada, llegará con la publicación de la web.

Descargas

Todos los resultados en CSV y Parquet, con metadatos DCAT-AP-ES para datos.gob.es: por municipio y elección, por sección censal (con la renta del INE de 2015 a 2023), las candidaturas, los totales oficiales y la tabla que une 45 años de municipios. Qué es cada fichero, en el LEEME.txt.

Licencia de los datos: CC BY 4.0, citando «Origen de los datos: Ministerio del Interior» y este proyecto. El Ministerio no participa, patrocina ni apoya esta web. Detalle en Fuentes y licencias.