Endpoints
Health
| GET |
/health |
Estado de la aplicación y conexión a la BD |
Elecciones
| GET |
/api/v1/tipos-eleccion |
Catálogo de tipos de elección (array simple, sin paginación) |
| GET |
/api/v1/tipos-eleccion/{codigo} |
Detalle de un tipo de elección |
| GET |
/api/v1/elecciones |
Listado paginado de elecciones con filtros |
| GET |
/api/v1/elecciones/{id} |
Detalle de una elección con tipo expandido |
| GET |
/api/v1/elecciones/{id}/totales-territorio |
Totales territorio de una elección (paginado, con filtros) |
| GET |
/api/v1/elecciones/{id}/totales-territorio/{territorio_id} |
Resultado completo: totales + votos por partido |
Territorios
| GET |
/api/v1/territorios |
Listado paginado de territorios con filtros |
| GET |
/api/v1/territorios/{id} |
Detalle con todos los códigos |
| GET |
/api/v1/territorios/{id}/hijos |
Hijos directos (navegación jerárquica) |
Partidos
| GET |
/api/v1/partidos |
Listado paginado de partidos con filtros |
| GET |
/api/v1/partidos/{id} |
Detalle con agrupación (recode) expandida |
| GET |
/api/v1/partidos-recode |
Listado paginado de agrupaciones de partidos |
| GET |
/api/v1/partidos-recode/{id} |
Detalle de agrupación con lista de partidos asociados |
Resultados
| GET |
/api/v1/resultados/totales-territorio |
Totales territorio filtrables por múltiples criterios |
| GET |
/api/v1/resultados/votos-partido |
Votos por partido filtrables |
| GET |
/api/v1/resultados/combinados |
Votos con partido, territorio y elección expandidos |
Paginación
Todos los endpoints que devuelven listados (excepto /api/v1/tipos-eleccion) usan paginación.
Parámetros
skip |
int |
0 |
0 |
— |
Registros a saltar |
limit |
int |
50 |
1 |
500 |
Registros por página |
Estructura de respuesta paginada
{
"total": 254,
"skip": 0,
"limit": 50,
"data": [...]
}
total: número total de registros que cumplen los filtros.
skip / limit: eco de los parámetros enviados.
data: array con los registros de la página actual.
Recorrido completo
Para recorrer todos los registros se incrementa skip en cada petición:
Página 1: ?skip=0&limit=100
Página 2: ?skip=100&limit=100
Página 3: ?skip=200&limit=100
...hasta que skip >= total
Cuando no hay coincidencias, la respuesta es total=0 y data=[] (HTTP 200, no es error).
Filtros
Convenciones generales
- Todos los filtros son opcionales. Sin filtros se devuelven todos los registros.
- Los filtros de texto (
nombre, siglas, denominacion, agrupacion) usan búsqueda parcial case-insensitive (ILIKE).
- Para filtrar por múltiples valores, se repite el parámetro:
?tipo_eleccion=G&tipo_eleccion=A.
Filtros por endpoint
/api/v1/elecciones
tipo_eleccion |
str (repetible) |
G, A |
Código del tipo de elección |
year |
str (repetible) |
2019 |
Año de la elección |
mes |
str (repetible) |
04 |
Mes (con cero a la izquierda) |
/api/v1/territorios
tipo |
str (repetible) |
ccaa, provincia |
Tipo de territorio |
codigo_ccaa |
str (repetible) |
01 |
Código de comunidad autónoma |
codigo_provincia |
str (repetible) |
28 |
Código de provincia |
nombre |
str |
madrid |
Búsqueda parcial por nombre |
/api/v1/partidos
siglas |
str |
psoe |
Búsqueda parcial por siglas |
denominacion |
str |
socialista |
Búsqueda parcial por nombre completo |
/api/v1/partidos-recode
agrupacion |
str |
PCE/IU |
Búsqueda parcial por agrupación |
/api/v1/elecciones/{id}/totales-territorio
territorio_id |
int |
20 |
ID de territorio específico |
tipo_territorio |
str (repetible) |
provincia |
Tipo de territorio |
codigo_ccaa |
str (repetible) |
01 |
Código de comunidad autónoma |
codigo_provincia |
str (repetible) |
28 |
Código de provincia |
codigo_municipio |
str (repetible) |
079 |
Código de municipio |
/api/v1/resultados/totales-territorio
eleccion_id |
int (repetible) |
208 |
ID de elección |
territorio_id |
int (repetible) |
20 |
ID de territorio |
year |
str (repetible) |
2019 |
Año de la elección |
tipo_eleccion |
str (repetible) |
G |
Código del tipo |
tipo_territorio |
str (repetible) |
provincia |
Tipo de territorio |
codigo_ccaa |
str (repetible) |
01 |
Código CCAA |
codigo_provincia |
str (repetible) |
28 |
Código provincia |
codigo_municipio |
str (repetible) |
079 |
Código municipio |
/api/v1/resultados/votos-partido y /api/v1/resultados/combinados
Los mismos filtros que resultados/totales-territorio, más:
partido_id |
int (repetible) |
9451 |
ID de partido |
Errores
| 404 |
Recurso no encontrado |
{"detail": "Elección no encontrada"} |
| 422 |
Error de validación |
{"detail": [{"type": "...", "loc": [...], "msg": "..."}]} |