# Bahn-API Realtime Delayinfos ## 1. Request Location via official API: Registered User and API key needed (get it here: https://data.deutschebahn.com/ and register for the fahrplan-api). Authorization via Bearer-Token Example: `http://api.deutschebahn.com/fahrplan-plus/v1/location/berlin` ```json= [ { "name": "BERLIN", "lon": 13.386988, "lat": 52.520501, "id": 8096003 }, { "name": "Berlin Hbf", "lon": 13.369549, "lat": 52.525589, "id": 8011160 } ] ``` ## 2. Request Live Timetable with station from Locationrequest via not so official API: `https://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?L=vs_java&start=yes&boardType=arr&time=24:00&input=8096021` Result: - Firstline: Stationname - Arrivaltime - Name of the Connection - Delay: - `no` for no delay - `cancel` if the connection is canceled - `+ $int` Minutes of delay Example: ``` 8096021 FRANKFURT(MAIN) 00:00 S 5 no 00:01 S 7 no 00:02 S 9 cancel 00:02 S 3 no 00:04 ICE 520 + 5 . . . ``` What worked on powershell: ```shell= httpie "https://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?L=vs_java&start=yes&boardType=arr&time=24:00&input=8096021" | Select-String -Pattern "ICE .* 520" -Context 1 ``` output: ``` 00:04 > ICE 520 no ``` # Request Traindetails: ``` http://api.deutschebahn.com/fahrplan-plus/v1/journeyDetails/620715%252F218185%252F762102%252F174146%252F80%253Fstation_evaId%253D8000105 ``` (hint: encode the already encoded detailsId from Timetable)