European Train Archive

European Train Archive

A public record of how Europe’s trains actually ran: timetables and live running data from 32 countries, collected continuously since 28 September 2026.

Each source is read as often as it is published, narrowed down to rail, and kept as Parquet files that anyone can download. Live delays come from 32 sources, train positions from 8, and timetables from 48.

What is covered

Each stop on the lines below is a country. Next to it: who publishes the data, what is kept, and the source name to use in file paths.

Live data 18

  • Czechia

    • Prague integrated transport (PID) Live delays, train positions, timetables cz-pid
    • Czech national rail timetable Timetables cz-czptt Community source: obehy.cz
  • Estonia

    • Elron Live delays, train positions, timetables ee-elron Community source: Transitous, jbb.ghsq.de
  • Finland

    • VR (Fintraffic Digitraffic) Live delays, train positions, timetables fi-digitraffic
  • Great Britain

    • Great British rail Live delays, train positions, timetables gb-aubin Community source: aubin.app
  • Greece

    • Hellenic Train Train positions, timetables gr-hellenic-train Community source: jbb.ghsq.de
  • Norway

    • All Norwegian rail (Entur) Live delays, train positions, timetables no-entur
  • Slovakia

    • ŽSR / ZSSK Live delays, train positions sk-zsr Community source: jbb.ghsq.de
  • Spain

    • Renfe Cercanías Live delays, train positions, timetables es-renfe-cercanias
    • Renfe long and medium distance Live delays, timetables es-renfe-ld
  • Belgium

    • SNCB / NMBS Live delays, timetables be-sncb
  • Bulgaria

    • BDŽ Live delays, timetables bg-bdz Community source: livetransport.eu
  • France

    • SNCF: TGV, Intercités, TER Live delays, timetables fr-sncf
  • Germany

    • All German rail (DELFI via gtfs.de) Live delays, timetables de-gtfsde
  • International

    • Eurostar Live delays, timetables eu-eurostar
  • Ireland

    • Irish Rail (NTA) Live delays, timetables ie-nta
  • Netherlands

    • Dutch rail (OVapi) Live delays, timetables nl-ovapi
  • Poland

    • Polish trains (PKP Intercity, Polregio, regional) Live delays, timetables pl-polish-trains Community source: mkuran.pl
    • PKP Intercity Live delays, timetables pl-pkp-intercity Community source: kasznia.net
  • Sweden

    • SL, Stockholm Live delays, timetables se-sl
    • Skånetrafiken Live delays, timetables se-skane
    • UL, Uppsala Live delays, timetables se-ul
    • Östgötatrafiken Live delays, timetables se-otraf
    • JLT, Jönköping Live delays, timetables se-jlt
    • Kronoberg Live delays, timetables se-krono
    • KLT, Kalmar Live delays, timetables se-klt
    • Blekingetrafiken Live delays, timetables se-blekinge
    • Värmlandstrafik Live delays, timetables se-varm
    • Länstrafiken Örebro Live delays, timetables se-orebro
    • VL, Västmanland Live delays, timetables se-vastmanland
    • Dalatrafik Live delays, timetables se-dt
    • X-trafik Live delays, timetables se-xt
    • Din Tur, Västernorrland Live delays, timetables se-dintur
  • Switzerland

    • All Swiss rail (opentransportdata.swiss) Live delays, timetables ch-opentransportdata

Timetables only 15

  • Croatia

    • HŽ Putnički prijevoz Timetables hr-hzpp
  • Denmark

    • Rejseplanen (all Danish public transport) Timetables dk-rejseplanen
  • Italy

    • Trenord Timetables it-trenord
  • Kosovo

    • Trainkos Timetables xk-trainkos Community source: hoermalmeister/gtfs-rehost
  • Latvia

    • Vivi, Pasažieru vilciens Timetables lv-vivi
  • Lithuania

    • LTG Link Timetables lt-ltglink Community source: jbb.ghsq.de
  • Luxembourg

    • Luxembourg public transport (incl. CFL) Timetables lu-mobiliteit
  • Moldova

    • CFM, Calea Ferată din Moldova Timetables md-cfm Community source: hoermalmeister/gtfs-rehost
  • Montenegro

    • ŽPCG Timetables me-zpcg Community source: jbb.ghsq.de
  • North Macedonia

    • MŽ Transport Timetables mk-mzt Community source: GitHub contributors
  • Portugal

    • CP, Comboios de Portugal Timetables pt-cp
  • Romania

    • Romanian railway operators Timetables ro-railway Community source: jbb.ghsq.de
  • Serbia

    • Srbijavoz Timetables rs-srbijavoz Community source: vekejsn/gtfs-generators
  • Türkiye

    • TCDD Taşımacılık Timetables tr-tcdd Community source: GitHub contributors
  • Ukraine

    • Ukrzaliznytsia Timetables ua-ukrzaliznytsia Community source: jbb.ghsq.de

Some sources mix trains with buses and trams. For those, a row is kept only when the timetable lists its trip as rail. Community sources are run by volunteers who convert or relay operator data; they can stop at any time.

Get the data

Every file can be downloaded, but the storage does not list its contents: open files by their path.

Live data, one file per hour
https://nbg1.your-objectstorage.com/gtfs-rt-storage/provider=source/service=TripUpdate/date=YYYY-MM-DD/HH-00-00_to_HH-00-00.parquet

Hours and dates follow the source’s local time. Train positions use service=VehiclePosition. Updates are written every 15 minutes and merged into the hour’s file a few minutes after the hour ends.

Timetables
https://nbg1.your-objectstorage.com/gtfs-rt-storage/source/static/latest.json

Describes the newest timetable and gives the path of one Parquet file per GTFS table. A new version is stored each time the published timetable changes; earlier ones stay available.

Rows keep the GTFS-RT fields and add fetchTime and feedTimestamp, staticVersion (the timetable that was current, to join with), and firstSeen / lastSeen: identical consecutive updates are merged into one row.

For example, with DuckDB:

INSTALL httpfs; LOAD httpfs;
SELECT * FROM read_parquet(
  'https://nbg1.your-objectstorage.com/gtfs-rt-storage/provider=be-sncb/service=TripUpdate/date=2026-09-28/17-00-00_to_18-00-00.parquet'
);

Propose a feed

If you publish GTFS or GTFS-RT for trains in Europe and it is missing above, send the links. Each proposal is checked by hand before a feed is added.

Only used to reply about this proposal.

The .zip timetable, if there is one.

One per line: trip updates, vehicle positions.

Do the feeds need a key or registration?

For example CC BY 4.0, or a link to the terms of use.

Update frequency, known issues, who to contact.

Your answers are stored on the archive’s server in the EU, only to review the proposal and reply to you. They are never published, and your IP address is not stored. To have them deleted, email gaspard@norse.be.

Remove or change a feed

If you publish a feed archived here and want it removed, collected differently, or credited another way, email gaspard@norse.be. Removal stops collection and deletes the files already stored.

Credits and licences

Every dataset belongs to its publisher and stays under that publisher’s licence: check it before reusing the data. Several countries are covered only thanks to volunteers who convert or relay operator data, in particular GitHub contributors, Transitous, aubin.app, hoermalmeister/gtfs-rehost, jbb.ghsq.de, kasznia.net, livetransport.eu, mkuran.pl, obehy.cz, vekejsn/gtfs-generators. The feed lists of the Transitous project helped find many of these sources.

The archive runs on the open-source gtfs-rt-aggregator and gtfs-parquet. Set in Overpass, under the SIL Open Font License.