Developer
Menü

Fahrzeuge

Wie ein Zug heißt und wie er aussieht: die Namen der IC- und ICE-Triebzüge mit ihrer Geschichte und die Wagenreihungspläne der Baureihen, vom ICE 1 bis zum Voll- und Kurzzug der S-Bahn Berlin.

Objekte

Objekt Zugname

FeldTypBeschreibung
trainsetstringTriebzugnummer (Tz), steht außen am Zug und in der Wagenreihung
series?stringBaureihe, z. B. 403
series_name?stringz. B. ICE 3
name?stringAktueller Name; null, wenn der Zug keinen mehr trägt
named_since?stringSeit wann
historyobject[]{ name, from, until, place, note, kind }; kind: taufe, region, aenderung, uebertragung
{
  "trainset": "304",
  "series": "403",
  "series_name": "ICE 3",
  "name": "München",
  "named_since": "2003-01-10",
  "history": [
    {
      "name": "München",
      "from": "2003-01-10",
      "until": null,
      "place": "München Hauptbahnhof",
      "note": "ursprünglich Wagen 403 004 beschriftet",
      "kind": "taufe"
    }
  ]
}

Objekt Baureihe

FeldTypBeschreibung
idstringBaureihe, z. B. 412 oder 481
namestringz. B. ICE 4
kindstringlong_distance oder suburban
diagramsobject[]Wagenreihungspläne { variant, url, format, source, cars? }: PDF der Baureihe bzw. Zugbild der S-Bahn, beide von unserem Server
named_trainsetsintegerWie viele Triebzüge dieser Baureihe einen Namen haben oder hatten
{
  "id": "412",
  "name": "ICE 4",
  "kind": "long_distance",
  "diagrams": [
    {
      "variant": "12 Wagen",
      "url": "https://developer.bahnhoftafel.de/fahrzeuge/plaene/412.pdf",
      "format": "pdf",
      "source": "Wagenreihungsplan der DB"
    },
    {
      "variant": "7 Wagen",
      "url": "https://developer.bahnhoftafel.de/fahrzeuge/plaene/412.7.pdf",
      "format": "pdf",
      "source": "Wagenreihungsplan der DB"
    },
    {
      "variant": "13 Wagen",
      "url": "https://developer.bahnhoftafel.de/fahrzeuge/plaene/412.13.pdf",
      "format": "pdf",
      "source": "Wagenreihungsplan der DB"
    }
  ],
  "named_trainsets": 36
}

Zugnamen

GET/v1/vehicles/namesEimer standard

Alle IC- und ICE-Triebzüge, die gerade einen Namen tragen (244 Stück), etwa „München“ oder „Martin Luther“.

Info

Quelle: Wikipedia, „Liste benannter IC/ICE-Fahrzeuge“ (CC BY-SA 4.0), Stand 2026-10-15. Wer die Namen weitergibt, nennt die Quelle.

Query-Parameter

FeldTypBeschreibung
querystringNur Namen, die das enthalten
seriesstringNur diese Baureihe, z. B. 412

Antwort

Liste von Zugname ohne history

Beispiel

curl
curl "https://developer.bahnhoftafel.de/v1/vehicles/names" \
  -H "Authorization: Bearer $BT_SCHLUESSEL"
JavaScript
const antwort = await fetch("https://developer.bahnhoftafel.de/v1/vehicles/names", {
  method: "GET",
  headers: { Authorization: `Bearer ${process.env.BT_SCHLUESSEL}`, },
});
const daten = await antwort.json();
Python
import os, requests

antwort = requests.get(
    "https://developer.bahnhoftafel.de/v1/vehicles/names",
    headers={"Authorization": f"Bearer {os.environ['BT_SCHLUESSEL']}"},
    timeout=30,
)
daten = antwort.json()

Name eines Triebzugs

GET/v1/vehicles/names/{trainset}Eimer standard

Name und Namensgeschichte eines Triebzugs: wann und wo er getauft wurde, ob der Name später wechselte oder auf einen anderen Zug überging.

Pfad-Parameter

FeldTypBeschreibung
trainsetPflichtstringTriebzugnummer, z. B. 304 oder 9006

Antwort

Zugname

Beispiel

curl
curl "https://developer.bahnhoftafel.de/v1/vehicles/names/trainset" \
  -H "Authorization: Bearer $BT_SCHLUESSEL"
JavaScript
const antwort = await fetch("https://developer.bahnhoftafel.de/v1/vehicles/names/trainset", {
  method: "GET",
  headers: { Authorization: `Bearer ${process.env.BT_SCHLUESSEL}`, },
});
const daten = await antwort.json();
Python
import os, requests

antwort = requests.get(
    "https://developer.bahnhoftafel.de/v1/vehicles/names/trainset",
    headers={"Authorization": f"Bearer {os.environ['BT_SCHLUESSEL']}"},
    timeout=30,
)
daten = antwort.json()

Baureihen und Wagenreihungspläne

GET/v1/vehicles/seriesEimer standard

Die Baureihen mit ihren Wagenreihungsplänen: wo die erste Klasse, das Bordrestaurant und die Fahrradplätze sind, und bei der S-Bahn Berlin, wie Viertel-, Halb-, Dreiviertel- und Vollzug aussehen.

Info

Die Pläne liegen auf unserem Server und dürfen direkt verlinkt werden. Welcher Plan zu einer S-Bahn passt, steht beim Bahnsteig in vehicle.diagram_url.

Query-Parameter

FeldTypBeschreibung
kindstringNur diese Artlong_distance Fernverkehr, suburban S-Bahn

Antwort

Liste von Baureihe

Beispiel

curl
curl "https://developer.bahnhoftafel.de/v1/vehicles/series" \
  -H "Authorization: Bearer $BT_SCHLUESSEL"
JavaScript
const antwort = await fetch("https://developer.bahnhoftafel.de/v1/vehicles/series", {
  method: "GET",
  headers: { Authorization: `Bearer ${process.env.BT_SCHLUESSEL}`, },
});
const daten = await antwort.json();
Python
import os, requests

antwort = requests.get(
    "https://developer.bahnhoftafel.de/v1/vehicles/series",
    headers={"Authorization": f"Bearer {os.environ['BT_SCHLUESSEL']}"},
    timeout=30,
)
daten = antwort.json()

Baureihe abrufen

GET/v1/vehicles/series/{series_id}Eimer standard

Eine Baureihe mit Plänen und den benannten Triebzügen.

Pfad-Parameter

FeldTypBeschreibung
series_idPflichtstringz. B. 412, 481 oder MET

Antwort

Baureihe mit trainsets: Liste von { trainset, name }

Beispiel

curl
curl "https://developer.bahnhoftafel.de/v1/vehicles/series/series_id" \
  -H "Authorization: Bearer $BT_SCHLUESSEL"
JavaScript
const antwort = await fetch("https://developer.bahnhoftafel.de/v1/vehicles/series/series_id", {
  method: "GET",
  headers: { Authorization: `Bearer ${process.env.BT_SCHLUESSEL}`, },
});
const daten = await antwort.json();
Python
import os, requests

antwort = requests.get(
    "https://developer.bahnhoftafel.de/v1/vehicles/series/series_id",
    headers={"Authorization": f"Bearer {os.environ['BT_SCHLUESSEL']}"},
    timeout=30,
)
daten = antwort.json()