Skip to content

officialrealTM/db-api-wrapper

Repository files navigation

DB API Wrapper

Ein leichtgewichtiger Wrapper für die Fahrplandaten der Deutschen Bahn. Die API nutzt die Open-Source-Bibliothek db-vendo-client, die das offizielle DB-Vendo-Backend anbindet. Damit lassen sich Verbindungen, Echtzeitverspätungen und Abfahrtszeiten im gesamten deutschen Fernverkehr und Nahverkehr strukturiert als JSON abfragen.

Wofür kann man das nutzen?

  • Smart Home Dashboards: Nächste Abfahrten deines Bahnhofs auf einem Raspberry Pi oder Magic Mirror anzeigen.
  • Automatisierungen: Skript, das benachrichtigt, wenn der gewohnte Zug Verspätung hat.
  • Eigene Apps: Eigenes Frontend (Web, iOS, Android) auf Basis echter DB-Livedaten ohne Web-Scraping.
  • Reiseplanung: Live-Verbindungen zwischen beliebigen Bahnhöfen in Deutschland abfragen.

Installation

  1. Node.js installieren.
  2. Projekt herunterladen oder klonen.
  3. Abhängigkeiten installieren:
npm install

Server starten

node server.mjs

Der Server läuft standardmäßig auf http://localhost:3000.

Konfiguration (settings.json)

Das Verhalten des Servers lässt sich über settings.json anpassen, ohne den Code zu ändern:

{
  "port": 3000,
  "locations": {
    "defaultResults": 8
  },
  "journeys": {
    "defaultResults": 5,
    "includeStopovers": true
  },
  "departures": {
    "defaultDuration": 60
  }
}
Einstellung Beschreibung
port Port des API-Servers
locations.defaultResults Max. Treffer bei der Haltestellensuche
journeys.defaultResults Anzahl zurückgegebener Verbindungen
journeys.includeStopovers Zwischenhalte in Verbindungen mitliefern
departures.defaultDuration Zeitraum in Minuten für Abfahrtsmonitor

Test-Oberfläche

Die beiliegende index.html dient als visuelles Test-Frontend. Server starten und http://localhost:3000/index.html im Browser öffnen.

Außerdem liegt eine postman_collection.json bei, die direkt in Postman importiert werden kann.

API-Endpunkte

Alle Endpunkte geben JSON zurück.


GET /locations — Haltestellen suchen

Sucht Haltestellen, Adressen und Stationen anhand einer Texteingabe. Nützlich um Haltestellen-IDs (IBNRs) zu ermitteln.

Beispiel:

GET http://localhost:3000/locations?query=Frankfurt+Hbf

Parameter:

Parameter Pflicht Beschreibung
query Suchbegriff (z.B. "Berlin Hbf")
results Max. Anzahl Treffer (Standard: 8)

GET /journeys — Verbindungen suchen

Findet Verbindungen von A nach B mit Zwischenhalten, Umstiegszeiten und Echtzeitverspätungen.

Beispiel:

GET http://localhost:3000/journeys?from=Frankfurt(Main)Hbf&to=Berlin+Hbf

Parameter:

Parameter Pflicht Beschreibung
from Stationsname oder IBNR (z.B. 8000105)
to Stationsname oder IBNR
departure Abfahrtszeit als ISO-8601-String (z.B. 2026-06-01T10:00:00.000Z)
results Anzahl Verbindungen (Standard: 5)
transfers Max. Umstiege (z.B. 0 für direkten Zug)
products Erlaubte Verkehrsmittel, komma-getrennt (siehe unten)
bike true für Fahrradmitnahme
accessibility complete für rollstuhlgerechte Verbindungen

Verfügbare products-Werte:

Wert Verkehrsmittel
long-distance-train ICE, IC, EC
regional-train RE, RB, S-Bahn
tram Straßenbahn
bus Bus
subway U-Bahn
ferry Fähre

GET /departures — Abfahrtsmonitor

Liefert die nächsten Live-Abfahrten einer Haltestelle.

Beispiel:

GET http://localhost:3000/departures?station=Frankfurt(Main)Hbf&duration=30

Parameter:

Parameter Pflicht Beschreibung
station Stationsname oder IBNR
duration Zeitraum in Minuten (Standard: 60)

Hinweis zu den Daten

Die Antworten von /journeys und /departures enthalten sowohl geplante Zeiten (plannedDeparture) als auch Echtzeiten (departure). Verspätungen sind zusätzlich als departureDelay / arrivalDelay in Sekunden verfügbar.


Disclaimer

Dieses Projekt steht in keinerlei Verbindung zur Deutschen Bahn AG. Es handelt sich um ein rein privates, inoffizielles Open-Source-Projekt, das öffentlich zugängliche Schnittstellen aufbereitet. Alle Fahrplandaten sind Eigentum der Deutschen Bahn AG und der jeweiligen Verkehrsunternehmen.

About

Inoffizieller Node.js API-Wrapper für Fahrplandaten der Deutschen Bahn – Verbindungen, Abfahrten und Haltestellensuche via db-vendo-client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors