Skip to content

Instantly share code, notes, and snippets.

@derhuerst
Last active September 7, 2024 07:46
Show Gist options
  • Save derhuerst/2b7ed83bfa5f115125a5 to your computer and use it in GitHub Desktop.
Save derhuerst/2b7ed83bfa5f115125a5 to your computer and use it in GitHub Desktop.
List of HAFAS API Endpoints

List of HAFAS API Endpoints

This is a list of HAFAS API endpoints, all with different data versions, API versions, output formats and URL configurations. Help me complete this list!

todo: http://www.fahrplanauskunftssysteme.de/?seitenID=27

Table of Contents

International

Eco Passenger Project

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) works.

Railteam (Europe)

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) doesn't work.

Supports EU-Spirit.

Austria

ÖBB

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) works.

VAO

See https://gist.github.com/anonymous/a5fc856bc80ae7364721943243f934f4 for more details.

English (/en) and German (/de) version works.

– thanks to dnlggr!

Belgium

Belgianrail

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) shows the regular version.

API better than HAFAS: https://hello.irail.be/

Denmark

rejseplanen.dk

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) works.

Germany

Deutsche Bahn

db-hafas

See https://gist.github.com/anonymous/d3323a5d2d6e159ed42b12afd0380434 for more details.

more interesting stuff:

GET /addons/dbmobile.cfg HTTP/1.1
host: reiseauskunft.bahn.de
Accept: */*
Authorization: Basic YXBwOmJhaG5kaXJla3Q=
Accept-Encoding: gzip, deflate

HTTP/1.1 200 OK
Content-Type: text/plain; charset=ISO-8859-1

ESUITE=YES
AUSKUNFTURL=http://reiseauskunft.bahn.de/bin/mgate.exe
AUSKUNFTSECUREURL=https://reiseauskunft.bahn.de/bin/query.exe
serverKey=NULL
QUERY=https://reiseauskunft.bahn.de/bin
QUERYSECURE=https://reiseauskunft.bahn.de/bin
QUERYP2W=http://persoenlicherfahrplan.bahn.de/bin/pf
DEEPLINKMOBIL=https://mobile.bahn.de/bin/mobil
PUSHMOBIL=https://mobile.bahn.de/bin/mobil/query.exe/
ESUITEPUSH=https://fahrkarten.bahn.de/mobile/st/st.post?sc=vu
AUSLAND=YES
FACHKONFIG=http://reiseauskunft.bahn.de/addons/fachkonfig.cf
FACHKONFIGNEU=http://reiseauskunft.bahn.de/addons/fachkonfig-utf8.cfg
ESUITESERVICES=https://fahrkarten.bahn.de/mobile/dbc/xs.go?
ESUITENEUREG=https://fahrkarten.bahn.de/mobile/st/st.post?sc=rg
ESUITEBAHNBONUS=https://fahrkarten.bahn.de/mobile/st/st.post?sc=bbpu
ESUITEPREISFINDERSUCHE=https://ps.bahn.de/preissuche/preissuche/psc_service.go?&service=pscangebotsuche
ESUITEPREISFINDERDETAILS=https://ps.bahn.de/psmobile/ps/st.post?sc=details
ESUITEORDERDETAILS=https://fahrkarten.bahn.de/mobile/ru/rs.post?
ESUITESEARCHORDER=https://fahrkarten.bahn.de/mobile/ru/rs.post?sc=suche
ESUITECAPTCHA=http://captcha.bahn.de/cgi-bin/scramble-standalone.pl?
LOGINREQUEST=https://fahrkarten.bahn.de/mobile/st/st.post?sc=pwvergessen
DBRENTSERVICE=https://api-broker-prod.service.dbrent.net/v1
DBRENTIDSERVICE=https://auth-prod.service.dbrent.net/auth/realms/apiv4
DBRENTKSTAND=https://reiseauskunft.bahn.de/addons/dbrent_and_prod.p12
DBRENTKSTPWAND=umMcGNKGRr/U37cy4x5adw==
DBRENTKSTKEYPWAND=umMcGNKGRr/U37cy4x5adw==
DBRENTKSTIOS=https://reiseauskunft.bahn.de/addons/dbrent_ios_prod.p12
DBRENTKSTPWIOS=umMcGNKGRr/U37cy4x5adw==
DBRENTKSTKEYPWIOS=umMcGNKGRr/U37cy4x5adw==
MVVTEASER=NO
AVVTEASER=YES
VRNTEASER=YES
VGNTEASER=NO
ESUITEVERBUNDSTART=https://fahrkarten.bahn.de/mobile/vbbu/os.post?
EOSSHOPURL=https://www.fahrkartenshop2-bahn.de/openshop-web/start.xhtml
CAPTCHA=NO
PREISANZEIGEANDROID=1
PREISANZEIGEIOS=YES
MAPINPLANNERIOS=YES
MAPINPLANNERANDROID=YES
PAUSCHALPREIS=https://fahrkarten.bahn.de/mobile/st/st.post?sc=pp
REALTIMEREQLIMIT=4320
HCI_MAXSCROLLS=7
EMBCENABLED=1
CMSBASEURL=http://www.bahn.de
CMSOUTDATED=http://www.bahn.de/m/view/{SPRACHE}/hilfe/apps/dbnavigator_{OS}_{RELEASE}.shtml
CMSHILFE=http://www.bahn.de/m/view/{SPRACHE}/hilfe/apps/dbnavigator_{OS}_{RELEASE}.shtml
CMSINFO=http://www.bahn.de/m/view/{SPRACHE}/apps/uebersicht.shtml
CMSINFOHILFE=https://www.bahn.de/m/view/{SPRACHE}/apps/{OS}/uebersicht_{OS}_{RELEASE}.shtml
CMSIMPRESSUM=http://www.bahn.de/m/view/{SPRACHE}/home/kontakt/impressum.shtml
CMSRECHTLICHES=http://www.bahn.de/m/view/{SPRACHE}/home/agb/uebersicht.shtml
CMSBAHNCARDSERVICE=https://www.bahn.de/m/view/{SPRACHE}/bahncard/bahncard-services.shtml
CMSVERSPAETUNGSALARM=http://www.bahn.de/m/view/{SPRACHE}/buchung/auskunft/verspaetungsalarm.shtml
CMSFEEDBACK=http://www.bahn.de/m/view/{SPRACHE}/feedback/apps/dbnavigator_{OS}_{RELEASE}.shtml
CMSMVVINFO=https://www.bahn.de/m/view/de/angebot/verbund/mvv/netzplaene-konditionen.shtml
CMSAGB=http://www.bahn.de/m/view/{SPRACHE}/home/agb/befoerderungsbedingungen.shtml
CMSNUTZUNGSBEDINGUNGEN=http://www.bahn.de/m/view/{SPRACHE}/home/agb/nutzungsbedingungen.shtml
CMSHINWEISEHANDYTICKET=http://www.bahn.de/m/view/{SPRACHE}/home/agb/nutzungshinweise_handyticket.shtml
TRACKING=https://st.bahn.de/b/ss/dbbahnmob/5/
LAGEPLAN=http://railnavigator.bahn.de/rnav/lageplan
BIKECAR=db-mapplet.hafas.de/bin/stops-and-bikes/540
BIKECARXS=http://db-mapplet.hafas.de/bin/stops-and-bikes/xs/mgate.exe
BCSELFSERVICESKONFIG=http://reiseauskunft.bahn.de/addons/MobileBcPortalStammdatenConfiguration.properties
BCSELFSERVICESBASEIMG=http://reiseauskunft.bahn.de/content/apps/img/bcportal/
BCSELFSERVICESBASECONTENT=https://fahrkarten.bahn.de/mobile/bcpt/st.post?
BCSELFSERVICESREGISTRATION=https://fahrkarten.bahn.de/mobile/bcpt/st.post?sc=bcservices
BCSELFSERVICESSWITCH=YES
BHFPLAENEKONFIG=http://reiseauskunft.bahn.de/addons/bhflageplaene.cfg
NOTIFICATIONKONFIG=http://reiseauskunft.bahn.de/addons/bannerfile_{OS}.txt
TRAINSEARCH=http://reiseauskunft.bahn.de/bin/mobil/trainsearch.exe/
DEEPLINKEXTERNAL=https://mobile.bahn.de/bin/mobil/query.exe/{LANGPATH}?
SESSION=ODg5fDEwN3wyMDh8MjAyfDMyfDYyM3wzNDB8NDIwfDQxNHwyNTY=
SELFCHECKINSTART=2015-03-01T00:00:00
SELFCHECKINEND=2015-03-31T23:59:59
SELFCHECKINURL=https://sfc-bahn.de/selfcheckindemo
SPF_VORVERK_INL=0
SPF_VORVERK_AUS=0
SIGNATURE=5f3b113558bdbc99a076313a1dad85e5

See DB navigator requests

DB Schenker (Germany)

DB Schenker ist the logistics branch of Deutsch Bahn.

Regular version (/en) works.

Mobile version (/eox) doesn't work.

Text version (/el) shows the regular version.

Extra feature: http://db-erreichbarkeit.hafas.de/bin/query.exe

historical version

protected version

This version ist HTTP basic auth protected (unencrypted).

BVG (Berlin)

Regular version (/en) works (only on fahrinfo.bvg.de, but not on mobil.bvg.de).

Mobile version (/eox) works.

Text version (/el) shows to the regular version.

weird version

This installation serves the old BVG landing page, even though it has the latest data.

Regular version (/en) works.

Mobile version (/eox) shows the text version (/el).

Text version (/el) shows to the regular version.

S-Bahn München (Munich)

Regular version (/dn) works.

Mobile version (/dox) is just hilarious.

Text version (/el) works.

VBB (Berlin & Brandenburg)

vbb-hafas

See https://gist.github.com/anonymous/9203ea600333470be8f5af4e0761b03c for more details.

Regular version (/en) works.

Mobile version (/eox) shows the (responsive) regular version.

Text version (/el) doesn't work.

Supports EU-Spirit (switchEuspirit=yes).

Supports DELFI (iER=yes).

another version

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) doesn't work.

Same UI, same data, but different server.

INVG (Ingolstadt)

Regular version (/en) works.

Mobile version (/eox) doesn't work.

Text version (/el) shows to the regular version.

Metronom (Niedersachsen)

Regular version (/en) works.

Mobile version (/eox) doesn't work.

Text version (/el) shows the regular version.

NASA (Sachsen-Anhalt)

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) shows the regular version.

This is hilarious: http://mobil.insa.de/ and http://fahrinfo.insa.de/

NVV (Nordhessen)

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) works.

Extra feature: http://auskunft.nvv.de/auskunft/bin/jp/query.exe/dn?view=trafficlist

RSAG (Rostock)

Regular version (/en) works.

Mobile version (/eox) shows the (responsive) regular version.

Text version (/el) shows the regular version.

Supports EU-Spirit (/hafas/eu/query.exe).

Supports DELFI (iER=yes).

VVW (Rostock)

Regular version (/en) works.

Mobile version (/eox) doesn't work.

Text version (/el) shows the regular version.

VMT (Thüringen)

Regular version (/en) works.

Mobile version (/eox) doesn't work.

Text version (/el) works.

Rhein-Main-Verkehrsverbund (RMV)

Metropolitan area in Hessia around Frankfurt

Regular version (/dn) works.

Mobile version (/dox) works.

Text version (/dl) shows the regular version.

– thanks to telegnom!

Salzburger Verkehrsverbund

SaarVV/VGS (Saarland)

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) doesn't work.

Supports EU-Spirit (/cgi-bin/eu/query.exe).

Supports DELFI (iER=yes).

VSN (Niedersachsen)

Regular version (/en) works.

Mobile version (/eox) doesn't work.

Text version (/el) shows the regular version.

Supports DELFI (iER=yes).

NAH.SH (Schleswig-Holstein)

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) shows the regular version.

Extra feature: http://nah.sh.hafas.de/bin/p2w/query-p2w.exe

KVB (Köln)

Regular version (/dn) works.

Mobile version (/dox) shows the regular version.

Text version (/dl) shows the regular version.

VBN (Bremen & Niedersachsen)

Regular version (/en) works.

Mobile version (/eox) doesn't work.

Text version (/el) shows the regular version.

Supports EU-Spirit (/hafas/eu/query.exe).

Luxembourg

Mobiliteitszentral (Luxembourg)

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) shows to the regular version.

This is hilarious: http://mobil.insa.de/ and http://fahrinfo.insa.de/

Poland

Bilkom

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) works.

PKP

See https://gist.github.com/anonymous/2fd097e38ad778ed6d457253e19bd060 for more details.

Sweden

Samtrafiken

Regular version (/en) works.

Mobile version (/eox) doesn't work, but regular version is responsive.

Text version (/el) doesn't work.

Switzerland

SBB

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) shows the regular version.

TPG (Genf)

Regular version (/en) works.

Mobile version (/eox) doesn't work.

Text version (/el) works.

ZVV (Zürich)

Regular version (/en) works.

Mobile version (/eox) works.

Text version (/el) shows the regular version.

What a beautiful interface! Responsive and map-based!

United States of America

SEPTA (Pennsylvania)

Regular version (/en) works.

Mobile version (/eox) doesn't work.

Text version (/el) works, but isn't really text-based.

Defunct

Kombinierter Fähr- und Autoroutenplaner

Ferry routing, operated from 2006 to 2010.

Regular version (/en) works.

Mobile version (/eox) doesn't work.

Text version (/el) works.

more stuff

@norpol
Copy link

norpol commented Jun 6, 2018

@0bmxa
Copy link

0bmxa commented Feb 5, 2019

@muekoeff
Copy link

Found an official API documentation from 2015 by HaCon published by the German Ministry of Traffic BMVI.

@derhuerst
Copy link
Author

Found an official API documentation from 2015 by HaCon published by the German Ministry of Traffic BMVI.

Keep in mind that this documentation is for the rest.exe HAFAS APIs. Most APIs in this list are "mobile APIs", often with mgate or iphone in their name.

@arminrosu
Copy link

@derhuerst
Copy link
Author

derhuerst commented Jan 15, 2021

FYI: We started the transport-apis repo to have a community-maintained, machine-readable list of transport APIs.

@jnsw
Copy link

jnsw commented Jul 27, 2021

@derhuerst
Copy link
Author

@jnsw
Copy link

jnsw commented Jul 28, 2021

@derhuerst nice thanks!

@NyCodeGHG
Copy link

KVB's Hafas instance was changed to https://auskunft.kvb.koeln/gate

@derhuerst
Copy link
Author

KVB's Hafas instance was changed to https://auskunft.kvb.koeln/gate

Thanks for noting this. The transport-apis repo already contains the new URL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment