Kostenlose API für E-Mail-Prüfungen
Ein Aufruf, ein JSON: Die offene Postwacht-API prüft eine Domain auf SPF, DKIM, DMARC, MX, STARTTLS, MTA-STS und Sperrlisten. Ohne Anmeldung, ohne Antrag, mit Schlüssel aus dem kostenlosen Konto mit höherer Grenze.
Der erste Aufruf
curl https://postwacht.de/api/v1/check/beispiel.de
Die Antwort enthält das Gesamtergebnis und jede einzelne Prüfung:
{
"domain": "beispiel.de",
"overall": "warn",
"checks": [
{"id": "spf", "status": "ok", "title": "SPF-Eintrag", "detail": "…", "data": {…}},
{"id": "dmarc", "status": "warn", "title": "DMARC-Eintrag", "detail": "p=none …", "data": {…}}
],
"access": {"level": "anonymous", "limit_per_hour": 1, "remaining": 0}
}
overall und jeder status sind ok, warn, fail oder info. Mit dem Header Accept-Language: en kommen Titel und Befunde auf Englisch.
Grenzen
| Zugang | Grenze | Was du brauchst |
|---|---|---|
| Ohne Schlüssel | 1 Abfrage(n) pro Stunde und Netz | nichts |
| Mit Schlüssel | 60 Abfragen pro Stunde und Konto | ein kostenloses Konto, Schlüssel unter API in einem Klick |
Jede Antwort enthält X-RateLimit-Limit und X-RateLimit-Remaining. Ist die Grenze erreicht, antwortet die API mit 429 und Retry-After in Sekunden. Auch Antworten aus dem Zwischenspeicher (fünf Minuten je Domain) zählen zur Grenze.
Mit Schlüssel
Lege ein kostenloses Konto an, erzeuge unter API einen Schlüssel und sende ihn im Header mit:
curl https://postwacht.de/api/v1/check/beispiel.de \ -H "Authorization: Bearer pwk_…"
Beispiele
Shell: Pipeline bricht bei Fehlern ab
STATUS=$(curl -s https://postwacht.de/api/v1/check/beispiel.de \ -H "Authorization: Bearer $POSTWACHT_KEY" | jq -r .overall) [ "$STATUS" != "fail" ] || exit 1
Python
import requests
r = requests.get("https://postwacht.de/api/v1/check/beispiel.de",
headers={"Authorization": "Bearer pwk_…"}, timeout=30)
r.raise_for_status()
for check in r.json()["checks"]:
print(check["status"], check["title"], "-", check["detail"])
JavaScript
const res = await fetch("https://postwacht.de/api/v1/check/beispiel.de", {
headers: { Authorization: "Bearer pwk_…" },
});
const { overall, checks } = await res.json();
Was geprüft wird
- MX und STARTTLS: welche Server Mails annehmen, ob sie verschlüsseln, Zertifikat und Laufzeit
- SPF: Syntax, Anzahl der DNS-Abfragen, zu weite Netze
- DKIM: Schlüssel mit den gängigen Selektoren, Schlüssellänge
- DMARC: Richtlinie, Berichtsadressen, Alignment
- MTA-STS und TLS-RPT: erzwungene Verschlüsselung und Berichte
- Domain-Sperrlisten: Spamhaus DBL und weitere
Die Prüfung liest nur öffentliche DNS-Daten und verbindet sich kurz mit den Mailservern der Domain. Es wird keine Mail verschickt. Wie jede Prüfung zu lesen ist, steht in den Werkzeugen.
Fair benutzen
- Die API ist kostenlos und ohne Verfügbarkeitszusage. Die Grenzen können sich ändern.
- Nicht erlaubt sind Massenabfragen fremder Domains, das Umgehen der Grenzen mit mehreren Konten und das Weitergeben von Schlüsseln. Wir sperren Schlüssel und Konten bei Missbrauch.
- Wir speichern keine Liste, wer welche Domain abgefragt hat. Mehr dazu in der Datenschutzerklärung, die Bedingungen stehen in den AGB.
Die Test-, Domain- und Webhook-Schnittstellen (Tests per Testmail anlegen, Domains überwachen) schalten wir auf Antrag frei. Alles dazu in der vollständigen Dokumentation.