Sie suchen einen Überblick? Lesen Sie die Seite zur API für E-Mail-Verifizierung oder zur API für E-Mail-Validierung in Anmeldeformularen.

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.

Basis-URL
https://api.giggal.ai/v1
API-Schlüssel erstellen

Erstellen 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 öffnen
Antwortformat

Jede Antwort folgt demselben JSON-Format:

// Success
{ "success": true, "data": { ... }, "meta": { ... } }

// Error
{ "success": false, "error": "Human-readable error message" }
Schnellstart: eine E-Mail mit cURL prüfen
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.

Option 1: Bearer-Token
Authorization: Bearer tp_live_xxxxxxxxxxxxxxxxxxxxxxxxx
Option 2: Header X-API-Key
X-API-Key: tp_live_xxxxxxxxxxxxxxxxxxxxxxxxx

Fehlende, 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.

Idempotenz (Massenprüfung und Catch-all)

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-42

Einzelprüfung

1 Endpunkt in dieser Gruppe.

POST/v1/verify

Eine 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.

Autorisierung
api_key_auth
Request-Body
email
Pflichtfeld
string
Die E-Mail-Adresse, die geprüft werden soll.

Massenprüfung

3 Endpunkte in dieser Gruppe.

POST/v1/verify-batch

Einen 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.

Autorisierung
api_key_auth
Request-Body
emails
Pflichtfeld
string[]
Array der E-Mail-Adressen, die geprüft werden sollen. Maximal 50.000 pro Job. Doppelte und fehlerhafte Adressen entfernt der Server.
name
string
Optionaler, lesbarer Name für den Job. Er wird in Ihrem Dashboard angezeigt.
GET/v1/jobs/:jobId

Status 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.

Autorisierung
api_key_auth
Pfad- und Query-Parameter
jobId
Pflichtfeld
string
Die Job-ID, die POST /v1/verify-batch zurückgegeben hat.
GET/v1/jobs/:jobId/results

Ergebnisse 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).

Autorisierung
api_key_auth
Pfad- und Query-Parameter
jobId
Pflichtfeld
string
Die Job-ID.
page
integer
Seitennummer, Standard ist 1.
limit
integer
Ergebnisse pro Seite, Standard ist 25, maximal 500.

Catch-all-Verifizierung

4 Endpunkte in dieser Gruppe.

POST/v1/catchall

Eine 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).

Autorisierung
api_key_auth
Request-Body
jobId
Pflichtfeld
string
Die ID eines abgeschlossenen Massenjobs. Nur die Catch-all-Adressen aus diesem Job werden im Detail geprüft.
name
string
Optionaler, lesbarer Name für die Aufgabe.
GET/v1/catchall/:taskId

Status 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.

Autorisierung
api_key_auth
Pfad- und Query-Parameter
taskId
Pflichtfeld
string
Die Task-ID, die POST /v1/catchall zurückgegeben hat.
GET/v1/catchall/:taskId/results

Ergebnisse 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).

Autorisierung
api_key_auth
Pfad- und Query-Parameter
taskId
Pflichtfeld
string
Die Task-ID.
page
integer
Seitennummer, Standard ist 1.
limit
integer
Ergebnisse pro Seite, Standard ist 25, maximal 500.
verdict
string
Nach Ergebnis filtern: valid | invalid.
GET/v1/catchall/:taskId/download

Catch-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.

Autorisierung
api_key_auth
Pfad- und Query-Parameter
taskId
Pflichtfeld
string
Die Task-ID.
verdict
string
Nach Ergebnis filtern: valid | invalid.

Konto

1 Endpunkt in dieser Gruppe.

GET/v1/credits

Aktuelles 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.

Autorisierung
api_key_auth

Fehler und Rate-Limits

StatusBedeutung
200 OKAnfrage erfolgreich (synchrone Prüfung oder Abruf von Status oder Ergebnissen).
202 AcceptedAsynchroner Job oder Aufgabe angelegt und in die Warteschlange gestellt.
400 Bad RequestFehlende oder ungültige Parameter (falsches E-Mail-Format, leeres Array emails, fehlende jobId).
401 UnauthorizedFehlender, ungültiger oder widerrufener API-Schlüssel.
402 Payment RequiredNicht genug Credits für die angefragte Aktion.
404 Not FoundDie Job- oder Task-ID existiert in Ihrem Konto nicht.
409 ConflictDer Job hat nicht den nötigen Status (zum Beispiel Abruf von Ergebnissen vor dem Abschluss).
410 GoneDie Ergebnisse des Jobs sind älter als die Speicherdauer von 48 Stunden.
429 Too Many RequestsRate-Limit überschritten. Warten Sie und versuchen Sie es erneut.
500 / 502 / 503Der 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.

KategorieLimit
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 Massenjob50.000
Speicherdauer der Job-Ergebnisse48 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.

Sprechen Sie uns 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.