Dokumentation

Die Endpunkte, die Sie wirklich aufrufen.

Ein Schlüssel, zwei Endpunkte: eine Adresse prüfen oder eine Liste prüfen.

01Authentifizierung

Ein Schlüssel, als Bearer-Token gesendet.

Jede Anfrage trägt Ihren API-Schlüssel. Schlüssel werden im Dashboard erstellt und tragen die Scopes verify und bulk.

Authorization: Bearer bi_live_…
Content-Type: application/json

Ein Schlüssel wird nur bei der Erstellung angezeigt; wir speichern nur das Präfix. Bei einem Leck widerrufen und einen neuen erstellen; die übrigen funktionieren weiter.

02Einzeln / Echtzeit

Eine Adresse prüfen.

Synchrone Prüfung: Syntax, DNS, MX und ein SMTP-Dialog mit dem empfangenden Server. Ein Credit.

POSThttps://api.bounceintel.com/v1/check_email

Adresse prüfen

Liefert den vollständigen bewerteten Bericht. Mediane Latenz unter 500 ms; bei langsamen Servern 30 s einplanen.

verify.sh
curl -sS -X POST 'https://api.bounceintel.com/v1/check_email' \
  -H "Authorization: Bearer $BOUNCEINTEL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "[email protected]"
}'
Antwort200
{
  "input": "[email protected]",
  "is_reachable": "safe",
  "provider": "google_workspace",
  "provider_confidence": "high",
  "score": {
    "score": 100,
    "category": "valid",
    "sub_reason": "deliverable",
    "safe_to_send": true,
    "confidence": 95,
    "confidence_level": "high",
    "reason_codes": ["provider_reputation"],
    "signals": {
      "valid_syntax": true,
      "has_mx_records": true,
      "smtp_can_connect": true,
      "smtp_is_deliverable": true,
      "smtp_is_catch_all": false
    }
  },
  "syntax": { "username": "ada", "domain": "stripe.com", "is_valid_syntax": true },
  "mx": { "accepts_mail": true, "records": ["aspmx.l.google.com."] },
  "smtp": {
    "can_connect_smtp": true,
    "is_deliverable": true,
    "is_catch_all": false,
    "has_full_inbox": false,
    "is_disabled": false
  },
  "misc": { "is_disposable": false, "is_role_account": false, "is_b2c": false },
  "bounce_risk": { "score": 8, "category": "low", "action": "send", "confidence": 0.71 }
}
mx, smtp und misc sind Unions: entweder das Detailobjekt oder ein Fehlerobjekt, wenn die Stufe nicht abgeschlossen wurde. Vor dem Lesen prüfen.

03Massen / asynchron

Eine Liste prüfen.

Senden Sie die ganze Liste in einer Anfrage, fragen Sie den Fortschritt ab und blättern Sie durch die Ergebnisse. Ein Credit pro Adresse, beim Absenden belastet.

POSThttps://api.bounceintel.com/v1/bulk

Liste absenden

Alle Adressen in einem Aufruf senden. Die Antwort ist eine Job-ID; die Prüfung läuft im Hintergrund.

bulk.sh
curl -sS -X POST 'https://api.bounceintel.com/v1/bulk' \
  -H "Authorization: Bearer $BOUNCEINTEL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": [
    "[email protected]",
    "[email protected]",
    "[email protected]"
  ]
}'
Antwort200
{
  "job_id": 8
}
Credits werden beim Absenden für den gesamten Stapel atomar belastet, sodass zwei gleichzeitige Jobs nicht dasselbe Guthaben ausgeben können. Übersteigt der Stapel Ihr Guthaben, wird die ganze Anfrage abgelehnt; es wird nichts teilweise belastet.
GEThttps://api.bounceintel.com/v1/bulk/{job_id}

Fortschritt abfragen

Während der Ausführung abfragen. finished_at bleibt null, bis alle Adressen verarbeitet sind.

status.sh
curl -sS -X GET 'https://api.bounceintel.com/v1/bulk/{job_id}' \
  -H "Authorization: Bearer $BOUNCEINTEL_KEY" \
  -H "Accept: application/json"
Antwort200
{
  "job_id": 8,
  "created_at": "2026-09-02T15:16:15.447365Z",
  "finished_at": null,
  "total_records": 4,
  "total_processed": 2,
  "summary": {
    "total_safe": 1,
    "total_risky": 0,
    "total_invalid": 1,
    "total_unknown": 0
  },
  "job_status": "Running"
}
Alle paar Sekunden abfragen, nicht in einer engen Schleife. Die Summen der Zusammenfassung aktualisieren sich laufend.
GEThttps://api.bounceintel.com/v1/bulk/{job_id}/results?format=json&limit=1000&offset=0

Ergebnisse abrufen

Blättern Sie durch die fertigen Ergebnisse. Jede Zeile hat dieselbe Form wie eine Einzelprüfung.

results.sh
curl -sS -X GET 'https://api.bounceintel.com/v1/bulk/{job_id}/results?format=json&limit=1000&offset=0' \
  -H "Authorization: Bearer $BOUNCEINTEL_KEY" \
  -H "Accept: application/json"
Antwort200
{
  "results": [
    {
      "input": "[email protected]",
      "is_reachable": "safe",
      "provider": "google_workspace",
      "score": {
        "score": 100,
        "category": "valid",
        "safe_to_send": true,
        "sub_reason": "deliverable",
        "reason_codes": ["provider_reputation"]
      },
      "syntax": { "username": "ada", "domain": "stripe.com", "is_valid_syntax": true },
      "mx": { "accepts_mail": true, "records": ["aspmx.l.google.com."] },
      "smtp": { "can_connect_smtp": true, "is_deliverable": true, "is_catch_all": false },
      "misc": { "is_disposable": false, "is_role_account": false },
      "bounce_risk": { "score": 8, "category": "low", "action": "send" }
    }
  ]
}
limit ist bei JSON standardmäßig 50. Geben Sie es explizit an, bis 1000, und blättern Sie mit offset. Mit format=csv laden Sie den ganzen Satz als Datei.

04KI-Assistenten

Prüfen direkt aus Ihrem KI-Assistenten.

BounceIntel betreibt einen MCP-Server unter https://api.bounceintel.com/mcp. Verbinden Sie Claude Code, Cursor, VS Code oder jeden anderen Client, der MCP über HTTP spricht, und der Assistent prüft Adressen und Listen für Sie, mit demselben API-Schlüssel und denselben Credits.

terminal
claude mcp add --transport http bounceintel https://api.bounceintel.com/mcp \
  --header "Authorization: Bearer $BOUNCEINTEL_KEY"

Senden Sie Ihren API-Schlüssel als Bearer-Token, genau wie bei der REST-API. Die Beispiele lesen ihn aus BOUNCEINTEL_KEY, damit der Schlüssel nicht in Dateien landet, die Sie einchecken.

ToolScope des SchlüsselsWas es tut
verify_emailverifyPrüft eine Adresse und liefert Ergebnis, Score und Grund. Ein Credit.
verify_email_listbulkStartet einen Bulk-Job für eine Liste und liefert dessen Job-ID. Ein Credit pro eindeutiger Adresse.
get_bulk_jobbulkZeigt den Fortschritt eines Jobs und wie viele Adressen welches Ergebnis haben. Kostet keine Credits.
get_bulk_resultsbulkLiefert die Ergebnisse eines abgeschlossenen Jobs seitenweise, auf Wunsch nach Ergebnis gefiltert. Kostet keine Credits.
get_accountjeder SchlüsselZeigt Tarif, verbleibende Credits und wann sie zurückgesetzt werden. Kostet keine Credits.

Bulk-Jobs laufen im Hintergrund: Der Assistent startet den Job, verfolgt den Fortschritt und liest danach die Ergebnisse. Tools, die ein Schlüssel nicht verwenden darf, bleiben für den Assistenten ausgeblendet.

05Fehler

Was zurückkommen kann.

Jeder Fehler ist ein JSON mit einem error-Feld. Auf diese lohnt es sich zu verzweigen.

StatusFehlerWas tun
400invalid_requestBody fehlerhaft oder Adresse unbrauchbar. Korrigieren und erneut senden.
401unauthorizedSchlüssel fehlt, ist falsch oder widerrufen.
403forbiddenSchlüssel gültig, aber ohne den nötigen Scope.
429rate_limitedZu viele Anfragen. Warten und erneut versuchen.
429quota_exceededKeine Credits mehr. Nur ein Kauf hilft; erneutes Senden nicht.
503unavailableIhr Kontingent konnte nicht ermittelt werden. Vorübergehend: kurz darauf erneut versuchen.

06Playground

Mit eigenem Schlüssel testen.

Führt eine echte Prüfung auf Ihrem Konto aus. Einzelprüfung: ein Credit. Bulk: ein Credit je Adresse, abgebucht bei der Einreichung.

Fügen Sie Ihren eigenen API-Schlüssel ein, um es auszuprobieren. Der Schlüssel geht an unser Backend, wird einmal verwendet und nicht gespeichert. Gastprüfungen nutzen Ihren Schlüssel nicht.

Basis-URL: https://api.bounceintel.com

POST https://api.bounceintel.com/v1/check_email

verify.sh
curl -sS -X POST 'https://api.bounceintel.com/v1/check_email' \
  -H "Authorization: Bearer $BOUNCEINTEL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "[email protected]"
}'

Kopierte Snippets verwenden $BOUNCEINTEL_KEY, nie den eingegebenen Schlüssel.