Developer
Menü

Radar

Wo die Züge gerade sind. Für Deutschland die Bahn (Fern-, Regional- und S-Bahn-Verkehr), für Berlin und Brandenburg auch U-Bahn, Straßenbahn und Bus.

Objekte

Objekt Fahrzeug

FeldTypBeschreibung
trip_idstringFür Fahrt abrufen
trainobjectZug wie bei Abfahrt
direction?stringRichtung (Ziel), wie sie am Zug steht
positionobject{ lat, lon, estimated }, estimated ist immer true
next_stopsobject[]Die nächsten Halte { station, arrival, departure } mit Ist-Zeiten
{
  "trip_id": "b2ViYh8yfCNWTiMxI1NUIzE3OTIw…",
  "train": {
    "name": "ICE 1603",
    "category": "ICE",
    "number": "1603",
    "line": "ICE 1603",
    "product": "long_distance",
    "operator": null
  },
  "direction": "München Hbf",
  "position": {
    "lat": 52.546696,
    "lon": 13.376389,
    "estimated": true
  },
  "next_stops": [
    {
      "station": {
        "id": "8011102",
        "name": "Berlin Gesundbrunnen"
      },
      "arrival": "2026-10-15T18:17:00+02:00",
      "departure": "2026-10-15T18:19:00+02:00"
    }
  ]
}

Züge im Ausschnitt

GET/v1/radarEimer radar

Alle Fahrzeuge in einem rechteckigen Ausschnitt (höchstens 1° × 1°, etwa 110 × 70 km).

Info

Eigener Eimer radar: 20 Abrufe pro Minute. Die Positionen werden in kurzen Abständen neu berechnet; öfter fragen bringt nichts Neues.

Query-Parameter

FeldTypBeschreibung
bboxPflichtstringwest,süd,ost,nord in Grad, z. B. 13.2,52.45,13.55,52.6
networkstringNetzdb Bahn in Deutschland (Standard), vbb alle Verkehrsmittel in Berlin und BrandenburgStandard: db
productsstring[]Nur diese Produktelong_distance Fernverkehr, regional Regionalverkehr, suburban S-Bahn, subway U-Bahn, tram Straßenbahn, bus Bus
limitintegerHöchstzahlStandard: 2001 bis 400

Antwort

Objekt { network, vehicles: Fahrzeug[], realtime_updated_at }

Beispiel

curl
curl "https://developer.bahnhoftafel.de/v1/radar?bbox=13.2%2C52.45%2C13.55%2C52.6" \
  -H "Authorization: Bearer $BT_SCHLUESSEL"
JavaScript
const antwort = await fetch("https://developer.bahnhoftafel.de/v1/radar?bbox=13.2%2C52.45%2C13.55%2C52.6", {
  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/radar?bbox=13.2%2C52.45%2C13.55%2C52.6",
    headers={"Authorization": f"Bearer {os.environ['BT_SCHLUESSEL']}"},
    timeout=30,
)
daten = antwort.json()