← 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 Landkreise. Die Daten stammen ausschließlich vom Robert Koch-Institut (RKI) und werden automatisch montags und mittwochs 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 werden per IP-Adresse rate-limitiert. PRO-Nutzer können über Mein Account → API-Tokens einen persönlichen Bearer-Token erstellen für höhere Limits und zukünftige erweiterte Endpunkte.

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, Max: 1300 = 25 Jahre). Werte über 52 erfordern PRO.
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). Alle 411 deutschen Landkreise und kreisfreien Städte werden unterstützt.
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, Max: 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
Kostenlos (alle) 500 Requests 15 Minuten pro IP Kein Key erforderlich
PRO PRO Erhöhte Limits Bearer Token aus Account → API-Tokens

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, ECDC Open Data

X-Data-License: dl-de/by-2-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.