REST-API · JSON · Kostenloser Tarif

E-Mail-Validierung API & Software

Prüfen Sie jede E-Mail-Adresse direkt aus Ihrem Code. Eine GET-Anfrage liefert Syntax-, MX-, SMTP-Postfach-, Wegwerf-, Rollen- und Freemail-Prüfung, einen Zustellbarkeitsstatus mit Begründung und einen Qualitätswert. Ganze Listen laufen über den Bulk-Endpunkt, bis zu 100.000 Adressen pro Job.

  • 100 kostenlose Validierungen pro Monat
  • Keine Kreditkarte
  • Prüfung in Deutschland
curl -H "apikey: IHR-API-KEY" "https://api.emailvalidation.io/v1/info?email=anna@example.com"

Live-API testen

Anfrage senden, echte Antwort sehen

Geben Sie eine Adresse ein: Sie geht an dieselbe API, die Ihr Code aufruft. Das JSON-Beispiel wird dann durch die Antwort ersetzt, die Sie zurückbekommen.

E-Mail-Adresse validieren

Ohne Anmeldung

Jede Anfrage führt diese Prüfungen aus:

  • format_valid
  • mx_found
  • smtp_check
  • disposable
  • role
  • free
GET /v1/info
curl "https://api.emailvalidation.io/v1/info?email=support@emailvalidation.io" \
  -H "apikey: IHR-API-KEY"

200 · GET /v1/info?email=support@emailvalidation.io

{
  "email": "support@emailvalidation.io",
  "user": "support",
  "tag": "",
  "domain": "emailvalidation.io",
  "format_valid": true,
  "mx_found": true,
  "smtp_check": true,
  "catch_all": null,
  "role": true,
  "disposable": false,
  "free": false,
  "score": 0.64,
  "state": "deliverable",
  "reason": "low_quality",
  "did_you_mean": "",
  "catch_all_resolution": null,
  "bounce_probability": null,
  "status": "valid",
  "sub_status": "role_based",
  "explanation": "The mailbox exists, but it is a role address (such as info@ or support@), usually read by a team rather than one person.",
  "recommended_action": "send_with_caution"
}

Vom API-Key zum ersten Ergebnis in drei Schritten

Kein SDK nötig: Jede Sprache, die eine HTTPS-Anfrage senden kann, kann die API aufrufen.

  1. Schritt

    Kostenloses Konto anlegen

    Registrieren Sie sich und kopieren Sie Ihren API-Key aus dem Dashboard. Der kostenlose Tarif enthält 100 Credits pro Monat (1 pro Validierung), bei bis zu 10 Anfragen pro Minute.

    apikey: IHR-API-KEY
  2. Schritt

    GET /v1/info aufrufen

    Übergeben Sie die Adresse als email und Ihren Key im Header apikey. Der Header ist besser als der Query-Parameter, der in Access-Logs landen kann.

    GET /v1/info?email=anna@example.com
  3. Schritt

    Auf den Status reagieren

    Verzweigen Sie nach state und protokollieren Sie reason: zustellbare Adressen annehmen, bei unzustellbaren um Korrektur bitten, bei unknown und beim Grund low_deliverability im Einzelfall entscheiden.

    "state": "deliverable"

Endpunkte

Sieben Endpunkte, eine Basis-URL

Jeder Aufruf geht an https://api.emailvalidation.io und liefert JSON. Authentifizieren Sie sich mit Ihrem API-Key im Header apikey oder im Query-Parameter apikey.

  • Ein Key, als Header oder ParameterSenden Sie den Key als Header, dann taucht er nicht in URLs und Logs auf. Ab dem Tarif Medium können Sie mehrere Keys anlegen (Small hat einen), Sandbox-Keys ebenfalls ab Medium.
  • Catch-all auf AnfrageMit catch_all=1 bei /v1/info oder catch_all im Bulk-Job prüfen Sie, ob die Domain jede Adresse annimmt. Ab dem Tarif Small verfügbar.
  • Auch als MCP-ServerKI-Agenten erreichen dieselben Prüfungen unter https://api.emailvalidation.io/mcp. MCP-Server einrichten (Englisch).
  • GET/v1/infoEine Adresse validieren. Parameter: email, catch_all (1 oder 0).
  • POST/v1/bulkBulk-Job aus einem JSON-Array oder einer CSV- bzw. TXT-Datei starten, bis zu 100.000 Adressen.
  • GET/v1/bulkIhre Bulk-Jobs auflisten, neueste zuerst.
  • GET/v1/bulk/{job_id}Status, Zähler und Fortschritt eines Jobs.
  • GET/v1/bulk/{job_id}/resultsErgebnisse als JSON oder CSV herunterladen.
  • DELETE/v1/bulk/{job_id}Einen Job samt Liste und Ergebnissen löschen.
  • GET/v1/statusIhr Monatskontingent: gesamt, verbraucht, übrig. Kostenlos abrufbar.

Antwortfelder

Was die Antwort Ihnen sagt

Jede Antwort hat dieselben 21 Felder, Ihr Code muss also nie raten, welche Schlüssel es gibt.

FeldTypBedeutung
emailstringDie geprüfte Adresse.
userstringDer lokale Teil vor dem @.
tagstringDer Zusatz nach dem Pluszeichen, falls vorhanden, z. B. news bei max+news@example.com.
domainstringDer Domain-Teil nach dem @.
format_validbooleanOb die Adresse den Syntaxregeln für E-Mail-Adressen entspricht.
mx_foundbooleanOb die Domain MX-Einträge hat, das übliche Zeichen dafür, dass sie E-Mails empfangen kann.
smtp_checkbooleanOb der empfangende Mailserver das Postfach bei der SMTP-Prüfung angenommen hat.
catch_allboolean | nullOb die Domain E-Mails für jede Adresse annimmt. null, solange Sie nicht catch_all=1 senden.
rolebooleanEine Rollen-Adresse wie support@ oder postmaster@.
disposablebooleanEine Adresse bei einem Wegwerf-E-Mail-Dienst.
freebooleanEine Adresse bei einem Freemail-Anbieter wie Gmail oder GMX.
scorenumberQualitätswert von 0 (schlecht) bis 1 (gut).
statestringdeliverable, undeliverable oder unknown.
reasonstringWarum die Adresse ihren Status hat, siehe Tabelle unten.
did_you_meanstringEin Korrekturvorschlag bei einem wahrscheinlichen Tippfehler in der Domain, zum Beispiel gmail.com für gmial.com. Nur ein Vorschlag: Die anderen Felder ändert er nicht.
catch_all_resolutionobject | nullBei einer Catch-all-Domain: wie weit die Prüfung ohne den Versand einer E-Mail gekommen ist, mit Hinweisen auf Domain-Ebene wie dem Mail-Anbieter. Bei allen anderen Ergebnissen null.
bounce_probabilitynumber | nullGeschätzte Wahrscheinlichkeit von 0 bis 1, dass eine E-Mail an die Adresse zurückkommt. Vorerst null.
statusstringWas das Ergebnis für den Versand bedeutet: valid, invalid, catch_all, risky, do_not_mail oder unknown.
sub_statusstring | nullDer Grund dafür, zum Beispiel role_based, mailbox_full oder accept_all. Bei einem einfachen gültigen Ergebnis null.
explanationstringEin fester englischer Satz pro Sub-Status, den Sie Menschen anzeigen können.
recommended_actionstringWas zu tun ist: send, send_with_caution, suppress oder retry_later.

Drei Status, 11 Gründe

Verzweigen Sie nach dem Status, den Grund behalten Sie für Logs und Support.

deliverable

Der Mailserver nimmt die Adresse an. Annehmen, aber low_deliverability und low_quality mit Vorsicht behandeln.

valid_mailbox
Ein gültiges Postfach, das E-Mails empfangen kann.
low_deliverability
Die Domain nimmt jede Adresse an (Catch-all), daher lässt sich kein einzelnes Postfach bestätigen, oder die Adresse ist eine Wegwerf-Adresse oder ihr Postfach ist voll.
low_quality
Das Postfach existiert, ist aber eine Rollen-Adresse wie info@ oder support@, die meist ein Team liest.

undeliverable

Die E-Mail kommt zurück. Blockieren oder um Korrektur bitten.

invalid_format
Das Adressformat ist ungültig.
invalid_mx
MX-Einträge fehlen oder sind ungültig.
invalid_mailbox
Der Mailserver hat die Adresse abgelehnt.
invalid_smtp
Nur mit Sandbox-Keys, für eine Testadresse.

unknown

Der Server konnte nicht gefragt werden. Später erneut prüfen.

no_connect
Keine Verbindung zum Mailserver.
timeout
Die SMTP-Verbindung ist abgelaufen.
unavailable_smtp
Der Server hat keine Prüfung zugelassen.
unexpected_error
Ein unerwarteter Fehler ist aufgetreten.

Alle Definitionen in der Dokumentation zu /v1/info.

Bulk-API für E-Mail-Listen

Eine ganze Liste mit einer Anfrage

Senden Sie ein JSON-Array per POST oder laden Sie eine CSV- oder TXT-Datei mit bis zu 100.000 Adressen hoch (25 MB). Der Job läuft im Hintergrund: Fragen Sie den Status ab oder lassen Sie Ihren Webhook aufrufen, dann laden Sie die Ergebnisse herunter.

  • Nur eindeutige, gültige Adressen werden berechnetDuplikate (ohne Rücksicht auf Groß- und Kleinschreibung und umgebende Leerzeichen) sowie leere oder fehlerhafte Zeilen sind kostenlos. Ein Job, der Ihr Restkontingent übersteigt, wird abgelehnt, bevor etwas berechnet wird.
  • Erstattung für nicht abgeschlossene PrüfungenAdressen mit dem Ergebnis unknown werden bei Abschluss des Jobs im Rahmen einer Fair-Use-Grenze erstattet; ein fehlgeschlagener Job wird vollständig erstattet.
  • Signierter WebhookEin POST, wenn der Job fertig oder fehlgeschlagen ist, signiert mit HMAC-SHA256, mit bis zu sechs Zustellversuchen. Er enthält den Job, nie die Adressen.
  1. queuedAngenommen, Kontingent belastet
  2. processingPrüfung je Mailserver
  3. completedErgebnisse 30 Tage abrufbar
  4. failedVollständig erstattet
POST /v1/bulk
curl -X POST "https://api.emailvalidation.io/v1/bulk" \
  -H "apikey: IHR-API-KEY" \
  -F "file=@contacts.csv" \
  -F "email_column=email" \
  -F "webhook_url=https://example.com/hooks/emailvalidation"

201 · Job angelegt

{
  "job_id": "629954218123464704",
  "status": "queued",
  "counts": {
    "total": 5,
    "unique": 3,
    "duplicates": 1,
    "invalid": 1,
    …
  },
  "quota": { "charged": 3, "refunded": 0 },
  …
}

Ergebnisse, wie Sie sie brauchen

  • JSON mit Zeilennummer, Eingabe und 19 Ergebnisfeldern pro Adresse, darunter status, sub_status und recommended_action
  • CSV: Ihre ursprünglichen Spalten plus 18 Spalten emailvalidation_*
  • Zellen, die mit =, +, - oder @ beginnen, werden maskiert, damit sich die CSV gefahrlos in einer Tabellenkalkulation öffnen lässt
  • Beliebig oft herunterladen, bis der Job abläuft, oder sofort löschen

Fehler und Limits

Vorhersehbare Fehler, klare Limits

Jeder Fehler hat einen HTTP-Status und einen Code, damit Ihre Integration eine fehlerhafte Anfrage von einem aufgebrauchten Kontingent unterscheiden kann.

  • Sie zahlen für eindeutige ErgebnisseNur die Ergebnisse deliverable und undeliverable werden auf Ihr Kontingent angerechnet. Ergebnisse mit dem Status unknown und ungültige Formate sind im Rahmen einer Fair-Use-Grenze kostenlos, Validierungsfehler immer. Statusabfragen, Joblisten, Downloads und Löschungen sind ebenfalls kostenlos.
  • Rate-Limits in den HeadernDer kostenlose Tarif erlaubt 10 Anfragen pro Minute. Antworten enthalten X-RateLimit-Remaining-Quota-Month, und X-Cost zeigt, was ein Aufruf gezählt hat.
StatusBedeutung
200Erfolg.
201Bulk-Job angelegt.
401Kein API-Key oder ein ungültiger Key.
403Key nicht erlaubt oder plan_upgrade_required für eine Funktion, die Ihr Tarif nicht enthält.
404Endpunkt oder Job nicht gefunden oder Ergebnisse nicht mehr verfügbar.
409job_not_completed: Ergebnisse angefragt, bevor der Job fertig war.
422Validierungsfehler; das Objekt errors nennt das Feld.
429Rate-Limit oder Monatskontingent überschritten.
500Interner Fehler auf unserer Seite. Kontaktieren Sie den Support.

Header für Rate-Limit und Kontingent

HeaderBedeutung
X-RateLimit-Limit-Quota-MonthIhr Monatskontingent.
X-RateLimit-Remaining-Quota-MonthVerbleibende Anfragen in diesem Monat.
X-RateLimit-Limit-Quota-MinuteErlaubte Anfragen pro Minute, bei Tarifen mit Minutenlimit wie dem kostenlosen Tarif (10).
X-RateLimit-Remaining-Quota-MinuteVerbleibende Anfragen in der laufenden Minute.
X-CostWas der Aufruf vom Kontingent abgezogen hat: 1 pro Validierung, 0 bei Sandbox-Anfragen und kostenlosen Ergebnissen; bei Bulk-Jobs die Zahl der eindeutigen gültigen Adressen.
X-RateLimit-Remaining-Overage-MonthVerbleibendes Zusatzkontingent (Overage), wenn es aktiv und das Monatskontingent aufgebraucht ist (zusammen mit X-RateLimit-Limit-Overage-Month).

Offizielle SDKs und Integrationen

Installieren Sie eine Client-Bibliothek oder rufen Sie die REST-API direkt auf.

JavaScript

npm install @everapi/emailvalidation-js --save

Python

pip install emailvalidationio

PHP

composer require everapi/emailvalidation-php

Offizielle SDKs sind außerdem für Ruby, Go, C#, R, Rust und Perl gelistet.

Wo Teams die API aufrufen

Prüfen Sie eine Adresse in dem Moment, in dem sie in Ihr System kommt, bevor sie einen Bounce verursacht.

Registrierungsformulare

Tippfehler und Wegwerf-Postfächer abfangen, bevor das Konto existiert, und die richtige Domain vorschlagen.

Checkout

Sicherstellen, dass Bestellbestätigungen und Rechnungen beim Käufer ankommen.

CRM-Importe

Ungültige und Rollen-Adressen aus Ihrer Kontaktdatenbank heraushalten.

E-Mail-Marketing

Listen vor einer Kampagne bereinigen und so Ihre Absender-Reputation schützen.

API-Preise

Dieselben Tarife wie in der App: Eine Anfrage validiert eine Adresse.

Free

$0/Monat

100 E-Mail-Prüfungen

Kostenlos starten
Small

$9,99/Monat

5.000 E-Mail-Prüfungen

≈ $0,0020 pro Prüfung

Small wählen
MediumBeliebt

$34,99/Monat

25.000 E-Mail-Prüfungen

≈ $0,0014 pro Prüfung

Medium wählen
Large

$94,99/Monat

100.000 E-Mail-Prüfungen

≈ $0,00095 pro Prüfung

Large wählen

Jederzeit kündbar · Zwei Monate gratis bei jährlicher Zahlung · Alle Preise zzgl. MwSt. · Alle Tarife vergleichen

Häufige Fragen zur E-Mail-Validierungs-API

Kurze Antworten auf das, was Entwickler vor der Integration fragen.

Ist die E-Mail-Validierungs-API kostenlos?

Für den Einstieg ja. Der kostenlose Tarif enthält 100 Credits pro Monat (1 pro Validierung) bei bis zu 10 Anfragen pro Minute, ohne Kreditkarte. Bezahlte Tarife beginnen bei $9,99 im Monat für 5.000 Credits.

Wie prüft die API eine Adresse, ohne eine E-Mail zu senden?

Sie prüft die Syntax, fragt die MX-Einträge der Domain ab und fragt den empfangenden Mailserver per SMTP, ob er das Postfach annehmen würde. Die Verbindung endet, bevor eine Nachricht versendet wird.

Was bedeutet ein Catch-all-Ergebnis?

Manche Domains nehmen E-Mails für jede Adresse an, daher kann die Postfachprüfung keine einzelne Person bestätigen. Bei Domains, die wir bereits als Catch-all kennen, entfällt sie deshalb: Solche Adressen kommen als deliverable mit dem Grund low_deliverability zurück. Senden Sie catch_all=1 (ab dem Tarif Small), und das Feld catch_all sagt Ihnen, ob es eine Catch-all-Domain ist; ohne den Parameter ist das Feld null.

Kann ich eine ganze Liste über die API validieren?

Ja. POST /v1/bulk nimmt ein JSON-Array oder eine CSV- bzw. TXT-Datei mit bis zu 100.000 Adressen an. Berechnet werden nur eindeutige, gültige Adressen, und Sie erhalten die Ergebnisse als JSON oder als Ihre CSV mit zusätzlichen Ergebnisspalten.

Welche Programmiersprachen kann ich nutzen?

Jede Sprache, die eine HTTPS-Anfrage senden kann. Es gibt offizielle SDKs für JavaScript, Python und PHP; außerdem sind SDKs für Ruby, Go, C#, R, Rust und Perl gelistet.

Zählen fehlgeschlagene Anfragen gegen mein Kontingent?

Nein. Es zählen nur eindeutige Ergebnisse (deliverable oder undeliverable). Ergebnisse mit dem Status unknown und Adressen mit ungültigem Format sind im Rahmen einer Fair-Use-Grenze kostenlos, Validierungsfehler werden nicht berechnet, und in einem Bulk-Job werden Adressen mit dem Ergebnis unknown bei Abschluss erstattet.

Was kostet eine E-Mail-Validierung?

100 Prüfungen pro Monat sind kostenlos. Danach kostet eine Validierung im Tarif Small etwa 0,20 Cent ($9,99 für 5.000 im Monat), im Tarif Large etwa 0,095 Cent ($94,99 für 100.000). Bei jährlicher Zahlung sind zwei Monate gratis. Alle Tarife finden Sie auf der Preisseite.

Wie funktioniert die Prüfung einer E-Mail-Adresse?

In vier Schritten: Die Software prüft die Syntax, schaut nach, ob die Domain existiert und MX-Einträge hat, fragt den Mailserver per SMTP, ob er das Postfach annimmt, und erkennt Wegwerf-, Rollen- und Freemail-Adressen. Heraus kommt ein Status (deliverable, undeliverable oder unknown) mit Begründung.

Ist eine E-Mail-Verifizierungs-API dasselbe wie eine E-Mail-Validierungs-API?

Im Alltag ja. Genau genommen prüft die Validierung Format und Domain, die Verifizierung zusätzlich das Postfach. Unsere API macht beides in einem Aufruf. Wie sie im Vergleich zu ZeroBounce, NeverBounce und Kickbox abschneidet, zeigt unser Vergleich der E-Mail-Validierungs-APIs.

Ist die API DSGVO-konform?

Wir verarbeiten Ihre Daten gemäß der DSGVO. Die API und alle E-Mail-Prüfungen laufen auf unseren eigenen Servern in Deutschland. Anfragen erreichen sie über Cloudflare, wo auch hochgeladene Listen gespeichert werden. Unsere Datenschutzerklärung (Englisch) nennt unsere wichtigsten Dienstleister.

Jetzt kostenlos E-Mail-Adressen prüfen

100 kostenlose Prüfungen pro Monat. Keine Kreditkarte nötig. Wechseln Sie in einen größeren Tarif, wenn Sie mehr brauchen.