InfraNode.dev
MCP InfraNode gibt es auch als MCP-Server für KI-Assistenten wie Claude und ChatGPT.

Changelog

Hier stehen alle Änderungen an der InfraNode-API, die für die Nutzung relevant sind: neue Datenarten, neu abgedeckte Städte, Änderungen am Verhalten, Fehlerbehebungen und angekündigte Abkündigungen. Neueste zuerst.

  1. Neu

    Abfahrtstafel: stop_id heißt jetzt trip_stop_id

    In den Abfahrts- und Ankunftstafeln der Bahnhöfe hieß das Feld bisher stop_id, obwohl es einen einzelnen Halt einer konkreten Zugfahrt bezeichnet und keine Haltestelle. Der Name kollidierte mit der Haltestellen-ID der Live-Abfahrten unter /live/{slug}/transit/departures, die eine DELFI-ID im Format de:AGS:id erwartet. Wer den Wert von einem Endpunkt zum anderen weiterreichte, bekam verlässlich einen 400. Das Feld heißt deshalb jetzt trip_stop_id; stop_id trägt denselben Wert weiter und ist abgekündigt. Die Fehlermeldung des Live-Endpunkts benennt die Verwechslung jetzt ausdrücklich und sagt, wo gültige Haltestellen-IDs herkommen.

    Referenz: getCityStationDepartures

  2. Neu

    Einheitliche Feldnamen über alle Datenarten

    Gleiche Konzepte heißen jetzt überall gleich, in snake_case und englisch: post_code, street, house_number, place, name, start, end, distance_km, power_kw, lat und lon. Betroffen sind unter anderem Ladesäulen (bisher plz und ort), Energie-Anlagen (plz, leistung_kw, einheit_typ), Bahnhöfe (zip), Krankenhäuser (zip, city), Köln-Veranstaltungen (strasse, hausnummer, plz) und innerstädtische Baustellen (bezeichnung, beginn, ende, art). Die Verkehrsmeldungen der Autobahn-API tragen zusätzlich is_blocked als echtes Boolean, start_timestamp, delay_minutes, average_speed_kmh, abnormal_traffic_type, name, description_text sowie bbox mit lat und lon aus dem bisherigen Komma-String extent. Innerstädtische Baustellen in Köln bekommen mit event_type_label den Klartext zum bisherigen Zahlencode, direkt aus der Werteliste des Dienstes. Der Bahnhofs-Katalog nennt die DB-Bahnhofskategorie jetzt station_category, weil category in anderen Datenarten ein Textlabel trägt und nicht eine Zahl. Alle Änderungen sind additiv, die bisherigen Felder bleiben vorerst mit identischem Wert erhalten.

  3. Abkündigung

    Abkündigung: alte Feldnamen und camelCase-Rohfelder

    Die bisherigen Namen plz, zip, strasse, hausnummer, ort, city, bezeichnung, beginn, ende, art, dist_km, leistung_kw, einheit_typ und das stop_id der Bahnhofs-Tafeln (jetzt trip_stop_id), das category im Bahnhofs-Katalog (jetzt station_category) sowie die camelCase-Rohfelder der Autobahn-Verkehrsmeldungen (isBlocked, startTimestamp, delayTimeValue, averageSpeed, abnormalTrafficType, extent) sind abgekündigt. Sie tragen weiter denselben Wert wie ihre kanonischen Entsprechungen und werden frühestens 30 Tage nach diesem Eintrag entfernt. Wer sie nutzt, stellt bis dahin auf die neuen Namen um.

  4. Behoben

    Abfahrtszeiten tragen jetzt eine Zeitzone

    planned_time in den Abfahrts- und Ankunftstafeln kam bisher ohne Zeitzone (2026-07-25T10:01:00) und war damit mehrdeutig. Der Wert ist Bahnhofszeit und trägt jetzt die passende Zone (2026-07-25T10:01:00+02:00). Ebenfalls behoben: leere Adressangaben in den Köln-Veranstaltungen kamen als Leerstring statt als null, und Postleitzahlen mit führender Null konnten ihre Null verlieren.

    Referenz: getStationDepartures

  5. Neu

    Spritpreise: Adresse je Tankstelle

    Die Einzel-Tankstellen im Spritpreis-Payload tragen jetzt zusätzlich street, house_number, post_code und place, also die an die MTS-K gemeldete Adresse. Damit ist eine Tankstelle auch ohne Karte benennbar. post_code ist immer ein fünfstelliger String, führende Nullen bleiben erhalten (01067). Meldet die Quelle keine eigene Hausnummer, steht sie oft im Straßennamen ("Rödingsmarkt 14"); sie wird dann abgetrennt, sodass street und house_number getrennt ankommen. Tankstellen ohne jede Hausnummer behalten house_number null. Rein additiv, bestehende Felder bleiben unverändert.

    Referenz: getCityFuelPrices

  6. Neu

    Spritpreise: Koordinaten je Tankstelle (Kartendarstellung)

    Die Einzel-Tankstellen im Spritpreis-Payload tragen jetzt zusätzlich lat und lon, also die Koordinate der Tankstelle selbst. Damit lassen sich die Tankstellen direkt auf einer Karte darstellen, ohne Zusatz-Lookup. Rein additiv, bestehende Felder bleiben unverändert; liefert die Quelle keine Koordinate, sind lat und lon null.

    Referenz: getCityFuelPrices

  7. Geändert

    Köln: Parkdaten jetzt direkt von der Stadt Köln (Mobilithek)

    Köln kam bisher über den ParkenDD-Aggregator, dessen Köln-Feed seit 2021 eingefroren ist und daher keine Daten mehr lieferte. Die Parkdaten kommen jetzt direkt von der Stadt Köln über die Mobilithek (DATEX II, Belegung und Stammdaten gejoint, DL-DE/Zero 2.0, Tier A): 41 Parkhäuser mit Live-Belegung, Kapazität, Name und Koordinaten.

    Referenz: getCityParking

  8. Neu

    Parken in 14 weiteren Städten (DB BahnPark, bundesweit)

    Der /parking-Endpunkt deckt jetzt 14 zusätzliche Städte ab: Berlin, Bochum, Bonn, Bremen, Düsseldorf, Duisburg, Erfurt, Essen, Hannover, Mainz, Saarbrücken, Schwerin, Stuttgart und Wiesbaden. Quelle sind die bahnhofsnahen Parkeinrichtungen der DB BahnPark (DB API Marketplace, DL-DE/BY 2.0, Tier A). Es handelt sich um einen statischen Katalog (Standort, Name, Gesamtkapazität, lot_type="station"): eine numerische Live-Belegung (free) liefert die Quelle nicht, das Feld bleibt daher null. Städte mit eigener Live-Parkquelle (z.B. Köln, Frankfurt, Hamburg) sind unverändert.

    Referenz: getCityParking

  9. Geändert

    OSM-POIs jetzt aus wöchentlichem Precompute (stabiler)

    Die POI- und OSM-Infrastruktur-Datenarten (pois, playgrounds, drinking-water, public-toilets, markets, parcel-lockers, post-offices, post-boxes, public-wifi, recycling-centres, government-offices, education) werden ab sofort aus einem periodischen Precompute des OSM-Deutschland-Extrakts (wöchentlich) bedient statt live abgefragt. Envelope, Felder und Lizenz (ODbL, Tier B) bleiben unverändert; total_available nennt weiterhin den echten Gesamtbestand. Vorteil: keine Abhängigkeit von einer öffentlichen Live-Instanz mehr, dadurch deutlich stabiler. Ist der Bestand einer Stadt noch nicht berechnet, antwortet die Route mit 200 source_status="no_data" statt eines Fehlers.

    Referenz: getCityPois

  10. Neu

    Innerstädtische Baustellen für Rostock

    Die Datenart Baustellen/Verkehrsereignisse deckt jetzt auch Rostock ab (OpenData.HRO, CC0). Je Baustelle werden Maßnahme, Sparte, Straße, Abschnitt, Zeitraum und Verkehrsbeeinträchtigung geliefert.

    Referenz: getCityRoadEvents

  11. Neu

    Ratsdokumente jetzt auch für Magdeburg und Osnabrück

    Die Datenart council-papers deckt neben Köln, Leipzig, Münster, Dresden und Düsseldorf jetzt auch Magdeburg (DL-DE/Zero-2.0) und Osnabrück (CC-BY-4.0) ab, beide über die standardisierte OParl-Schnittstelle. Abrufbar unter /api/v1/cities/{stadt}/council-papers sowie per MCP über get_city_resource.

    Referenz: get_city_resource

  12. Neu

    Bike-Sharing für Kiel (SprottenFlotte)

    Kiel ist beim Bike- und Scooter-Sharing ergänzt: die SprottenFlotte läuft über Donkey Republic (GBFS 3.0) und liefert jetzt Stationen und Verfügbarkeiten wie bei den übrigen Sharing-Städten. Die Daten stehen unter CC0. Damit unterstützt der GBFS-Adapter erstmals auch die GBFS-Version 3.0 (mehrsprachige Namensfelder, num_vehicles_available).

    Referenz: getCitySharing

  13. Neu

    Baumkataster für Hamburg und Kiel

    Das Baumkataster deckt jetzt neben Berlin auch Hamburg und Kiel ab. Hamburg liefert das Straßenbaumkataster (Landesbetrieb Geoinformation und Vermessung, DL-DE/BY-2.0), Kiel die Bäume auf städtischem Grund (CC-BY-4.0). Je Baum werden Standort, Art und Kronendurchmesser ausgeliefert.

    Referenz: getCityTreeCadastre

  14. Neu

    Hochwasserwarnungen für Hannover, Kiel und Magdeburg

    Die Hochwasserwarnungen decken jetzt auch Hannover (Pegel Herrenhausen, Leine), Kiel (Kiel-Holtenau, Ostsee, sturmflutrelevant) und Magdeburg (Niegripp, Elbe) ab. Je Pegel werden Warnstufe, Wasserstand und Zeitstempel geliefert. Quelle sind die Länderübergreifenden Hochwasserportale (LHP).

    Referenz: getCityFlood

  15. Behoben

    Amtliche Wetterwarnungen wieder verfügbar (neue Bezugsquelle)

    Der DWD hat die alte WarnApp-Schnittstelle abgeschaltet, der Endpunkt für amtliche Wetterwarnungen lieferte deshalb kurzzeitig 503. Die Warnungen kommen jetzt über die Bright-Sky-Alerts-API und damit weiterhin dieselben amtlichen DWD-Daten. Die Warnstufen 1 bis 4 werden aus der CAP-severity abgeleitet; Hitze- und UV-Warnungen stehen wie bisher separat in special_warnings und zählen nicht in max_level. Beachte: start und end der Einzelwarnungen sind jetzt ISO-8601-Zeitstempel statt Epoch-Millisekunden.

    Referenz: getCityWeatherWarnings

  16. Behoben

    Live-ÖPNV-Abfahrten: Delay-only-Updates und Steig-IDs funktionieren jetzt

    Der Endpunkt für Live-Abfahrten je Halt lieferte fast überall no_data: der bundesweite GTFS-RT-Feed trägt meist nur Verspätungen ohne absolute Abfahrtszeit, und genau solche Einträge wurden verworfen. Jetzt werden sie ehrlich ausgeliefert (delay_s/delay_min gesetzt, departure_time und minutes_until = null) und folgen nach den zeitbehafteten Abfahrten, die es z.B. in Berlin über den VBB-Feed gibt. Außerdem darf stop_id jetzt Parent- oder Steig-Ebene sein (de:AGS:nr oder de:AGS:nr:bereich:steig), beide werden aufgelöst.

    Referenz: getLiveTransitDepartures

  17. Neu

    Ratsdokumente: kompletter Datenbestand für 5 Städte (112.000+ Dokumente)

    Die neue Datenart council-papers liefert Ratsinformationen (Vorlagen, Anträge, Beschlüsse) über die standardisierte OParl-Schnittstelle für Köln, Leipzig, Münster, Dresden und Düsseldorf. Der historische Rückbezug ist jetzt komplett: über 112.000 Dokumente ab 2020, davon allein 48.000+ aus Leipzig. Neue Dokumente werden laufend ergänzt. Abrufbar unter /api/v1/cities/{stadt}/council-papers sowie per MCP über get_city_resource.

    Referenz: get_city_resource

  18. Geändert

    Doku: neue Navigation mit Aufgaben-Gruppen und mobilem Drawer

    Das Doku-Menü ist neu gegliedert in Loslegen, Grundlagen, API-Referenz, KI & Integrationen und Projekt. Die API-Referenz zeigt jetzt sprechende Namen statt operationIds (die operationId erscheint beim Überfahren), Live-Endpunkte stehen in ihrer Themenkategorie mit LIVE-Badge statt in einer eigenen Sektion. Das Badge markiert Echtzeitdaten unabhängig vom Pfad, also auch Spritpreise, Parkhaus-Belegung, Bahn-Abfahrten oder Ladesäulen-Status. Auf Mobilgeräten öffnet ein Menü-Button in der Kopfleiste einen Drawer, in dem nur die aktive Gruppe aufgeklappt ist. Alle Seiten und URLs bleiben unverändert.

  19. Geändert

    Parken: Frische-Schutz gegen eingefrorene Upstreams

    Für die ParkenDD-Städte gilt jetzt ein Frische-Wächter: Liefert ein Upstream seit mehr als 48 Stunden keine neuen Belegungszeiten, gibt der Endpunkt no_data zurück statt veralteter Werte. Das verhindert, dass monatealte Parkstände wie aktuelle aussehen. Ein fehlender oder unlesbarer Zeitstempel zählt defensiv nicht als eingefroren.

    Referenz: get_city_parking

  20. Neu

    Radzählstellen: Düsseldorf ergänzt (8 Städte)

    bike-counts liefert jetzt auch die Radzählstellen der Landeshauptstadt Düsseldorf. Damit deckt die Datenart acht Städte ab. Lizenz DL-DE/BY 2.0.

    Referenz: get_city_bike_counts

  21. Geändert

    Städtevergleich: sechs weitere Datenarten

    Der Vergleich mehrerer Städte in einem Aufruf umfasst jetzt zusätzlich Kennzahlen (indicators), Demografie, Arbeitslosenquote, Tourismus, Ladebelegung und Wetterwarnungen, ergänzend zu Wetter und Luftqualität.

    Referenz: compare_cities

  22. Neu

    Baustellen und Sperrungen: Dresden und Leipzig

    road-events liefert jetzt Baustellen und Sperrungen für Dresden und Leipzig aus dem sächsischen SPERRINFOSYS. Lizenz DL-DE/BY 2.0.

    Referenz: get_city_road_events

  23. Neu

    InfraNode als ChatGPT-GPT und GPT-Action

    InfraNode ist jetzt als Custom-GPT im GPT Store verfügbar und lässt sich über eine kuratierte Actions-OpenAPI als GPT-Action einbinden, keylos und per URL-Import. Details unter /chatgpt/.

  24. Neu

    Live-Ladebelegung für alle 84 Städte

    Neue Datenart charging-status: die Echtzeit-Belegung öffentlicher Ladepunkte je Stadt (frei, belegt, lädt, außer Betrieb), aufbereitet aus dem eRound-Feed (CC0). Ergänzt die statischen Ladesäulen-Standorte.

    Referenz: get_city_charging_status

  25. Geändert

    MCP-Server auf 12 schlanke Tools konsolidiert

    Der gehostete MCP-Server bündelt die 67 Datenarten jetzt in 12 Tools; die Long-Tail-Datenarten laufen über get_city_resource(slug, resource). Bestehende Aufrufe bleiben abgedeckt, die Tool-Liste ist deutlich kürzer.

Ältere Änderungen vor dem Start dieses Changelogs sind in der Commit-Historie nachvollziehbar.