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 execução retorna registros limpos e tipados, prontos para o seu CRM, planilha ou banco de dados.
- Um registro limpo por resultado, deduplicado e normalizado
- Esquema estável em JSON, CSV ou Excel, ou leia pela API da Apify
- Pague pelo uso na nuvem, sem instalar ou manter nada
Um registro real de exemplo, exatamente no formato que você recebe.
| 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 }
Perguntas frequentes
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.
Pronto quando você estiver.
Rode o scraper na Apify agora mesmo, ou peça um feito sob medida para o que você precisa.