Parque de vehículos DGT por cohorte (España) - open data avatar

Parque de vehículos DGT por cohorte (España) - open data

Pricing

from $2.00 / 1,000 cohorte devueltos

Go to Apify Store
Parque de vehículos DGT por cohorte (España) - open data

Parque de vehículos DGT por cohorte (España) - open data

Parque de vehículos de la DGT (España) agregado por cohorte (provincia, marca, modelo, combustible, categoría, año) desde los microdatos anuales oficiales. Filtros por provincia, marca y combustible; CSV/Excel listos. Sin matrículas ni bastidores. No oficial: no afiliado a la DGT.

Pricing

from $2.00 / 1,000 cohorte devueltos

Rating

0.0

(0)

Developer

Riccardo Pongetti

Riccardo Pongetti

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Spain DGT Vehicle Fleet — Parque de vehículos (datos por cohorte)

Actor de Apify que expone el parque de vehículos de España como datos agregados por cohorte a partir de los microdatos oficiales de la Dirección General de Tráfico (DGT). Un vehículo = una fila del fichero oficial; el Actor agrupa por provincia x marca x modelo x combustible x categoría x año y devuelve el recuento de cada cohorte.

Solo datos agregados — nunca se emiten matrículas ni bastidores/VIN (regla AEPD; el propio fichero oficial no contiene esas columnas). Este Actor no es oficial y no está afiliado a la DGT. Unofficial / no afiliado.

Fuente

  • Organismo: DGT (Dirección General de Tráfico, Ministerio del Interior)
  • Dataset: Parque de vehículos — microdatos consolidados anuales
  • URL: https://www.dgt.es/microdatos/Parque/2025/parque_consolidado_2025_PROVINCIA.zip
  • Catálogo datos.gob.es: e00003801 (anual); e00130502 (parque mensual; roadmap)
  • Formato: ZIP de 52 TXT (uno por provincia, p.ej. 01.ARABA_ÁLAVA.txt), pipe-delimited, encoding cp1252, 45 columnas, cabecera en la primera línea.
  • Sin clave, sin login, sin cookies. Un GET por run (el ZIP pesa ~1,6 GB, por eso no se cachea en el KV store).

Columnas reales del TXT (verificadas descargando el fichero)

PROVINCIA | MUNICIPIO | FABRICANTE | MARCA | MODELO | TIPO | VARIANTE | VERSION |
PROVINCIA_MATR | FECHA_MATR | FEC_PRIM_MATR | CLASE_MATR | PROCEDENCIA | NUEVO_USADO |
TIPO_TITULAR | NUM_TITULARES | SUBTIPO_DGT | TIPO_DGT | CAT_EURO | CLAS_CONSTRUCCION |
CLAS_UTILIZACION | SERVICIO | RENTING | TARA | PESO_MAX | MOM | MMTA | CILINDRADA |
POTENCIA | KW | PROPULSION | CATELECT | CONSUMO | AUTONOMIA | ALIMENTACION |
TIPO_DISTINTIVO | EMISIONES_EURO | EMISIONES_CO2 | CARROCERIA | DISTANCIA_EJES |
EJE_ANTERIOR | EJE_POSTERIOR | PLAZAS | PLAZAS_MAX | PLAZAS_PIE

No existe columna de matrícula ni de bastidor/VIN.

Combustible (campo PROPULSION)

El campo PROPULSION usa códigos. El mapeo se dedujo empíricamente del fichero real (cilindrada media, distintivo ambiental y campo CATELECT) y se documenta en src/core.py:

CódigoEtiqueta
0Gasolina (incluye híbridos no enchufables de gasolina, motos y ciclomotores)
1Diésel
2Eléctrico (BEV)
6GLP
7GNC
(vacío)No consta
restoOtros

La categoría del vehículo se toma del campo TIPO_DGT (TURISMOS, MOTOCICLETAS, FURGONETAS, CAMIONES, AUTOBUSES, TRACTORES INDUSTRIALES, CICLOMOTORES, R Y S, OTROS…).

Entrada

{
"province": "", // código 01-52 o nombre ("28", "Madrid"); vacío = todas
"marca": "", // subcadena, sin mayúsculas/acentos ("seat")
"combustible": "", // etiqueta o código (Gasolina, Diésel, Eléctrico, GLP, GNC, 0, 1, 2, 6, 7)
"categoria": "", // subcadena de TIPO_DGT ("turismos", "moto", "camiones")
"year": 2025, // v1: solo 2025 (otros años → roadmap)
"maxResults": 100, // tope de cohortes devueltas (coste); 0 = sin límite
"exportFiles": ["csv", "xlsx"],
"exportLanguage": "es"
}

Salida

Un item por cohorte:

{
"provincia": "28",
"provinciaNombre": "MADRID",
"marca": "VOLKSWAGEN",
"modelo": "GOLF",
"combustible": "Diésel",
"combustibleCodigo": "1",
"categoria": "TURISMOS",
"anio": 2025,
"vehiculos": 12345
}

La SUMMARY / run-report incluye: cohortes, vehículos totales, media por cohorte, marcas y provincias únicas, distribución por combustible y por categoría, top 10 marcas y top 10 provincias.

CSV (RFC-4180, coma) y XLSX (cabecera fija + autofiltro + hoja «Fuente») listos para abrir.

Precio y coste

Pay-per-event: 0,002 $/cohorte devuelta + 0,01 $ por informe agregado. maxResults es el guardarraíl: una pasada completa sin límite puede devolver decenas de miles de cohortes. El ZIP se descarga entero aunque se filtre por provincia (el fichero oficial es único).

Notas operativas

  • El primer run descarga ~1,6 GB. fetch_source() vuelca el ZIP a un directorio temporal; el contenedor de Apify es efímero, así que no hay limpieza persistente.
  • Filtro por provincia = solo se descomprimen los ficheros de esa provincia.
  • Las filas sin marca (remolques, tractores sin marca, «R Y S») se excluyen del agregado y se cuentan en meta.rowsSinMarca.

Roadmap (v2+)

  • Backfill anual 2017-2025 (el patrón de URL es idéntico por año).
  • Delta mensual desde el catálogo e00130502 (paneldatos.dgt.es).
  • Optimización de descarga (descarga parcial por provincia cuando el filtro lo permita).
  • Cache del agregado por año en el KV store cuando el dataset mensual sea ligero.

Desarrollo

uv venv .venv --python 3.13 && uv pip install --python .venv/bin/python 'apify>=2.0.0' openpyxl pytest
.venv/bin/python -m pytest tests -q # tests sin red (fixtures reales)
.venv/bin/python -m src.main --local examples/input.json # run end-to-end (descarga real)