Verifizierungs-API

Ein Aufruf, und Sie wissen, was beim Senden passiert.

Prüfen Sie Adressen bei der Registrierung und vor jedem Versand, damit fehlerhafte Daten weder Ihre Liste noch Ihre Absenderreputation erreichen. Token rein, Urteil raus, mit Score und Begründungscodes dahinter.

Anfrage und Antwort

Die ganze Integration, auf einem Bildschirm.

Kein SDK, kein Client zum Aufbauen, kein Wrapper zum Lernen. Ein Bearer-Token, ein POST und ein Objekt, dessen Feldnamen Ihr Code auswerten kann.

verify.sh
curl -X POST https://api.bounceintel.com/v1/check_email \
  -H "Authorization: Bearer $BOUNCEINTEL_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]"}'
response.json200
{
  "input": "[email protected]",
  "is_reachable": "safe",
  "syntax": {
    "domain": "stripe.com",
    "username": "ada",
    "is_valid_syntax": true
  },
  "mx": {
    "accepts_mail": true,
    "records": ["aspmx.l.google.com", "alt1.aspmx.l.google.com"]
  },
  "smtp": {
    "can_connect_smtp": true,
    "is_deliverable": true,
    "is_catch_all": false,
    "is_disabled": false,
    "has_full_inbox": false
  },
  "misc": {
    "is_disposable": false,
    "is_role_account": false,
    "is_b2c": false
  },
  "provider": "google_workspace",
  "provider_rules_applied": true,
  "score": {
    "score": 100,
    "category": "valid",
    "sub_reason": "deliverable",
    "safe_to_send": true,
    "confidence": 0.97,
    "confidence_level": "high",
    "reason_codes": ["deliverable", "tenant_history_positive"]
  },
  "bounce_risk": {
    "score": 3,
    "category": "low",
    "confidence": 0.94,
    "action": "send",
    "model_version": "br-2026.06",
    "risk_factors": [
      {
        "signal": "smtp_is_deliverable",
        "direction": "decreases_risk",
        "contribution": -0.41,
        "description": "Mailbox accepted the recipient at RCPT TO."
      }
    ]
  }
}
  • 01

    Ein Endpunkt

    POST /v1/check_email mit einer Adresse. Es gibt keine Session aufzubauen.

  • 02

    Begründungscodes

    Dokumentierte Codes, auf die Sie verzweigen können, statt Freitext.

  • 03

    Ihr eigener Score

    Eine Zahl von 0 bis 100, damit Ihre Schwelle eine Konfiguration ist und nicht unsere Entscheidung.

  • 04

    Ehrliche Unbekannte

    Eine unklare Prüfung liefert 200 mit dem Urteil unbekannt, niemals ein erfundenes.

  • 05

    Massenlauf als Job

    POST /v1/bulk nimmt eine Liste und liefert eine Job-ID zum Abfragen.

  • 06

    Rotierbare Schlüssel

    Mehrere aktive Schlüssel, einzeln widerrufbar, ohne Ausfall.

Erste Schritte

Von keinem Konto zu einem Urteil in Ihrem eigenen Code.

  1. 01

    Schlüssel anlegen

    Schlüssel werden im Dashboard ausgegeben. Sie können mehrere gleichzeitig aktiv halten und einzeln widerrufen, eine Rotation kostet also keine Ausfallzeit.

  2. 02

    Adresse senden

    Ein POST mit einem Authorization-Header und einem JSON-Body. Es gibt keine Sitzung aufzubauen und keinen Handshake davor.

  3. 03

    Auf die Antwort verzweigen

    Lesen Sie das Urteil, oder den Score gegen Ihren eigenen Schwellenwert, oder die Begründungscodes. Alle drei stehen im selben Objekt, ein zweiter Aufruf für das Warum entfällt.

  4. 04

    Auf Listen skalieren

    Derselbe Schlüssel reicht einen Stapel als Auftrag ein und fragt ihn ab. Die Urteile sind identisch mit denen des Einzelendpunkts, denn es ist dieselbe Pipeline.

Referenz

Die Oberfläche, gegen die Sie integrieren.

Vier Endpunkte und zwei Header. Die vollständige Referenz, mit einer Live-Testkonsole, steht in der Dokumentation.

Endpunkt oder HeaderArtWas er tut
POST /v1/check_emailsynchronousEine Adresse prüfen und den bewerteten Bericht in derselben Antwort erhalten. Das ist der Aufruf, den fast jede Integration macht.
POST /v1/bulkjobEine Liste einreichen und eine Auftrags-ID erhalten. Nimmt weit mehr Adressen an, als Sie mit offener Verbindung halten wollen würden.
GET /v1/bulk/{job_id}jobEinen Auftrag nach Status und Fortschritt abfragen, damit Ihre eigene Oberfläche einen Fortschritt zeigt statt einer sich drehenden Anzeige.
GET /v1/bulk/{job_id}/resultsjson | csvDie Zeilen eines fertigen Auftrags seitenweise abrufen, als JSON oder als dieselbe CSV, die das Dashboard herunterlädt.
Authorization: BearerheaderWie sich jede Anfrage authentifiziert. Behalten Sie den Schlüssel auf Ihrem Server: ein Schlüssel, der den Browser erreicht, ist ein öffentliches Credit-Guthaben.
429 / Retry-AfterheaderWas Sie erhalten, wenn Sie das Ratenlimit Ihres Plans überschreiten. Warten Sie die im Header genannten Sekunden und versuchen Sie es erneut; eine abgewiesene Anfrage wird nicht berechnet.

FAQ

Was Entwickler zuerst fragen

Wie authentifiziere ich mich?

Ein Authorization-Header mit Token. Der Schlüssel bleibt auf Ihrem Server: ein Schlüssel im Browser ist ein öffentliches Guthaben.

Was mache ich mit dem Urteil unbekannt?

Den Nutzer durchlassen, den Datensatz markieren und später erneut prüfen. Meist verweigert nur der Zielserver die Antwort.

Welche Tarife enthalten API-Schlüssel?

Jeder bezahlte Tarif, monatlich oder nach Bedarf. Kostenlose Konten prüfen im Dashboard, was reicht, um das Antwortformat zu sehen.

Kann ich sie aus dem Browser aufrufen?

Nein. Leiten Sie sie über Ihren eigenen Server. Ein Schlüssel im Browser ist ein öffentliches Guthaben.

Wie hoch sind die Ratenlimits?

Sie werden je Plan festgelegt statt als eine globale Zahl veröffentlicht, denn eine Integration in ein Anmeldeformular und ein nächtlicher Listenlauf haben sehr unterschiedliche Profile. Bei Überschreitung antwortet die API mit 429 und einem Retry-After-Header und berechnet die Anfrage nicht.

Gibt es ein SDK?

Nein, und genau darum geht es. Ein Endpunkt mit JSON-Body braucht keine Client-Bibliothek, und ein dünner Wrapper ist eine Abhängigkeit, die man ohne Gegenwert aktuell halten muss. Jede Sprache in den Beispielen oben nutzt ihren eigenen Standard-HTTP-Client.

Lesen Sie die Antwort, bevor Sie dagegen programmieren.

100 Credits bei der Anmeldung, ohne Karte. Echte Adressen prüfen und genau das Objekt sehen, das Ihr Code bekommt.