Quick-Start
InfraNode liefert normalisierte offene Daten deutscher Großstädte hinter einer einheitlichen REST-API. Alle Endpunkte sind öffentlich lesbar; der erste Aufruf braucht keinen Schlüssel. In drei Schritten bist du drin.
Schritt 1, Basis-URL
Alle Endpunkte liegen unter der versionierten Basis-URL. Pfade folgen dem
Muster /api/v1/cities/{slug}/{ressource}.
https://infranode.dev/api/v1
Schritt 2, erster Aufruf
Hole das Wetter für Hamburg. Kein Header, kein Setup, ein GET genügt.
curl "https://infranode.dev/api/v1/cities/hamburg/weather"const res = await fetch("https://infranode.dev/api/v1/cities/hamburg/weather");
const data = await res.json();
console.log(data);import httpx
res = httpx.get("https://infranode.dev/api/v1/cities/hamburg/weather")
res.raise_for_status()
print(res.json()) Schritt 3, die Antwort lesen
Jede Antwort folgt demselben kanonischen Envelope. Auf Top-Level liest du immer dieselben zwei Blöcke, egal welche Ressource du abfragst:
| Feld | Inhalt |
|---|---|
data | Die eigentliche Nutzlast, je Endpunkt typisiert (hier die Wetterwerte). |
data[].attribution |
Kein eigener Top-Level-Block: Jeder data-Record trägt ein eingebettetes
attribution-Feld mit text,
license_url und modified, also Lizenz und
Herkunft der jeweiligen Daten.
|
meta |
Kontext zum Abruf: Stadt-Slug, Zeitstempel, abgefragte Quelle, der
source_status (ok, no_data oder
disabled) sowie correlation_id und
cache_status.
|
Liefert eine Quelle für eine Stadt nichts, bleibt der Status-Code
200 und source_status steht auf
no_data. So unterscheidest du "keine Daten" sauber von einem
echten Fehler.
Rate-Limits und API-Keys
Anonyme Aufrufe sind IP-basiert begrenzt. Ein gültiger Schlüssel im
Header X-API-Key hebt das Limit auf das höhere keyed-Tier.
Einen Schlüssel erzeugst du selbst über den Endpunkt POST
/api/v1/keys; der Klartext-Token wird dabei nur einmalig
zurückgegeben. Ein Schlüssel läuft nur ab, wenn er 30 Tage nicht benutzt
wird; jede Nutzung verlängert ihn automatisch wieder auf 30 Tage. Wird das
Limit überschritten, antwortet die API mit Status 429.
Nächste Schritte
In der linken Navigation findest du jede Operation einzeln, mit Parametern, Code-Beispielen in curl, JavaScript und Python sowie einer Live-Konsole für die aufrufbaren Endpunkte.