InfraNode.dev
MCP InfraNode is also available as an MCP server for AI assistants like Claude and ChatGPT.

Free, public open-data API

Open city data, one API instead of dozens

Weather, live transit departures, EV charging occupancy, electricity prices and more for 84 German cities, via one REST interface and an MCP server for AI agents. Every response follows the same JSON envelope and names licence, origin and an honest source status.

In short

InfraNode is a free, public open-data REST API that serves open data for German cities behind one unified interface. Instead of signing up at dozens of portals, you query everything through a consistent JSON envelope, with no API key.

  • 84 large cities, 67 data types, 102 endpoints, one unified envelope.
  • No key required, free and ad-free.
  • Hosted on a server in Germany, with an honest source status.
  • 84 cities
  • 67 data types
  • 102 endpoints
  • 4,300+ data streams, growing
  • 35+ official sources
$ curl https://infranode.dev/api/v1/cities/berlin/weather
{
  "data": {
    "payload": { "temperature_c": 12.9, "condition": "dry",  },
    "attribution": { "text": "Datenbasis: Deutscher Wetterdienst, …" },
    "license_id": "geonutzv", 
  },
  "meta": { "source_status": "ok", "cache_status": "HIT",  }
}

What data is available

67 data types per city, all permissively licensed (Tier A: DL-DE/BY, CC-BY, free for commercial use):

  • Environment and weather: air quality (PM10, live readings), weather, official DWD weather warnings, pollen and UV index.
  • Mobility and traffic: public transit stops and live departures with delays, traffic situation, roadworks, charging stations including live occupancy, car stock and electric vehicle share (KBA), road accidents (accident atlas).
  • Energy and statistics: energy installations (market master data register), electricity consumption and wholesale price (SMARD), unemployment rate, tourism overnight stays, building permits, demographics.
  • Water, health, city life: water levels and flooding, hospitals and ICU beds, POIs, events, election results, public holidays, administrative boundaries.

What sets the API apart

Every response has the same shape: data with the payload and meta with city, timestamp, source_status, correlation_id and cache_status. Each data record additionally carries an attribution field with licence and origin. The source_status field cleanly tells "no data" apart from a real error: a source without data still returns a tidy 200, not a 5xx. Responses carry ETag and Cache-Control headers, and an MCP server exposes the endpoints as tools for AI agents.

Real-time data under /live

Under /api/v1/live/* InfraNode serves current readings: traffic conditions, roadworks, parking, charging and public-transit real-time with delays per stop, trip and route. Some live sources are city-specific, for example Hamburg HVV departures or Dortmund parking occupancy. The coverage page shows which city has which live source.

Getting started

Read the Quickstart for your first call, or set up the MCP server for AI agents. In ChatGPT you can simply use the ready-made InfraNode GPT from the GPT Store. The full endpoint reference lives in the left navigation. Reference content is in German, the code samples are universal. Every endpoint is also available as the InfraNode API on the Postman API Network, with real example responses you can try in the browser without an API key.

Frequently asked questions

Do I need an API key?

No. The API is open and keyless: every endpoint is publicly readable, no signup, no key. Calls are simply limited per IP.

What does it cost?

Nothing. InfraNode is a free, public open-data API, ad-free and with no paywall. The source code is available on GitHub (Apache-2.0).

Which cities are covered?

All 84 German cities above 100,000 inhabitants. Of those, 28 core cities have full source coverage; the rest are served through AGS- and geo-based sources.

Where does the data come from?

From public, official sources. InfraNode brings them together behind one interface and passes them through in normalised form. Every response names licence and origin in its attribution block.

Are there rate limits?

Yes. Calls are limited per IP (abuse protection); on overrun the API answers with status 429. Every response carries RateLimit headers.

How fresh is the data?

It depends on the source. Responses carry a timestamp in the meta block plus ETag and Cache-Control headers. Live endpoints return current readings, static data is cached longer.