Deutsche Bahn Train Times, Fares & Routes Scraper
Scrape German and European train connections from bahn.de: departure and arrival times, duration, transfers, ICE/IC/RE train types and cheapest fares across 5500+ stations. Export to JSON, CSV or Excel.
{ "from": "Berlin Hbf", "to": "München Hbf", "departure": "2026-07-26T08:36:00", "arrival": "2026-07-26T12:46:00", "durationMinutes": 250, "transfers": 0, "trainTypes": ["ICE"], "trains": ["ICE 1005"], "price": 149.99 }
Cada corrida devuelve registros limpios y tipados, listos para tu CRM, tu hoja de cálculo o tu base de datos.
- Un registro limpio por resultado, deduplicado y normalizado
- Esquema estable en JSON, CSV o Excel, o léelo por la API de Apify
- Pagas por uso en la nube, sin instalar ni mantener nada
Un registro real de ejemplo, tal como lo recibes.
| From | To | Departure | Arrival |
|---|---|---|---|
| Berlin Hbf | München Hbf | 2026-07-26T08:36:00 | 2026-07-26T12:46:00 |
| Berlin Hbf | München Hbf | 2026-07-26T08:36:00 | 2026-07-26T12:52:00 |
| Berlin Hbf | München Hbf | 2026-07-26T09:36:00 | 2026-07-26T13:43:00 |
{ "from": "Berlin Hbf", "to": "München Hbf", "departure": "2026-07-26T08:36:00", "arrival": "2026-07-26T12:46:00", "durationMinutes": 250, "transfers": 0, "trainTypes": ["ICE"], "trains": ["ICE 1005"], "price": 149.99 }
Preguntas frecuentes
Which countries and stations does this cover?
It covers the full Deutsche Bahn network across Germany plus cross-border European connections that bahn.de sells, including hubs like Wien Hbf, Zurich HB, Amsterdam Centraal and Paris. You can search any of the 5500+ stations and cities in the bahn.de timetable by name.
How many connections can I get per run?
Set Max Items to control the count. The scraper works forward in time from your chosen departure and keeps going until it reaches your limit, so you can collect dozens of connections for a single route and date.
Can I search by arrival time instead of departure?
Yes. Set Time refers to "Arrive by" and the scraper returns connections that arrive at or before the time you set, instead of departing from it. You can also pick first or second class and cap the number of transfers.
Why is the price sometimes empty?
Some cross-border or regional connections do not have a single through ticket on bahn.de, so no combined price is returned and the price is left empty while the times, legs and train types are still captured. Enable fare details to also pull every individual fare offer where available.
Do I need to configure a proxy?
No. A German residential proxy is enabled by default, so you do not need to configure anything to retrieve live connections and prices reliably. Station search works without it.
Listo cuando tú lo estés.
Corre el scraper en Apify ahora mismo, o pídenos uno a la medida de lo que necesitas.