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 }
每次运行都返回干净、带类型的记录,可直接用于你的 CRM、表格或数据库。
- 每个结果对应一条干净记录,已去重并规范化
- JSON、CSV 或 Excel 的稳定结构,也可通过 Apify API 读取
- 在云端按用量付费,无需安装或维护
一条真实的示例记录,正是你收到的结构。
| 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 }
常见问题
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.