Developer
Menü

Zugzielanzeiger

Bilder echter und eigener Zugzielanzeiger. Gezeichnet mit derselben Software wie die Anzeigen von bahnhoftafel.de: S-Bahn Berlin, DB-Anzeiger am Gleis und DB-Listenanzeiger.

Objekte

Objekt Eigener Zug

FeldTypBeschreibung
linestringLinie, eine von S1, S15, S2, S25, S26, S3, S41, S42, S45, S46, S47, S5, S7, S75, S8, S85, S9, U1, U2, U3, U4, U5, U6, U7, U8, U9
destinationstringZiel, höchstens 40 Zeichen
minutes?integerAbfahrt in Minuten (0–120, Standard 2)
via?string[]Halte unterwegs, höchstens 4
cancelled?booleanZug fällt aus
{
  "line": "S3",
  "destination": "Erkner",
  "minutes": 2,
  "via": [
    "Köpenick",
    "Friedrichshagen"
  ]
}

Live-Anzeiger

GET/v1/stations/{station_id}/board.pngEimer bild

Der Zugzielanzeiger eines Gleises, so wie er gerade aussieht. An S-Bahn-Gleisen in Berlin im Stil der S-Bahn, sonst als DB-Anzeiger. Mit list statt Gleis der Abfahrts- bzw. Ankunftsanzeiger der DB.

Info

Eigener Eimer bild: 10 Bilder pro Minute. Dasselbe Gleis innerhalb von 15 Sekunden kommt aus dem Zwischenspeicher.

Pfad-Parameter

FeldTypBeschreibung
station_idPflichtstringEVA-Nummer

Query-Parameter

FeldTypBeschreibung
platformstringGleis (ohne: das erste Gleis des Bahnhofs)
viewstringDarstellung am S-Bahn-Anzeigerlarge nächster Zug groß, list Liste der nächsten Züge
liststringListenanzeiger der DB statt Gleisanzeigerdepartures Abfahrtsanzeiger, arrivals Ankunftsanzeiger

Antwort

PNG, 1640 × 640 Pixel. Header X-Board-Layout: zza (S-Bahn), db (DB-Anzeiger)

Beispiel

curl
curl "https://developer.bahnhoftafel.de/v1/stations/8011160/board.png" \
  -H "Authorization: Bearer $BT_SCHLUESSEL" --output tafel.png
JavaScript
const antwort = await fetch("https://developer.bahnhoftafel.de/v1/stations/8011160/board.png", {
  method: "GET",
  headers: { Authorization: `Bearer ${process.env.BT_SCHLUESSEL}`, },
});
const png = Buffer.from(await antwort.arrayBuffer());
Python
import os, requests

antwort = requests.get(
    "https://developer.bahnhoftafel.de/v1/stations/8011160/board.png",
    headers={"Authorization": f"Bearer {os.environ['BT_SCHLUESSEL']}"},
    timeout=30,
)
open("${datei}", "wb").write(antwort.content)

Eigener Anzeiger

POST/v1/boards/custom.pngEimer bild

Ein S-Bahn-Anzeiger mit deinen eigenen Zügen, Zielen, Halten und Laufband.

JSON-Körper

FeldTypBeschreibung
trainsPflichtobject[]Züge, der erste steht obenFelder: line, destination, minutes?, via?, cancelled?
platformstringGleis
tickerstringText im Laufband
viewstringDarstellunglarge nächster Zug groß, list Liste

Antwort

PNG, 1640 × 640 Pixel

Beispiel

curl
curl -X POST "https://developer.bahnhoftafel.de/v1/boards/custom.png" \
  -H "Authorization: Bearer $BT_SCHLUESSEL" \
  -H "Content-Type: application/json" \
  -d '{"trains":[{"line":"S3","destination":"Erkner","minutes":2,"via":["Köpenick"]},{"line":"S5","destination":"Strausberg Nord","minutes":7}],"platform":"3","ticker":"Grüße aus der API"}' --output tafel.png
JavaScript
const antwort = await fetch("https://developer.bahnhoftafel.de/v1/boards/custom.png", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.BT_SCHLUESSEL}`, "Content-Type": "application/json" },
  body: JSON.stringify({"trains":[{"line":"S3","destination":"Erkner","minutes":2,"via":["Köpenick"]},{"line":"S5","destination":"Strausberg Nord","minutes":7}],"platform":"3","ticker":"Grüße aus der API"}),
});
const png = Buffer.from(await antwort.arrayBuffer());
Python
import os, requests

antwort = requests.post(
    "https://developer.bahnhoftafel.de/v1/boards/custom.png",
    headers={"Authorization": f"Bearer {os.environ['BT_SCHLUESSEL']}"},
    json={"trains":[{"line":"S3","destination":"Erkner","minutes":2,"via":["Köpenick"]},{"line":"S5","destination":"Strausberg Nord","minutes":7}],"platform":"3","ticker":"Grüße aus der API"},
    timeout=30,
)
open("${datei}", "wb").write(antwort.content)

Textanzeiger

POST/v1/boards/text.pngEimer bild

Ein Anzeiger, der nur deinen Text zeigt, wie bei einer Durchsage oder „Zugverkehr unterbrochen“.

JSON-Körper

FeldTypBeschreibung
textPflichtstringText
sizestringSchriftgrößesmall klein, normal normal, large großStandard: normal

Antwort

PNG, 1640 × 640 Pixel

Beispiel

curl
curl -X POST "https://developer.bahnhoftafel.de/v1/boards/text.png" \
  -H "Authorization: Bearer $BT_SCHLUESSEL" \
  -H "Content-Type: application/json" \
  -d '{"text":"Heute kein Zugverkehr","size":"large"}' --output tafel.png
JavaScript
const antwort = await fetch("https://developer.bahnhoftafel.de/v1/boards/text.png", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.BT_SCHLUESSEL}`, "Content-Type": "application/json" },
  body: JSON.stringify({"text":"Heute kein Zugverkehr","size":"large"}),
});
const png = Buffer.from(await antwort.arrayBuffer());
Python
import os, requests

antwort = requests.post(
    "https://developer.bahnhoftafel.de/v1/boards/text.png",
    headers={"Authorization": f"Bearer {os.environ['BT_SCHLUESSEL']}"},
    json={"text":"Heute kein Zugverkehr","size":"large"},
    timeout=30,
)
open("${datei}", "wb").write(antwort.content)