EmailVerify LogoEmailVerify

API Reference

Complete email checker API reference. Endpoints, parameters, response codes for email verification and validation.

Die EmailVerify API ist ein RESTful-Dienst, der leistungsstarke E-Mail-Verifizierungsfunktionen bereitstellt. Alle API-Anfragen sollten über HTTPS erfolgen.

Basis-URL

https://api.emailverify.ai/v1

Authentifizierung

Alle API-Anfragen erfordern eine Authentifizierung mit einem Bearer-Token im Authorization-Header:

Authorization: Bearer YOUR_API_KEY

Holen Sie sich Ihren API-Schlüssel aus dem EmailVerify Dashboard.

Beispiel

curl -X POST https://api.emailverify.ai/v1/verify \
  -H "Authorization: Bearer bv_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"email": "test@example.com"}'

Ratenlimits

PlanAnfragen/StundeAnfragen/Tag
Free1001.000
Starter1.00010.000
Professional10.000100.000
EnterpriseIndividuellIndividuell

Ratenlimit-Informationen sind in den Antwort-Headern enthalten:

HeaderBeschreibung
X-RateLimit-LimitMaximal erlaubte Anfragen
X-RateLimit-RemainingVerbleibende Anfragen im Zeitfenster
X-RateLimit-ResetUnix-Zeitstempel, wann das Limit zurückgesetzt wird

Bei Überschreitung des Ratenlimits erhalten Sie eine 429 Too Many Requests Antwort:

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please try again later.",
    "retry_after": 3600
  }
}

Endpunkte

Einzelne E-Mail-Verifizierung

Verifizieren Sie eine einzelne E-Mail-Adresse mit detaillierten Ergebnissen.

POST /verify

Anfrage

{
  "email": "user@example.com",
  "smtp_check": true,
  "timeout": 5000
}

Parameter

ParameterTypErforderlichStandardBeschreibung
emailstringJa-Zu verifizierende E-Mail-Adresse
smtp_checkbooleanNeintrueSMTP-Postfachverifizierung durchführen
timeoutintegerNein5000Anfrage-Timeout in Millisekunden (max: 30000)

Antwort

{
  "email": "user@example.com",
  "status": "valid",
  "result": {
    "deliverable": true,
    "valid_format": true,
    "valid_domain": true,
    "valid_mx": true,
    "disposable": false,
    "role": false,
    "catchall": false,
    "free": false,
    "smtp_valid": true
  },
  "score": 0.95,
  "reason": null,
  "credits_used": 1
}

Antwortfelder

FeldTypBeschreibung
emailstringDie verifizierte E-Mail-Adresse
statusstringVerifizierungsstatus: valid, invalid, unknown, accept_all
resultobjectDetaillierte Verifizierungsergebnisse
scorenumberKonfidenzbewertung (0,0 - 1,0)
reasonstringGrund für ungültigen/unbekannten Status (nullable)
credits_usedintegerAnzahl verbrauchter Credits

Result-Objekt-Felder

FeldTypBeschreibung
deliverablebooleanOb E-Mail Nachrichten empfangen kann
valid_formatbooleanOb E-Mail gültige Syntax hat
valid_domainbooleanOb Domain existiert
valid_mxbooleanOb Domain MX-Einträge hat
disposablebooleanOb E-Mail von Einweg-Dienst stammt
rolebooleanOb E-Mail rollenbasiert ist (info@, support@)
catchallbooleanOb Domain alle E-Mails akzeptiert
freebooleanOb E-Mail von kostenlosem Anbieter stammt
smtp_validbooleanOb SMTP-Verifizierung erfolgreich war

Massen-E-Mail-Verifizierung

Senden Sie mehrere E-Mail-Adressen zur Verifizierung. Gibt eine Job-ID zur Verfolgung des Fortschritts zurück.

POST /verify/bulk

Anfrage

{
  "emails": [
    "user1@example.com",
    "user2@example.com",
    "user3@example.com"
  ],
  "smtp_check": true,
  "webhook_url": "https://your-app.com/webhooks/emailverify"
}

Parameter

ParameterTypErforderlichStandardBeschreibung
emailsarrayJa-Array von E-Mail-Adressen (max: 10.000)
smtp_checkbooleanNeintrueSMTP-Verifizierung durchführen
webhook_urlstringNein-URL für Abschlussbenachrichtigung

Antwort

{
  "job_id": "job_abc123xyz",
  "status": "processing",
  "total": 3,
  "processed": 0,
  "valid": 0,
  "invalid": 0,
  "unknown": 0,
  "credits_used": 3,
  "created_at": "2025-01-15T10:30:00Z"
}

Massen-Job-Status abrufen

Überprüfen Sie den Status eines Massen-Verifizierungsjobs.

GET /verify/bulk/{job_id}

Antwort (In Bearbeitung)

{
  "job_id": "job_abc123xyz",
  "status": "processing",
  "total": 1000,
  "processed": 450,
  "valid": 380,
  "invalid": 50,
  "unknown": 20,
  "progress_percent": 45,
  "created_at": "2025-01-15T10:30:00Z"
}

Antwort (Abgeschlossen)

{
  "job_id": "job_abc123xyz",
  "status": "completed",
  "total": 1000,
  "processed": 1000,
  "valid": 850,
  "invalid": 100,
  "unknown": 50,
  "progress_percent": 100,
  "created_at": "2025-01-15T10:30:00Z",
  "completed_at": "2025-01-15T10:35:00Z"
}

Job-Statuswerte

StatusBeschreibung
pendingJob ist in Warteschlange
processingJob wird bearbeitet
completedJob erfolgreich abgeschlossen
failedJob fehlgeschlagen (siehe Fehlerfeld)

Massen-Job-Ergebnisse abrufen

Rufen Sie Verifizierungsergebnisse für einen abgeschlossenen Massen-Job ab.

GET /verify/bulk/{job_id}/results

Abfrageparameter

ParameterTypStandardBeschreibung
limitinteger100Ergebnisse pro Seite (max: 1.000)
offsetinteger0Startposition
statusstring-Nach Status filtern: valid, invalid, unknown

Antwort

{
  "job_id": "job_abc123xyz",
  "total": 1000,
  "limit": 100,
  "offset": 0,
  "results": [
    {
      "email": "user1@example.com",
      "status": "valid",
      "result": {
        "deliverable": true,
        "disposable": false,
        "role": false
      },
      "score": 0.95
    },
    {
      "email": "user2@example.com",
      "status": "invalid",
      "result": {
        "deliverable": false,
        "reason": "mailbox_not_found"
      },
      "score": 0.10
    }
  ]
}

Credits überprüfen

Abrufen des aktuellen Credit-Guthabens und der Nutzungsinformationen.

GET /credits

Antwort

{
  "available": 9500,
  "used": 500,
  "total": 10000,
  "plan": "Professional",
  "resets_at": "2025-02-01T00:00:00Z",
  "rate_limit": {
    "requests_per_hour": 10000,
    "remaining": 9850
  }
}

Webhooks

Webhook erstellen

POST /webhooks
{
  "url": "https://your-app.com/webhooks/emailverify",
  "events": ["verification.completed", "bulk.completed"],
  "secret": "your-webhook-secret"
}

Webhooks auflisten

GET /webhooks

Webhook löschen

DELETE /webhooks/{webhook_id}

Webhook-Ereignisse

EreignisBeschreibung
verification.completedEinzelne E-Mail-Verifizierung abgeschlossen
bulk.completedMassen-Job abgeschlossen
bulk.failedMassen-Job fehlgeschlagen
credits.lowCredits unter Schwellenwert

Webhook-Payload

{
  "event": "bulk.completed",
  "timestamp": "2025-01-15T10:35:00Z",
  "data": {
    "job_id": "job_abc123xyz",
    "status": "completed",
    "total": 1000,
    "valid": 850,
    "invalid": 100,
    "unknown": 50
  },
  "signature": "sha256=..."
}

Verifizierungsstatus

StatusBedeutungEmpfohlene Aktion
validE-Mail existiert und kann Nachrichten empfangenSicher zu senden
invalidE-Mail existiert nicht oder kann nicht empfangenVon Liste entfernen
unknownGültigkeit konnte nicht ermittelt werdenSpäter erneut versuchen oder mit Vorsicht verwenden
accept_allDomain akzeptiert alle E-Mails (Catch-All)Auf Bounces überwachen

Fehlerantworten

Alle Fehler folgen einem einheitlichen Format:

{
  "error": {
    "code": "ERROR_CODE",
    "message": "Human-readable error message",
    "details": "Additional context (optional)"
  }
}

HTTP-Statuscodes

CodeBeschreibung
200Erfolg
400Bad Request - Ungültige Parameter
401Unauthorized - Ungültiger oder fehlender API-Schlüssel
403Forbidden - Unzureichende Berechtigungen
404Not Found - Ressource existiert nicht
429Too Many Requests - Ratenlimit überschritten
500Internal Server Error
503Service Unavailable

Fehlercodes

CodeHTTP-StatusBeschreibung
INVALID_API_KEY401API-Schlüssel ist ungültig oder fehlt
RATE_LIMIT_EXCEEDED429Zu viele Anfragen
INSUFFICIENT_CREDITS403Nicht genug Credits
INVALID_EMAIL400E-Mail-Format ist ungültig
INVALID_REQUEST400Anfragekörper ist fehlerhaft
JOB_NOT_FOUND404Massen-Job-ID nicht gefunden
TIMEOUT504Verifizierung hat Zeitüberschreitung erreicht

Best Practices

1. Umgebungsvariablen verwenden

Niemals API-Schlüssel hartkodieren:

// Gut
const apiKey = process.env.EMAILVERIFY_API_KEY;

// Schlecht - nicht tun
const apiKey = 'bv_live_xxx';

2. Ratenlimits behandeln

Implementieren Sie exponentielles Backoff:

async function verifyWithRetry(email, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await verify(email);
    } catch (error) {
      if (error.code === 'RATE_LIMIT_EXCEEDED') {
        await sleep(Math.pow(2, i) * 1000);
        continue;
      }
      throw error;
    }
  }
}

3. Bulk für mehrere E-Mails verwenden

Für die Verifizierung von mehr als 10 E-Mails verwenden Sie den Bulk-Endpunkt:

// Gut - einzelner API-Aufruf
const job = await client.verifyBulk(emails);

// Schlecht - viele einzelne Aufrufe
for (const email of emails) {
  await client.verify(email);
}

4. Webhooks für Massen-Jobs implementieren

Nicht ständig abfragen; verwenden Sie Webhooks:

// Mit Webhook übermitteln
const job = await client.verifyBulk(emails, {
  webhookUrl: 'https://your-app.com/webhook',
});

SDKs

Verwenden Sie unsere offiziellen SDKs für eine einfachere Integration:

Nächste Schritte

On this page