Deutsche Bahn Train Connections & Prices Scraper
Pricing
from $8.00 / 1,000 results
Deutsche Bahn Train Connections & Prices Scraper
Extract German and European train connections from bahn.de by route, date and time. Scrape departure and arrival times, duration, transfers, ICE/IC/RE train types, cheapest ticket price and full fare breakdown across 5500+ stations.
Pricing
from $8.00 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Deutsche Bahn Scraper
Extract German and European train connections from bahn.de: live departure and arrival times, duration, transfers, ICE/IC/RE train types and ticket prices across 5500+ stations.
| 22 fields per record | Germany + Europe coverage | JSON / CSV / Excel output formats | Updated 2026-06-27 |
What you get
Each record is one train connection between two stations on a chosen date and time, with its full leg breakdown, train types and cheapest available fare. Use it to monitor prices, feed a travel planner, compare routes or build a timetable dataset.
- from: origin station name
- to: destination station name
- departure: departure datetime of the connection
- arrival: arrival datetime of the connection
- durationMinutes: total travel time in minutes
- transfers: number of transfers (changes) on the connection
- trainTypes: distinct train categories used, such as ICE, EC_IC, IR, REGIONAL or SBAHN
- trains: the individual trains in order, such as ICE 505
- price: cheapest standard fare for the selected class, when bahn.de offers a through ticket
- currency: currency of the price, usually EUR
- priceClass: travel class the price refers to
- legs: per-leg breakdown with from, to, departure, arrival, train, train type, direction and number of stops
- notices: service notices such as construction work or expected delays on the route
- fromExtId: numeric station id of the origin
- toExtId: numeric station id of the destination
- tripId: bahn.de identifier of the connection
- searchDate: the travel date the connection was searched for
- fares*: full fare breakdown with each offer name (Flexpreis, Sparpreis, Super Sparpreis, BahnCard offers), class and price
- cheapestFareName*: name of the cheapest fare found across all offers
- cheapestFarePrice*: price of the cheapest fare found
- observedAt: when this connection was last seen by the scraper
*These fields only appear when withDetails is set to true.
Who is it for
| Use case | Who benefits |
|---|---|
| Monitor ticket prices on a route over time | Travel deal sites and price trackers |
| Feed a multimodal trip planner with live timetables | Mobility and travel app developers |
| Compare routes, durations and transfers between cities | Corporate travel and expense teams |
| Build a historical dataset of train schedules and fares | Data analysts and researchers |
| Alert on delays or construction notices for a route | Commuter tools and operations teams |
Frequently Asked Questions
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 pages forward in time from your chosen departure, returning roughly five connections per page, 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.
Why does this need a German residential proxy?
The bahn.de booking endpoint blocks requests from datacenter networks, so a German residential proxy is enabled by default to retrieve live connections and prices reliably. Station search works without it.
Example use cases
Ready-to-run example tasks, each preconfigured for a common scenario. Open one and press run, or use it as a template:
- Deutsche Bahn Berlin to Munich: Scrape Deutsche Bahn train connections from Berlin to Munich with departure, arrival, duration, transfers and price.
- Deutsche Bahn Cologne to Berlin: Pull Deutsche Bahn train connections from Cologne to Berlin with departure, arrival, duration and price.
- Deutsche Bahn Frankfurt to Hamburg: Track Deutsche Bahn trains from Frankfurt to Hamburg with times, duration, transfers and live fares.
Related scrapers
Need data from the same space? Here are other scrapers we build and maintain:
- Eventbrite Events Scraper: Extract public Eventbrite events by search, including dates, venues, organizers and ticket info.
- Google News Scraper: Scrape Google News articles by query or topic with titles, sources, links and publish dates.
- Google Play App Details Scraper: Extract app listings and details from the Google Play Store by search, app IDs or developer.
- Instagram Profile & Posts Scraper: Extract public Instagram profiles and recent posts by username without login.
- YouTube Scraper: Scrape YouTube videos and channels by search query, video URL or channel URL.
- Reddit Posts & Comments Scraper: Extract Reddit posts and comments from subreddits and search results using the public Reddit feeds.
More scrapers at scrapers.lat
This actor is built and maintained by scrapers.lat, where we publish scrapers for Latin American and US public platforms: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at scrapers.lat.
This actor is an independent tool and has no affiliation with Deutsche Bahn. It only accesses data that is publicly available on the platform. Use it in accordance with Deutsche Bahn's terms of service.
