Skip to content

Deutsche Bahn

Train connections, train fares and train delays

Back to tools

Train schedules, tickets and travel information in Germany.

Search train connections

Search train connections

Find Deutsche Bahn train connections by station or city and date, with fares, delays and service notes. Fares and real-time information may be unavailable for some journeys.

Your information

Travel date, for example 2026-09-30.

Local time in HH:MM, for example 08:00.

Starting station or city, for example Berlin Hbf.

Destination station or city, for example Frankfurt.

Maximum number of connections, for example 10.

Travel class, for example second.

More options

Number of adults, for example 1.

Whether time is departure or arrival, for example departure.

1 credit per completed run

The same inputs also work from your code or an AI assistant. See For developers.

Example results

Train connections

Choose an action

About the Deutsche Bahn tool

Deutsche Bahn (DB) Search train connections returns routes, fares, delays and service notes for an origin, destination and travel date.

Search train connections can also use local time, passenger count and travel class.

Built from bahn.de. Last checked Sep 29, 2026.

Actions

Search train connections

1 credit

Find Deutsche Bahn train connections by station or city and date, with fares, delays and service notes. Fares and real-time information may be unavailable for some journeys.

What you provide

FieldTypeRequiredDescription
DatedateDateRequiredTravel date, for example 2026-09-30.Example: 2026-10-01
TimetimeTextOptionalLocal time in HH:MM, for example 08:00.Example: 09:00
AdultsadultsNumberOptionalNumber of adults, for example 1.
OriginoriginTextRequiredStarting station or city, for example Berlin Hbf.Example: Hamburg Hbf
Time Istime_isTextOptionalWhether time is departure or arrival, for example departure.Example: Arrival
DestinationdestinationTextRequiredDestination station or city, for example Frankfurt.Example: Bremen Hbf
Max Resultsmax_resultsNumberOptionalMaximum number of connections, for example 10.Example: 12
Travel Classtravel_classTextOptionalTravel class, for example second.Example: First

What you get

FieldTypeDescription
ConnectionsconnectionsList
Trainsconnections[].trainsList
Changesconnections[].changesNumberExample: 0
Currencyconnections[].currencyTextExample: EUR
Page Linkconnections[].page_linkText
Travel Timeconnections[].travel_timeTextExample: 1h 11m
Cheapest Priceconnections[].cheapest_priceNumberExample: 17.1
Arrival Stationconnections[].arrival_stationTextExample: Bremen Hbf
Disruption Notesconnections[].disruption_notesList
Realtime Arrivalconnections[].realtime_arrivalText
Departure Stationconnections[].departure_stationTextExample: Hamburg Hbf
Scheduled Arrivalconnections[].scheduled_arrivalTextExample: 2026-10-01T10:26:00+02:00
Arrival Station IDconnections[].arrival_station_idTextExample: 8000050
Realtime Departureconnections[].realtime_departureText
Scheduled Departureconnections[].scheduled_departureTextExample: 2026-10-01T09:15:00+02:00
Departure Station IDconnections[].departure_station_idTextExample: 8002549
Arrival Delay (minutes)connections[].arrival_delay_minutesNumber
Departure Delay (minutes)connections[].departure_delay_minutesNumber

Example result

For Date: 2026-10-01, Time: 09:00, Origin: Hamburg Hbf, Destination: Bremen Hbf, Max Results: 12, Travel Class: First

JSON
{
  "connections": [
    {
      "trains": [
        "RE4"
      ],
      "changes": 0,
      "currency": "EUR",
      "page_link": "https://www.bahn.de/buchung/fahrplan/suche#sts=true&so=Hamburg+Hbf&zo=Bremen+Hbf&kl=1&r=13%3A16%3AKLASSENLOS%3A1&soid=A%3D1%40O%3DHamburg+Hbf%40X%3D10006909%40Y%3D53552733%40U%3D80%40L%3D8002549%40p%3…",
      "travel_time": "1h 11m",
      "cheapest_price": 17.1,
      "arrival_station": "Bremen Hbf",
      "disruption_notes": [],
      "realtime_arrival": null,
      "departure_station": "Hamburg Hbf",
      "scheduled_arrival": "2026-10-01T10:26:00+02:00",
      "arrival_station_id": "8000050",
      "realtime_departure": null,
      "scheduled_departure": "2026-10-01T09:15:00+02:00",
      "departure_station_id": "8002549",
      "arrival_delay_minutes": null,
      "departure_delay_minutes": null
    },
    {
      "trains": [
        "ICE 519"
      ],
      "changes": 0,
      "currency": "EUR",
      "page_link": "https://www.bahn.de/buchung/fahrplan/suche#sts=true&so=Hamburg+Hbf&zo=Bremen+Hbf&kl=1&r=13%3A16%3AKLASSENLOS%3A1&soid=A%3D1%40O%3DHamburg+Hbf%40X%3D10006909%40Y%3D53552733%40U%3D80%40L%3D8002549%40p%3…",
      "travel_time": "56m",
      "cheapest_price": 43.99,
      "arrival_station": "Bremen Hbf",
      "disruption_notes": [],
      "realtime_arrival": null,
      "departure_station": "Hamburg Hbf",
      "scheduled_arrival": "2026-10-01T10:41:00+02:00",
      "arrival_station_id": "8000050",
      "realtime_departure": null,
      "scheduled_departure": "2026-10-01T09:45:00+02:00",
      "departure_station_id": "8002549",
      "arrival_delay_minutes": null,
      "departure_delay_minutes": null
    }
  ]
}

For developers

Call it from your code with one request. Change the values in input to run it on new data. To get an API key, open Developers at the bottom of Studio, turn on Developer mode and go to API keys.

cURL
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@deutsche-bahn",
  "visibility": "public",
  "operation": "search_train_connections",
  "version": 1,
  "input": {
    "date": "2026-10-01",
    "time": "09:00",
    "origin": "Hamburg Hbf",
    "destination": "Bremen Hbf",
    "max_results": 12,
    "travel_class": "first"
  },
  "response": {
    "format": "json"
  }
}'

What you can do with it

  • Compare train routes between cities
  • Check journey times and required changes
  • Review fares before choosing a connection
  • Check departure and arrival delays
  • Identify service notes affecting a journey

Questions about Deutsche Bahn

Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

Can I call this Deutsche Bahn tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

Do I need a Deutsche Bahn account?

No. You only need a Fous account.

How current is the data?

Fous gets the data from bahn.de when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

What train connections are available between two places?

Search train connections returns routes between the supplied origin and destination for the chosen travel date.

How long does a train journey take?

Search train connections returns travel times and connection changes.

Are there delays or service notes for a journey?

Search train connections can return delays, real-time departure and arrival details, and disruption notes; this information may be unavailable for some journeys.

All Travel toolsBrowse all tools