← Dashboard

API für Entwickler

MeldePuls stellt wöchentliche RKI-Infektionsmeldedaten für 17 Krankheiten als JSON-API bereit — national, auf Bundesland-Ebene und für alle 411 Meldegebiete der RKI-Kreisgliederung (Kreise und kreisfreie Städte, Berlin in 12 Bezirken). Die Daten stammen ausschließlich vom Robert Koch-Institut (RKI) und werden mehrmals pro Woche automatisch aktualisiert.

Kein API-Key erforderlich. Die API ist kostenlos nutzbar unter Einhaltung der Nutzungsbedingungen und Rate-Limits. Für höhere Limits steht der PRO-Plan zur Verfügung.

Authentifizierung

Für alle öffentlichen Endpunkte ist kein API-Key erforderlich. Anfragen ohne Token werden per IP-Adresse rate-limitiert. PRO-Nutzer können über Mein Account → API-Tokens einen persönlichen API-Token (mp_…) erstellen und im Header Authorization: Bearer mp_… mitsenden. Er gilt für die Daten-Endpunkte, bringt höhere Limits und schaltet die PRO-Historie frei. Ein ungültiger oder widerrufener Token führt zu HTTP 401.

https://meldepuls.de/api

Endpunkte

GET /api/diseases kostenlos
Gibt alle 17 überwachten Krankheiten zurück mit Code, deutschem Namen und Kategorie. Nutze den code-Wert als disease-Parameter in allen anderen Endpunkten.
ParameterTypPflichtBeschreibung
Keine Parameter
Beispiel
curl https://meldepuls.de/api/diseases
Antwort
[ { "id": 1, "code": "Hantavirus", "name_de": "Hantavirus-Erkrankung", "category": "Zoonose", "is_monitored": true }, { "id": 2, "code": "Influenza", "name_de": "Influenza (saisonal)", "category": "Atemweg", "is_monitored": true }, { "id": 3, "code": "Norovirus", "name_de": "Norovirus-Gastroenteritis", "category": "GI-Trakt", "is_monitored": true }, ... ]
GET /api/cases/national kostenlos
Wöchentliche Fallzahlen für eine Krankheit auf nationaler Ebene (Deutschland gesamt), inklusive Saisonkorridor (Min/Avg/Max der letzten 5 Referenzjahre).
ParameterTypPflichtBeschreibung
disease string Pflicht Krankheits-Code aus /api/diseases — z.B. Hantavirus
weeks integer Optional Anzahl Wochen zurück (Standard: 52). Ohne PRO höchstens 52, sonst Status 403. Mit PRO-Token im Header Authorization: Bearer … bis 1300 (25 Jahre).
Beispiel
curl "https://meldepuls.de/api/cases/national?disease=Hantavirus&weeks=52"
Antwort
{ "disease": { "code": "Hantavirus", "name_de": "Hantavirus-Erkrankung" }, "region": "Deutschland", "data_source": "RKI Open Data (GitHub)", "has_real_data": true, "corridor_ref_years": "2019–2023", "series": [ { "year": 2026, "week": 20, "week_label": "KW 20/2026", "case_count": 42, "is_real": true, "corridor_min": 12, "corridor_avg": 28, "corridor_max": 67 }, ... ] }
GET /api/cases/regional kostenlos
Fallzahlen und Inzidenz pro 100.000 Einwohner für alle 16 Bundesländer, für eine bestimmte Krankheit und Meldewoche. Standardmäßig wird die aktuellste verfügbare Woche zurückgegeben.
ParameterTypPflichtBeschreibung
disease string Pflicht Krankheits-Code, z.B. Influenza
year integer Optional Jahr der Meldewoche. Standard: aktuellste verfügbare Woche.
week integer Optional ISO-Kalenderwoche. Standard: aktuellste verfügbare Woche.
Beispiel
curl "https://meldepuls.de/api/cases/regional?disease=Influenza"
Antwort
{ "disease": { "code": "Influenza", "name_de": "Influenza (saisonal)" }, "year": 2026, "week": 20, "regions": [ { "code": "BY", "name_de": "Bayern", "case_count": 312, "per_100k": 2.38 }, { "code": "NW", "name_de": "Nordrhein-Westfalen", "case_count": 287, "per_100k": 1.60 }, { "code": "BW", "name_de": "Baden-Württemberg", "case_count": 198, "per_100k": 1.78 }, ... ] }
GET /api/cases/landkreis kostenlos
Wöchentliche Fallzahlen für eine Krankheit in einem bestimmten Landkreis (AGS-Schlüssel). Unterstützt werden alle 411 Meldegebiete der RKI-Kreisgliederung in SurvStat: Kreise und kreisfreie Städte, Berlin aufgeteilt in 12 Bezirke. Die seit 01.01.2026 kreisfreie Stadt Hanau führt SurvStat derzeit nicht gesondert; ihre Fälle sind nach RKI-Gliederung beim Main-Kinzig-Kreis (06435) zu erwarten.
ParameterTypPflichtBeschreibung
disease string Pflicht Krankheits-Code, z.B. Hantavirus
ags string Pflicht 5-stelliger AGS-Schlüssel (Amtlicher Gemeindeschlüssel), z.B. 09162 für München
weeks integer Optional Anzahl Wochen zurück (Standard: 52). Ohne PRO höchstens 52, sonst Status 403. Mit PRO-Token bis 260 (5 Jahre).
Beispiel — Hantavirus in München (AGS 09162)
curl "https://meldepuls.de/api/cases/landkreis?disease=Hantavirus&ags=09162&weeks=52"
Antwort
{ "disease": { "code": "Hantavirus", "name_de": "Hantavirus-Erkrankung" }, "region": { "ags": "09162", "name_de": "München, Landeshauptstadt" }, "series": [ { "year": 2026, "week": 20, "week_label": "KW 20/2026", "case_count": 3 }, { "year": 2026, "week": 19, "week_label": "KW 19/2026", "case_count": 1 }, ... ] }

Code-Beispiele

Python

import requests r = requests.get("https://meldepuls.de/api/cases/national", params={"disease": "Hantavirus", "weeks": 52}) data = r.json() for point in data["series"][-4:]: print(f"{point['week_label']}: {point['case_count']} Fälle")

JavaScript (fetch)

const res = await fetch("https://meldepuls.de/api/cases/national?disease=Hantavirus&weeks=52"); const data = await res.json(); console.log(`${data.series.at(-1).week_label}: ${data.series.at(-1).case_count} Fälle`);

curl

curl "https://meldepuls.de/api/cases/national?disease=Influenza&weeks=26" | python3 -m json.tool

Rate-Limits

Zugang Limit Fenster Authentifizierung
Ohne Token 300 Requests 15 Minuten pro IP Kein Key erforderlich
Free-Konto 500 Requests 15 Minuten pro Konto Login-Token
PRO PRO 2.000 Requests 15 Minuten pro Konto API-Token aus Account → API-Tokens
Enterprise ohne Limit — API-Token

Bei Überschreitung antwortet die API mit HTTP 429 und dem Header Retry-After. Automatische Scraper bitte mit angemessenem Delay (≥ 1s zwischen Anfragen).

Response-Header

Jede API-Antwort enthält automatisch folgende Attribution-Header:

X-Data-Source: RKI SurvStat@RKI 2.0; RKI GitHub (Influenza, RSV)

X-Data-License: SurvStat: Quellenangabe, keine werbliche Nutzung; RKI GitHub: CC-BY-4.0

Nutzungsbedingungen

Höhere Limits oder Fragen?

PRO-Nutzer erhalten erhöhte Rate-Limits und einen persönlichen API-Token für Integrationen. Bei Fragen oder für eine Kooperationsanfrage: support@meldepuls.de

Jetzt PRO buchen →

Über die Daten

Alle Daten stammen ausschließlich vom Robert Koch-Institut (RKI) über die offizielle SurvStat@RKI 2.0 SOAP-API sowie offizielle RKI GitHub-Repositories. Es handelt sich ausschließlich um laborbestätigte, nach Infektionsschutzgesetz (IfSG) meldepflichtige Fälle. Weitere Details zur Methodik und bekannten Limitationen (Meldeverzug, Dunkelziffer) unter Methodik & Datenquellen.

Häufige Fragen

Brauche ich einen API-Key?
Nein. Alle öffentlichen Endpunkte funktionieren ohne Key, begrenzt auf 300 Anfragen je 15 Minuten pro IP-Adresse. Mit Free-Konto sind es 500, mit PRO-Token 2.000 Anfragen je 15 Minuten.
Wie oft werden die Daten aktualisiert?
MeldePuls ruft die RKI-Daten montags, dienstags, mittwochs und samstags automatisch ab, Landkreisdaten samstags. Das Feld data_as_of bzw. /api/status zeigt den letzten erfolgreichen Abruf.
Wie viel Historie bekomme ich ohne PRO?
Ohne PRO bis zu 52 Wochen national und je Landkreis, bei der Heatmap bis zu 3 Jahre. Mit PRO-Token sind es bis zu 1.300 Wochen national, 260 Wochen je Landkreis und 10 Jahre Heatmap. Größere Werte ohne PRO beantwortet die API mit Status 403.
Welche Woche soll ich für Trends verwenden?
Die Felder reference_count und reference_trend_pct beziehen sich auf die Referenzwoche, eine Woche vor der letzten abgeschlossenen. Die älteren Felder current_week und trend_pct bleiben unverändert, können aber eine unvollständige Woche enthalten. Details: Methodik.
Was passiert, wenn ich das Limit überschreite?
Die API antwortet mit Status 429 und dem Header Retry-After. Ein ungültiger oder widerrufener Token führt zu Status 401.
Darf ich die Daten in meinem Produkt verwenden?
Bitte immer die Quelle nennen. SurvStat-Daten dürfen laut RKI mit Quellenangabe verwendet werden, nicht zu werblichen Zwecken; Influenza- und RSV-Daten aus RKI-GitHub stehen unter CC BY 4.0. Ob eine bestimmte Nutzung zulässig ist, klären Sie im Zweifel direkt mit dem RKI (Verwendung der Daten).