Coverage & status
InfraNode covers 84 large German cities. Most endpoints return data for all 84 cities. A few are partially covered: they only serve curated cities. This page honestly shows which endpoint serves which cities, and where you get informed about outages.
Live status & outages
Current availability of every source and reported outages live on the status page. You can also subscribe to notifications there.
Fully covered (all 84 cities)
All city and live endpoints are fully covered, except the partially-covered
and geo-/live-based endpoints listed below. These include, among others, base
data, weather, air quality (UBA), demographics, pollen/UV, POIs, charging
stations, administrative boundaries, public procurement and public-transit
stops. A city for which
a source currently has nothing responds honestly with no_data
rather than an error.
Partially covered endpoints
These endpoints draw their data from hand-curated per-city sources and only
return data for the listed cities. For any other registered city the API
responds with 200 and
source_status: "not_covered", data: null
and meta.covered_cities (exactly the slugs listed here). This is
clearly distinct from no_data (city covered, but currently no
data) and from 404 (unknown city).
| Endpoint | Path | Covered cities | Reason |
|---|---|---|---|
| Flood | /api/v1/cities/{slug}/flood | 15 of 84 berlinbonnbremendresdenduesseldorfduisburgerfurtessenfrankfurt-am-mainhamburgkoelnleipzigmainzmuenchennuernberg | curated gauges per city |
| Inner-city roadworks | /api/v1/cities/{slug}/road-events | 9 of 84 berlinbremendortmunddresdenhamburgkoelnleipzigmuenchenstuttgart | curated per-city connectors |
| Bike/scooter sharing | /api/v1/cities/{slug}/sharing | 25 of 84 aachenberlinbielefeldbraunschweigbremendresdenduesseldorffrankfurt-am-mainfreiburg-im-breisgauhanauhannoverheidelbergkarlsruhekasselkoelnleipzigleverkusenludwigshafen-am-rheinmannheimmoenchengladbachmuenchennuernbergoldenburgpotsdamwiesbaden | curated GBFS systems per city |
| Land values | /api/v1/cities/{slug}/land-values | 56 of 84 aachenbergisch-gladbachberlinbielefeldbochumbonnbottropbraunschweigbremenbremerhavencottbusdarmstadtdortmundduesseldorfduisburgerfurtessenfrankfurt-am-maingelsenkirchengoettingengueterslohhagenhalle-saalehamburghammhanauhannoverhernehildesheimjenakasselkoelnkrefeldleverkusenmagdeburgmoenchengladbachmoersmuelheim-an-der-ruhrmuensterneussoberhausenoffenbach-am-mainoldenburgosnabrueckpaderbornpotsdamrecklinghausenremscheidrostocksalzgitterschwerinsiegensolingenwiesbadenwolfsburgwuppertal | BORIS per federal state: WFS (BE, BB, HE, NI, HB, HH, MV, TH) + shapefile (NW, ST) |
| Government office wait times | /api/v1/cities/{slug}/office-wait-times | 1 of 84 koeln | curated live city feed (Cologne only) |
| Parking occupancy | /api/v1/cities/{slug}/parking | 17 of 84 aachendortmunddresdenfrankfurt-am-mainfreiburg-im-breisgauhamburgheidelbergheilbronnkaiserslauternkarlsruhekoelnmagdeburgmuenchenmuensteroldenburgulmwuppertal | ParkenDD live (13 license-verified cities) + Munich static catalogue |
| Bicycle counting stations | /api/v1/cities/{slug}/bike-counts | 8 of 84 berlinduesseldorfessenhamburgkoelnleipzigmuenchenstuttgart | municipal bicycle-count open data per city (license-verified at origin) |
| Rooftop solar cadastre | /api/v1/cities/{slug}/solar-roofs | 42 of 84 aachenaugsburgbergisch-gladbachberlinbielefeldbochumbonnbottropcottbusdortmundduesseldorfduisburgerlangenessenfuerthgelsenkirchengueterslohhagenhamburghammherneingolstadtkoelnkrefeldleverkusenmoenchengladbachmoersmuelheim-an-der-ruhrmuenchenmuensterneussnuernbergoberhausenpaderbornpotsdamrecklinghausenregensburgremscheidsiegensolingenwuerzburgwuppertal | official rooftop solar cadastre per federal state (NRW + Bavaria) |
| Heritage monuments Bavaria (CC-BY-ND) excluded | /api/v1/cities/{slug}/heritage | 17 of 84 berlindarmstadtfrankfurt-am-mainfreiburg-im-breisgauhamburghanauheidelbergheilbronnkarlsruhekasselmannheimoffenbach-am-mainpforzheimreutlingenstuttgartulmwiesbaden | heritage register per federal state (state matter; verified open WFS) |
| Tree cadastre capped sample (very large registers) | /api/v1/cities/{slug}/tree-cadastre | 1 of 84 berlin | municipal tree cadastre per city (verified open WFS) |
Geo- and live-based special cases
- Water levels
(
/api/v1/cities/{slug}/water-level): geo-based, Germany-wide along federal waterways. There is no fixed city list; if no gauge station is nearby, the API responds withno_data. - Transit realtime
(
/api/v1/live/{city}/transit/…): fed by the nationwide GTFS-RT feed, without a structural city boundary. If there are currently no realtime trips for a city, you getno_data. - HVV departures (Hamburg)
(
/api/v1/live/hamburg/departures): real-time departure board per HVV station from the Geofox GTI API, including delay and per-line service alerts. Hamburg only (Geofox covers the HVV area), station name via?station=. Tier C live-only. - Per-city station departures
and arrivals
(
/api/v1/cities/{slug}/station-departuresand/station-arrivals): full coverage across all 84 cities. A city's main station is derived automatically from the official StaDa catalog (a verified pick for the major hubs), all categories including local trains. To target a specific station instead of the city's pick, use/stations/{eva}/departures(see below). - Station catalog
(
/api/v1/cities/{slug}/stations): every DB station in a city (mapped via the official municipality key), full coverage across all cities. Provides each station's EVA number for the per-station boards. - Per-station live departures
and arrivals
(
/api/v1/stations/{eva}/departuresand/arrivals): board of ANY station by its EVA number, all categories including local trains (S/RB/RE), with real-time delays, cancellations and disruption messages. No fixed city list: any valid EVA can be queried (otherwiseno_data).
Understanding source_status
Every response carries an honest status in its meta block:
| Value | Meaning |
|---|---|
ok | Data present. |
no_data | Source reachable / city covered, but currently no data. |
not_covered | City is structurally not covered by this partially-covered endpoint. data: null, covered cities in meta.covered_cities. |
disabled | Source disabled by configuration. |
not_ingested | Source active, but no preprocessed snapshot yet. |
An unknown city returns 404 instead. The machine-readable city
list is available via
GET /api/v1/cities:
curl https://infranode.dev/api/v1/cities/dortmund/flood