---
title: "Stadt-Überblick (Katalog aller Datenarten + Live-Highlights)"
method: GET
path: "/api/v1/cities/{slug}/overview"
tags: ["cities"]
---

# Stadt-Überblick (Katalog aller Datenarten + Live-Highlights)

`GET /api/v1/cities/{slug}/overview`

Ein-Aufruf-Überblick einer Stadt: Basisdaten, ein Katalog ALLER verfügbaren Datenarten (je mit Abdeckungsstatus und dem passenden MCP-Tool) sowie ein kleiner Live-Highlight-Snapshot (Wetter, Luft, Bahn-Abfahrten), parallel und zeitgedeckelt. Ideal als Einstieg, um die ganze Breite je Stadt zu sehen (nicht nur Wetter). Eine noch nicht abgedeckte Datenart wird ehrlich, aber vorwärts gewandt dargestellt (sie nennt die bereits abgedeckten Städte plus einen Roadmap-Hinweis, weil InfraNode laufend mehr Daten und Städte bekommt). Unbekannte Stadt liefert 404.

## Path parameters

- `slug` string, required

## Response `200`

Überblick-Envelope (Basis + Katalog + Highlights + Summary)

- object
  - `data` object, required
    - `city` object — Basisdaten der Stadt (slug, Lage, Einwohner).
    - `data_types` object[] — Katalog aller Datenarten je mit type, label, label_en, tool (MCP-Tool), path und available; nicht abgedeckte tragen zusätzlich covered_cities und einen note-Hinweis.
    - `highlights` object — Live-Snapshot je Highlight-Quelle (weather, air) mit eigenem source_status (ok/no_data/disabled/error).
    - `summary` object — data_types_total, data_types_available, cities_total, eine headline (macht die verfügbare Breite in einem Satz greifbar) und ein Roadmap-Hinweis (note).
  - `meta` Meta, required
    - `correlation_id` string, nullable
    - `source_status` 'ok' | 'no_data' | 'disabled' | 'not_ingested' | 'not_covered' — Ehrlicher Quellen-Status der Antwort. "ok" (Daten vorhanden), "no_data" (Quelle erreichbar/abgedeckt, aber gerade keine Daten), "disabled" (Quelle per Toggle aus), "not_ingested" (kein Snapshot), "not_covered" (Stadt ist für diesen teilabgedeckten Endpunkt strukturell nicht abgedeckt; data=null, siehe covered_cities). Klar unterscheidbar vom 404 (Stadt unbekannt).
    - `cache_status` string, nullable — Cache-Herkunft (hit/miss/stale), sofern die Route cacht.
    - `covered_cities` string[] — Nur bei source_status="not_covered": die Stadt-Slugs, die dieser teilabgedeckte Endpunkt tatsächlich bedient (z. B. flood, webcams, traffic, road-events).
    - `pagination` object — Bei paginierbaren Datenart-Listen (charging, energy, events, transit, OSM-Feature-Endpunkte): der EHRLICH ausgewiesene Ausschnitt (keine stille Kappung). KANAL-ABHÄNGIGER Default für gleiche URL: direktes REST liefert die volle Liste (limit=null, returned==total, truncated=false); GPT-Actions (erkannt am OpenAI-Header) bekommen ein serverseitig gebundenes Default-Limit; MCP-Aufrufe sind gebunden, weil der MCP-Client selbst ein Default-Limit setzt. Kanalunabhängige Overrides: limit=all (oder ?all=1) erzwingt die volle Liste, limit + offset blättern gezielt. meta.pagination ist bei ALLEN Kanälen gesetzt.
      - `total` integer — Gesamtzahl der Einträge (voller Bestand).
      - `returned` integer — Zahl der auf dieser Seite ausgelieferten Einträge.
      - `limit` integer, nullable — Angewandtes Seiten-Limit; null bei Vollausgabe (REST-Default oder limit=all).
      - `offset` integer — Start-Offset der Seite.
      - `truncated` boolean — true, wenn hinter dieser Seite noch Einträge liegen (offset + returned < total); bei Vollausgabe false.

## Other responses

- `404` — Unbekannte Stadt

---

[API](https://skmtc.net/infranode/apis/infranode-api.md) · [All operations](https://skmtc.net/infranode/apis/infranode-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/infranode/infranode-api/versions/8fee8b095f31/schema)
