Dokumentation der API für E-Mail-Verifizierung
Prüfen Sie einzelne E-Mails, starten Sie Massenprüfungen in Batches und prüfen Sie Catch-all-Adressen und Adressen hinter Sicherheits-Gateways (SEG) im Detail. Alle Endpunkte nutzen JSON und werden per API-Schlüssel authentifiziert. Abgerechnet wird nur jede erfolgreiche Prüfung.
Einführung
Mit der API von Giggal.ai prüfen Sie einzelne E-Mail-Adressen und starten Batches mit bis zu 50.000 E-Mails pro Job. Catch-all-Adressen und Adressen hinter Sicherheits-Gateways (SEG) prüfen Sie im Detail. Das alles läuft über eine einfache JSON-REST-API. Jede erfolgreiche Prüfung kostet Credits aus Ihrem Konto.
https://api.giggal.ai/v1Erstellen Sie einen API-Schlüssel in Ihrem Giggal.ai-Dashboard. Öffnen Sie in der Seitenleiste den Tab Developer API und klicken Sie auf Create API Key. Jeder Schlüssel gehört zu Ihrem Konto, erfasst seine eigene Nutzung und lässt sich jederzeit widerrufen.
Tab Developer API öffnenJede Antwort folgt demselben JSON-Format:
// Success
{ "success": true, "data": { ... }, "meta": { ... } }
// Error
{ "success": false, "error": "Human-readable error message" }curl -X POST https://api.giggal.ai/v1/verify \
-H "Authorization: Bearer tp_live_xxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"email":"info@giggal.ai"}'Authentifizierung
Senden Sie Ihren API-Schlüssel bei jeder Anfrage in einem von zwei Headern. Beide funktionieren.
Authorization: Bearer tp_live_xxxxxxxxxxxxxxxxxxxxxxxxxX-API-Key: tp_live_xxxxxxxxxxxxxxxxxxxxxxxxxFehlende, ungültige oder widerrufene Schlüssel liefern HTTP 401. Legen Sie API-Schlüssel nie im clientseitigen Code offen. Leiten Sie die Aufrufe stattdessen über Ihr Backend.
Senden Sie bei POST /v1/verify-batch und POST /v1/catchall einen Header Idempotency-Key. Eine Wiederholung mit demselben Schlüssel liefert die ursprüngliche Antwort. Es entsteht kein doppelter Job, und es werden keine Credits doppelt abgebucht.
Idempotency-Key: 2026-07-24-list-batch-42Einzelprüfung
1 Endpunkt in dieser Gruppe.
/v1/verifyEine einzelne E-Mail prüfen
Prüft eine E-Mail-Adresse synchron. Kostet 1 Credit. Ist die Domain Catch-all, läuft die Tiefenprüfung direkt mit, und die Antwort enthält catch_all_score und catch_all_verdict.
Massenprüfung
3 Endpunkte in dieser Gruppe.
/v1/verify-batchEinen Job zur Massenprüfung senden
Senden Sie bis zu 50.000 E-Mails pro Job. Die Verarbeitung läuft asynchron. Fragen Sie den Fortschritt über GET /v1/jobs/:jobId ab. Mit einem Header Idempotency-Key können Sie das Anlegen eines Jobs sicher wiederholen, ohne doppelte Kosten.
/v1/jobs/:jobIdStatus eines Massenjobs abrufen
Fragen Sie diesen Endpunkt ab, um den Fortschritt zu prüfen. Statuswechsel: processing → completed (oder failed). Empfohlener Abstand zwischen Abfragen: 10 bis 15 Sekunden. Kleine Batches (unter 50 E-Mails) sind meist innerhalb von 30 Sekunden fertig.
/v1/jobs/:jobId/resultsErgebnisse eines Massenjobs abrufen
Sobald der Status "completed" ist, rufen Sie die Ergebnisse pro E-Mail ab. Die Ergebnisse sind seitenweise aufgeteilt. Übergeben Sie dazu die Query-Parameter page und limit. Die Ergebnisse werden 48 Stunden gespeichert (siehe resultsExpiresAt im Job).
Catch-all-Verifizierung
4 Endpunkte in dieser Gruppe.
/v1/catchallEine Catch-all-Prüfung starten
Startet die Catch-all-Tiefenprüfung für einen abgeschlossenen Massenjob. Nur Adressen, die im ursprünglichen Job als Catch-all markiert sind, werden erneut geprüft. Abgerechnet wird 1 Credit pro Adresse (siehe creditsRequired in der Antwort).
/v1/catchall/:taskIdStatus einer Catch-all-Aufgabe abrufen
Fragen Sie diesen Endpunkt ab, um den Fortschritt und die laufend aktualisierten verdictCounts zu sehen. Catch-all-Aufgaben sind je nach Menge meist nach wenigen Sekunden bis wenigen Minuten fertig.
/v1/catchall/:taskId/resultsErgebnisse einer Catch-all-Aufgabe abrufen
Ruft die Ergebnisse pro E-Mail seitenweise ab, mit der zugrunde liegenden Aufschlüsselung des Scores (Signale aus der Domain-Prüfung und Alter der Domain).
/v1/catchall/:taskId/downloadCatch-all-Ergebnisse als CSV herunterladen
Lädt alle Ergebnisse einer abgeschlossenen Catch-all-Aufgabe als CSV-Datei mit den Spalten Email, Score und Verdict herunter. Der Content-Type ist text/csv.
Konto
1 Endpunkt in dieser Gruppe.
/v1/creditsAktuelles Credit-Guthaben abrufen
Liefert Ihr Kontoguthaben mit verfügbaren Credits, reservierten Credits (für laufende Jobs zurückgehalten) und Gesamtwerten seit Kontoeröffnung. Prüfungen mit dem Ergebnis "unknown" werden automatisch erstattet und hier berücksichtigt.
Fehler und Rate-Limits
| Status | Bedeutung |
|---|---|
| 200 OK | Anfrage erfolgreich (synchrone Prüfung oder Abruf von Status oder Ergebnissen). |
| 202 Accepted | Asynchroner Job oder Aufgabe angelegt und in die Warteschlange gestellt. |
| 400 Bad Request | Fehlende oder ungültige Parameter (falsches E-Mail-Format, leeres Array emails, fehlende jobId). |
| 401 Unauthorized | Fehlender, ungültiger oder widerrufener API-Schlüssel. |
| 402 Payment Required | Nicht genug Credits für die angefragte Aktion. |
| 404 Not Found | Die Job- oder Task-ID existiert in Ihrem Konto nicht. |
| 409 Conflict | Der Job hat nicht den nötigen Status (zum Beispiel Abruf von Ergebnissen vor dem Abschluss). |
| 410 Gone | Die Ergebnisse des Jobs sind älter als die Speicherdauer von 48 Stunden. |
| 429 Too Many Requests | Rate-Limit überschritten. Warten Sie und versuchen Sie es erneut. |
| 500 / 502 / 503 | Der Server oder der vorgelagerte Prüfdienst ist vorübergehend nicht erreichbar. |
Rate-Limits
Jede Antwort enthält die Header RateLimit-Limit, RateLimit-Remaining und RateLimit-Reset (Schreibweise nach RFC). So können Sie Ihre Anfragen takten. RateLimit-Reset ist die Anzahl der Sekunden, bis das aktuelle Zeitfenster zurückgesetzt wird.
| Kategorie | Limit |
|---|---|
| Alle Endpunkte (Standard) | 300 Anfragen / 15 Minuten |
| Anlegen von Batches (POST /v1/verify-batch, POST /v1/catchall) | 30 Anfragen / 15 Minuten |
| Abfrage von Jobs (GET /v1/jobs/:id, GET /v1/jobs/:id/results) | 600 Anfragen / 15 Minuten |
| Maximale E-Mails pro Massenjob | 50.000 |
| Speicherdauer der Job-Ergebnisse | 48 Stunden |
Die Limits sind in drei Stufen aufgeteilt, weil Statusabfragen häufiger vorkommen als das Anlegen von Batches. Während ein Job läuft, fragen Sie vielleicht alle paar Sekunden ab. Das Limit von 600 / 15 min (etwa 40 pro Minute) lässt Ihnen Spielraum, ohne das Backend zu überlasten.
Sie brauchen höhere Limits?
Für geprüfte Integrationspartner heben wir die Limits regelmäßig an.
Format der Antwort 429
Wenn Sie ein Rate-Limit erreichen, liefert die API HTTP 429 mit diesem Body:
{
"success": false,
"message": "Developer API rate limit exceeded"
}Warten Sie vor einem neuen Versuch so lange, wie der Header RateLimit-Reset angibt (Sekunden bis zum Zurücksetzen des Zeitfensters).
Bereit für die Integration?
Erstellen Sie Ihren API-Schlüssel in wenigen Sekunden. Kostenlose Test-Credits sind inklusive. So können Sie die Integration vollständig aufbauen, bevor Sie etwas bezahlen.
