Datos y API
Todo lo que ves en el mapa está disponible como datos abiertos, sin registro y sin clave.
API pública
Guía completa con parámetros, ejemplos y condiciones en API para desarrolladores.
| Ruta | Qué devuelve |
|---|---|
/api/v1/trains | Trenes en circulación (GeoJSON), con el estado de cada fuente. |
/api/v1/trains/{id} | Un tren con su recorrido reciente (hasta 80 posiciones) y, en larga y media distancia, sus paradas con hora programada y estimada. |
/api/v1/stations/{código} | Trenes de las próximas dos horas en una estación: los que circulan, con hora estimada, y los que aún no han salido, según el horario de hoy. |
/api/v1/horario/numero/{número}?nucleo= | Horario de hoy de un número de tren (calendario GTFS): paradas, horas y si Renfe lo da por cancelado. |
/api/v1/puntualidad?dias=7 | Puntualidad diaria por línea y producto (último retraso publicado de cada tren). |
/api/v1/trains/numero/{número}?nucleo= | El mismo detalle buscando por número comercial; nucleo distingue Cercanías de distintas ciudades. |
/api/v1/stations | Estaciones (GeoJSON). |
/api/v1/lines | Líneas de Cercanías con su recorrido y su color oficial (GeoJSON, simplificado a ~15 m). |
/api/v1/alerts | Avisos activos de Cercanías. |
/api/v1/cancellations | Trenes cancelados según Renfe. |
/api/v1/status | Resumen: trenes, puntualidad y salud de las fuentes. |
/api/v1/lineas | Líneas con página propia: Cercanías, Rodalies, FGC y Metro Bilbao. |
/api/v1/lines/{núcleo}/{línea} | Una línea: estaciones en orden, trenes ahora y, en Renfe, avisos, cancelaciones y puntualidad de 30 días. |
/api/v1/informe/{aaaa-mm}?nucleo= | Informe mensual de puntualidad y cancelaciones. |
/api/v1/historial/dias | Días del registro histórico que se pueden descargar. |
/api/v1/historial/{aaaa-mm-dd}.csv.gz | Un día completo del registro histórico (hora UTC). |
/api/v1/feeds/avisos.xml | Avisos de Cercanías en RSS. |
/api/v1/feeds/cancelaciones.xml | Trenes cancelados en RSS. |
/api/docs | Documentación interactiva (OpenAPI). |
Ejemplo: curl -s --compressed https://trenes.valfiguer.com/api/v1/trains
Cada tren lleva reported_at (hora de la posición), age_s (antigüedad al generar la respuesta), stale y flags, que explican cualquier corrección aplicada. La respuesta se regenera cada 15–20 s: consultar más de una vez cada 10 s no da datos más nuevos.
Fuentes
Solo usamos conjuntos publicados oficialmente como datos abiertos: Renfe Data, FGC Dades Obertes y Metro Bilbao y Euskotren a través de MovEuskadi, todos bajo licencia CC BY 4.0. No reutilizamos datos de webs o aplicaciones que no estén publicados como datos abiertos.
| Dato | Origen | Consulta |
|---|---|---|
| Posiciones AV/LD/MD | gtfsrt.renfe.com/vehicle_positions_LD.json | cada 15 s |
| Posiciones Cercanías | gtfsrt.renfe.com/vehicle_positions.json | cada 20 s |
| Retrasos y cancelaciones | gtfsrt.renfe.com/trip_updates(_LD).json | cada 30 s |
| Avisos Cercanías | gtfsrt.renfe.com/alerts.json | cada 60 s |
| Horarios (GTFS) | ssl.renfe.com · Fichero_AV_LD y Fichero_CER | cada 12 h |
| Posiciones FGC | dadesobertes.fgc.cat · posicionament-dels-trens | cada 20 s |
| Líneas y estaciones FGC | dadesobertes.fgc.cat · gtfs_routes, codigo-estaciones | cada 24 h |
| Posiciones Metro Bilbao | opendata.euskadi.eus · gtfsrt_metro_bilbao_vehicle_positions.pb | cada 20 s |
| Horarios Metro Bilbao (GTFS) | opendata.euskadi.eus · gtfs_metro_bilbao.zip | cada 24 h |
| Posiciones Euskotren (solo si están al día: si el feed se para, no se muestran) | opendata.euskadi.eus · gtfsrt_euskotren_vehicle_positions.pb | cada 20 s |
| Horarios y líneas Euskotren (GTFS) | opendata.euskadi.eus · gtfs_euskotren.zip | cada 24 h |
| Accesibilidad de estaciones (wheelchair_boarding) | ssl.renfe.com · stops.txt de Fichero_AV_LD y Fichero_CER | cada 12 h |
Licencia y atribución
Puedes reutilizar estos datos con la misma licencia CC BY 4.0, citando: «Fuente: Renfe Data (data.renfe.com), CC BY 4.0. Datos normalizados por trenes.valfiguer.com (Valfiguer)». Nuestra normalización corrige defectos conocidos de las fuentes y lo indica en flags; si necesitas el dato tal cual lo publica Renfe, usa las URL originales.
Registro histórico
Guardamos cada cambio de posición, estado o retraso en ficheros CSV comprimidos (columnas: received_at, reported_at, train_id, source, trip_id, lat, lon, status, stop_id, delay_s, speed_kmh, flags). Puedes descargar cada día completo, en hora UTC, como un único .csv.gz. Dentro, cada hora empieza con su propia fila de cabecera: sáltala cuando se repita. El día en curso no se ofrece hasta que termina. Se conservan 90 días.
Licencia CC BY 4.0: puedes usarlos para lo que quieras citando «Fuente: Renfe Data (data.renfe.com), CC BY 4.0. Datos normalizados por trenes.valfiguer.com (Valfiguer)». No están todos los trenes: solo los que publican su posición.
| Día (UTC) | Horas | Tamaño | Descarga |
|---|---|---|---|
| sáb, 31 oct 2026 | 1 (incompleto) | 0 MB | 2026-10-31.csv.gz |
Si necesitas más días para una investigación o un reportaje, escríbenos a info@valfiguer.com.