7.7 KiB
Deutsche Bahn Public Transport API
The public endpoint is 2.db.transport.rest
. This API returns data in the Friendly Public Transport Format 1.2.0
.
Note: In order to improve this API, I would to know which software projects use it. Please send an X-Identifier
header (e.g. my-awesome-tool
) to let me know who you are. I you don't provide it, a hash of the client IP will be logged.
all routes
GET /stations?query=…
Passes all parameters into db-stations-autocomplete
.
query
: Required.completion
:true
/false
– Default istrue
fuzzy
:true
/false
– Default isfalse
Content-Type
: application/json
examples
curl 'https://2.db.transport.rest/stations?query=jungfernheide'
# note the typo
curl 'https://2.db.transport.rest/stations?query=jungfernhiede&fuzzy=true'
GET /stations
Passes all parameters into db-stations
.
id
: Filter by ID.name
: Filter by name.coordinates.latitude
: Filter by latitude.coordinates.longitude
: Filter by longitude.weight
: Filter by weight.
Content-Type
: application/json
examples
curl 'https://2.db.transport.rest/stations?name=hannover&coordinates.latitude=52.3765387'
GET /stations/all
Dumps full.json
from vbb-stations
.
Content-Type
: application/json
examples
curl 'https://2.db.transport.rest/stations/all'
GET /stations/:id/departures
Returns departures at a station.
Note: As stated in the Friendly Public Transport Format 1.2.0
, the returned departure
and arrival
times include the current delay.
Passes all parameters into departures(…)
from db-hafas
.
when
: A UNIX timestamp or anything parsable byparse-messy-time
. Default: now.duration
: Show departures for the nextn
minutes. Default:10
.
Content-Type
: application/json
examples
curl 'https://2.db.transport.rest/stations/008011160/departures?when=tomorrow%206pm'
GET /journeys
Output from require('db-hafas').journeys(…)
. Start location and end location must be either in station format or in POI/address format (you can mix them).
Note: As stated in the Friendly Public Transport Format 1.2.0
, the returned departure
and arrival
times include the current delay.
station format
from
: Required. Station ID (e.g.008011162
).to
: Required. Station ID (e.g.008011162
).
POI format
from.latitude
/to.latitude
: Required. Latitude (e.g.52.543333
).from.longitude
/to.longitude
: Required. Longitude (e.g.13.351686
).from.name
/to.name
: Name of the locality (e.g.Atze Musiktheater
).from.id
/to.id
: Required. POI ID (e.g.991598902
).
address format
from.latitude
/to.latitude
: Required. Latitude (e.g.52.543333
).from.longitude
/to.longitude
: Required. Longitude (e.g.13.351686
).from.address
/to.address
: Required. Address (e.g.Voltastr. 17
).
other parameters
departure
/arrival
: A UNIX timestamp or anything parsable byparse-messy-time
. Default: now. Use eitherdeparture
orarrival
.earlierThan
: By passing an identifier from another query, get earlier journeys than before. Mutually exlusive withlaterThan
,departure
&arrival
.laterThan
: By passing an identifier from another query, get later journeys than before. Mutually exclusive withearlierThan
,departure
&arrival
.results
: Maximum number of results. Default:5
.via
: Station ID. Default:null
.stopovers
: Return stations on the way? Default:false
.transfers
: Maximum number of transfers. Default:5
.transferTime
: Minimum time in minutes for a single transfer. Default:0
.accessibility
: Possible values:partial
,complete
. Default:none
.bike
: Return only bike-friendly journeys. Default:false
.tickets
: Return information about available tickets. Default:false
.language
: Language to get results in. Default:en
.polylines
: Return a shape for each leg? Default:false
.remarks
: Parse & expose hints & warnings? Default:true
.startWithWalking
: Consider walking to nearby stations at the beginning of a journey? Default:true
.scheduledDays
: Parse which days each journey is valid on? Default:false
.
You can filter by means of transportation using these parameters:
taxi
: Include taxis? Default:false
.tram
: Include trams? Default:true
.ferry
: Include ferries? Default:true
.bus
: Include buses? Default:true
.subway
: Include U-Bahn trains? Default:true
.suburban
: Include S-Bahn trains? Default:true
.regional
: Include RB/ODEG trains? Default:true
.regionalExp
: Include RE/ODEG trains? Default:true
.national
: Include [IC/EC trains](https://en.wikipedia.org/wiki/Intercity_(Deutsche_Bahn)? Default:true
.nationalExp
: Include ICE trains? Default:true
.
Content-Type
: application/json
examples
curl 'https://2.db.transport.rest/journeys?from=008011162&to=008000281'
curl 'https://2.db.transport.rest/journeys?from=008004158&to.name=Atze%20Musiktheater&to.latitude=52.543333&to.longitude=13.351686'
curl 'https://2.db.transport.rest/journeys?from=…&to=…&results=3&bus=false&tickets=true'
GET /locations
Output from require('db-hafas').locations(…)
query
: Required. (e.g.Alexanderplatz
)results
: How many stations shall be shown? Default:10
.stations
: Show stations? Default:true
.poi
: Show points of interest? Default:true
.addresses
: Show addresses? Default:true
.
Content-Type
: application/json
examples
curl 'https://2.db.transport.rest/locations?query=Alexanderplatz'
curl 'https://2.db.transport.rest/locations?query=Pestalozzistra%C3%9Fe%2082%2C%20Berlin&poi=false&stations=false'
GET /radar
north
: Required. Northern latitude.west
: Required. Western longtidue.south
: Required. Southern latitude.east
: Required. Eastern longtidue.results
: How many vehicles shall be shown? Default:256
.duration
: Compute frames for how many seconds? Default:30
.frames
: Number of frames to compute. Default:3
.
Content-Type
: application/json
examples
curl 'https://2.db.transport.rest/radar?north=52.52411&west=13.41002&south=52.51942&east=13.41709'