Die Init stellt insgesamt 3 Schnittstellen zur Verfügung: webapp (ehemals live.kvv.de), departureslive (ÖPNVLive App) und departureslive (KVV.Info App)
[ABGESCHALTET] Webapp Schnittstelle:
Diese API wurde von der INIT abgeschaltet, und liefert einen 404 Fehler.
Die Webapp-API bietet reine Standardfunktionen wie das Auflisten der Haltestellen und Abfahrten. Sie verfügt auch über die Fähigkeit Positionen der Fahrzeuge der AVG oder VBK anzuzeigen. Soweit ich weiß sind diese Echtzeitdaten, aus dem GPS der Fahrzeuge. Allerdings werden nur alle 30 Sekunden die Positionen gespeichert. Mit jeder Anfrage muss man sich mittels API-Key authentifizieren. Dieser API-Key muss als URL Parameter an die URL angehängt werden.
Alle Haltestellen auflisten:
Code:
{APIKEY} = Der benötigte API KEY
https://live.kvv.de/webapp/stops/all?key={APIKEY}
Eine Haltestelle auflisten anhand der ID:
Code:
{STOPID} = ID einer Haltestelle (Bsp: MPU für Marktplatz (Pyramide U))
{APIKEY} = Der benötigte API KEY
https://live.kvv.de/webapp/stops/bystop/{STOPID}?key={APIKEY}
Haltestelle auflisten anhand des Namens:
Code:
{NAME} = Name einer Haltestelle (Geeignet für Suchfelder oder ähnliches)
{APIKEY} = Der benötigte API KEY
https://live.kvv.de/webapp/stops/byname/{NAME}?key={APIKEY}
Haltestelle auflisten anhand einer Position:
Code:
{LAT} = Breitengrad (Bsp: 49.009591 für Marktplatz)
{LON} = Längengrad (Bsp: 8.40474301 für Marktplatz)
{APIKEY} = Der benötigte API KEY
https://live.kvv.de/webapp/stops/bylatlon/{LAT}/{LNG}?key={APIKEY}
Abfahrten einer Haltestelle abrufen:
Code:
{STOPID} = ID einer Haltestelle (Bsp: MPU für Marktplatz (Pyramide U))
{APIKEY} = Der benötigte API KEY
https://live.kvv.de/webapp/departures/bystop/{STOPID}?maxInfos=10&key={APIKEY}
Positionen aller Fahrzeuge auflisten:
Code:
{APIKEY} = Der benötigte API KEY
https://live.kvv.de/webapp/vehicles/all?key={APIKEY}
Positionen eines Fahrzeuges auflisten:
Code:
{ID} = ID des Fahrzeug's (Bsp: VBK250)
{APIKEY} = Der benötigte API KEY
https://live.kvv.de/webapp/vehicles/byvehicle/{ID}?key={APIKEY}
DeparturesLive Schnittstelle:
Die DeparturesLive-API ist die Schnittstelle der ÖPNVLive App der Init AG. Über diese Schnittstelle sind erweiterte Funktionen möglich. Auflisten von Haltestellen, Fahrtverläufen anhand FahrtenIDs sowie auflisten von Störungsmeldungen. Der API-Key muss als Header Feld "apikey" bei jeder Anfrage mit gesendet werden. Mir ist aufgefallen, dass wenn man die API zu oft abfragt, man irgendwann einen 429 bekommen kann. Die genauen Abfragelimitierungen sind mir nicht bekannt.
Die ÖPNVLive-API hat bisher noch keine Positionen für die unterirdischen Haltestellen eingepflegt. Ruft man allerdings die Abfahrten für Marktplatz (U) = MKU auf, so bekommt man auch richtige Abfahrtsdaten. Das Problem mit den kaputten Positionen der unterirdischen Haltestellen hat man bei der KVV.Info-API nicht. (Stand 19.05.22)
Alle Haltestellen auflisten:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
https://live.kvv.de/departureslive/stops/all
Haltestellen in der nähe eines Standorts auflisten:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
{LAT} = Breitengrad (zB: 49.009523)
{LON} = Längengrad (zB: 8.403916)
https://live.kvv.de/departureslive/stops/nearlatlon/{LAT}/{LON}
Haltestellen in der nähe eines Standorts auflisten:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
{LAT} = Breitengrad (zB: 49.009523)
{LON} = Längengrad (zB: 8.403916)
https://live.kvv.de/departureslive/stops/nearlatlon/{LAT}/{LON}
Haltestellen & POI's bei Name auflisten:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
{NAME} = Name der Haltestelle (zB: ZKM)
https://live.kvv.de/departureslive/points/bystring/{NAME}
https://live.kvv.de/departureslive/tp/stops/bystring/{NAME}
Abfahrten einer Haltestelle auflisten:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
{ID} = ID der Haltestelle (zB: _DEPLIVE_EFA_STOP_7000065)
https://live.kvv.de/departureslive/departures/bystopid/{ID}?maxInfos=-1
Abfahrten einer Haltestelle auflisten:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
{ID} = ID der Haltestelle (zB: ZKM, RGZ)
https://live.kvv.de/departureslive/departures/bystopid/{ID}?maxInfos=-1
Linien einer Haltestelle auflisten:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
{ID} = ID der Haltestelle (zB: ZKM, RGZ)
https://live.kvv.de/departureslive/routes/bystopid/{ID}
Fahrtverlauf anhand einer ID anzeigen:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
{ID} = ID des Trips (bekommt man aus dem /departures/bystop/ als "trip" zurück. zB: 463418)
https://live.kvv.de/departureslive/trips/bytripid/{ID}
Alle Störungsmeldungen auflisten:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
https://live.kvv.de/departureslive/perturbations/all
Eine Fahrt planen:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
{LAT_ORIGIN} = Breitengrad des Starts (zB: 48.99938)
{LON_ORIGIN} = Längengrad des Starts (zB: 8.386)
{LAT_DESTINATION} = Breitengrad (zB: 49.007464868527755)
{LON_DESTINATION} = Längengrad (zB: 8.509961672471697)
{DATETIME} = Datum mit Uhrzeit (zB: 2021-05-18_21-15)
https://live.kvv.de/departureslive/tp/trips?operatingDays=THU,FRI,SAT,TUE,SUN,WED,MON&activeFilters=0&originLon={LON_ORIGIN}&originLat={LAT_ORIGIN}&departureTime={DATETIME}&destinationLon={LON_DESTINATION}&destinationLat={LAT_DESTINATION}&numberOfTrips=10&realtime=false
DeparturesLive (KVV.info) Schnittstelle:
Die Endpunkte der Schnittstelle sind identisch mit der ÖPNVLive App. Der API-KEY ist identisch mit dem der ÖPNVLive API, die Haupt-URL ändert sich. Während die ÖPNVLive API direkte Daten aus den Bordcomputern bekommt, bekommt die KVV.Info API Ihre Daten von den EFA-Servern des KVV.
ÖPNVLive:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: %C3%96PNVlive/864 CFNetwork/1237 Darwin/20.4.0
https://live.kvv.de/departureslive/stops/all
KVV.Info:
Code:
[HEADER]
apiKey: KEY
ownerId: Pesudo GUID (zB: 7D97DE86-E0D5-4714-90C8-461FDFF5ADE5)
User-Agent: KVV.info/1005 CFNetwork/1237 Darwin/20.4.0
https://projekte.kvv-efa.de/departureslive/stops/all