Email validator API: dokumentacja API do weryfikacji e-mail
Weryfikuj adres e-mail, uruchamiaj masową weryfikację i szczegółowo sprawdzaj adresy catch-all oraz adresy chronione przez SEG. Wszystkie endpointy używają formatu JSON i uwierzytelniania kluczem API. Płacisz tylko za udane weryfikacje.
Wprowadzenie
API Giggal.ai pozwala zweryfikować adres e-mail, uruchomić masową weryfikację do 50 000 adresów w jednym zadaniu oraz szczegółowo sprawdzić adresy catch-all i adresy chronione przez SEG. To proste API REST w formacie JSON. Każda udana weryfikacja zużywa kredyty z twojego konta.
https://api.giggal.ai/v1Utwórz klucz API w panelu Giggal.ai: otwórz zakładkę Developer API na pasku bocznym i kliknij Create API Key. Każdy klucz jest powiązany z twoim kontem i ma własne statystyki użycia. Możesz go unieważnić w każdej chwili.
Otwórz zakładkę Developer APIKażda odpowiedź ma tę samą strukturę JSON:
// 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"}'Uwierzytelnianie
Wysyłaj klucz API z każdym żądaniem, w jednym z dwóch nagłówków. Oba działają.
Authorization: Bearer tp_live_xxxxxxxxxxxxxxxxxxxxxxxxxX-API-Key: tp_live_xxxxxxxxxxxxxxxxxxxxxxxxxBrak klucza albo klucz nieprawidłowy lub unieważniony zwraca błąd HTTP 401. Nigdy nie umieszczaj kluczy API w kodzie po stronie klienta. Wywołuj API przez swój backend.
Do POST /v1/verify-batch i POST /v1/catchall dołącz nagłówek Idempotency-Key. Ponowna próba z tym samym kluczem zwraca pierwotną odpowiedź. Nie powstaje duplikat zadania, a kredyty nie są pobierane dwa razy.
Idempotency-Key: 2026-07-24-list-batch-42Pojedyncza weryfikacja
1 endpoint w tej grupie.
/v1/verifyWeryfikacja adresu e-mail
Weryfikuje jeden adres e-mail synchronicznie. Kosztuje 1 kredyt. Jeśli domena jest typu catch-all, szczegółowe sprawdzenie odbywa się w tym samym żądaniu, a odpowiedź zawiera pola catch_all_score i catch_all_verdict.
Masowa weryfikacja
Liczba endpointów w tej grupie: 3.
/v1/verify-batchWysłanie zadania wsadowego do masowej weryfikacji
Wyślij do 50 000 adresów w jednym zadaniu. Przetwarzanie jest asynchroniczne: odpytuj GET /v1/jobs/:jobId, aby śledzić postęp. Dołącz nagłówek Idempotency-Key, aby ponowić utworzenie zadania bez podwójnej opłaty.
/v1/jobs/:jobIdStatus zadania wsadowego
Odpytuj ten endpoint, aby śledzić postęp. Zmiana statusu: processing → completed (albo failed). Zalecany odstęp między zapytaniami: od 10 do 15 sekund. Małe listy (poniżej 50 adresów) kończą się zwykle w mniej niż 30 sekund.
/v1/jobs/:jobId/resultsWyniki zadania wsadowego
Gdy status ma wartość "completed", pobierz wyniki dla każdego adresu. Wyniki są stronicowane: użyj parametrów zapytania page i limit. Wyniki są przechowywane przez 48 godzin (zobacz pole resultsExpiresAt w zadaniu).
Weryfikacja catch-all
Liczba endpointów w tej grupie: 4.
/v1/catchallUruchomienie zadania weryfikacji catch-all
Uruchamia szczegółową weryfikację catch-all dla zakończonego zadania wsadowego. Ponownie sprawdzane są tylko adresy oznaczone jako catch-all w pierwotnym zadaniu. Opłata wynosi 1 kredyt za adres (zobacz pole creditsRequired w odpowiedzi).
/v1/catchall/:taskIdStatus zadania catch-all
Odpytuj ten endpoint, aby śledzić postęp i aktualne liczniki verdictCounts. Zadanie catch-all trwa zwykle od kilku sekund do kilku minut, zależnie od wolumenu.
/v1/catchall/:taskId/resultsWyniki zadania catch-all
Pobiera stronicowane wyniki dla każdego adresu ze szczegółami oceny (sygnały sortowania domeny i wiek domeny).
/v1/catchall/:taskId/downloadPobranie wyników catch-all w pliku CSV
Pobiera wszystkie wyniki zakończonego zadania catch-all w pliku CSV z kolumnami Email, Score i Verdict. Content-Type to text/csv.
Konto
1 endpoint w tej grupie.
/v1/creditsSaldo kredytów
Zwraca saldo konta: dostępne kredyty, kredyty zarezerwowane (zablokowane dla trwających zadań) i sumy od założenia konta. Kredyty za weryfikacje z wynikiem "unknown" wracają automatycznie i widać je tutaj.
Błędy i limity zapytań
| Status | Znaczenie |
|---|---|
| 200 OK | Żądanie się powiodło (weryfikacja synchroniczna albo odczyt statusu lub wyników). |
| 202 Accepted | Zadanie asynchroniczne zostało utworzone i dodane do kolejki. |
| 400 Bad Request | Brak parametrów lub nieprawidłowe parametry (zły format adresu, pusta lista emails, brak jobId). |
| 401 Unauthorized | Brak klucza API albo klucz nieprawidłowy lub unieważniony. |
| 402 Payment Required | Za mało kredytów na tę operację. |
| 404 Not Found | Identyfikator zadania nie istnieje na twoim koncie. |
| 409 Conflict | Zadanie nie jest w wymaganym stanie (na przykład wyniki pobrano przed jego zakończeniem). |
| 410 Gone | Wyniki zadania przekroczyły okres przechowywania wynoszący 48 godzin. |
| 429 Too Many Requests | Przekroczono limit zapytań. Odczekaj chwilę i spróbuj ponownie. |
| 500 / 502 / 503 | Serwer lub zewnętrzna usługa weryfikacji jest chwilowo niedostępna. |
Limity zapytań
Każda odpowiedź zawiera nagłówki RateLimit-Limit, RateLimit-Remaining i RateLimit-Reset (pisownia według RFC). Pomagają one rozłożyć zapytania w czasie. RateLimit-Reset podaje liczbę sekund do wyzerowania bieżącego okna.
| Kategoria | Limit |
|---|---|
| Wszystkie endpointy (domyślnie) | 300 zapytań / 15 minut |
| Tworzenie zadań (POST /v1/verify-batch, POST /v1/catchall) | 30 zapytań / 15 minut |
| Śledzenie zadań (GET /v1/jobs/:id, GET /v1/jobs/:id/results) | 600 zapytań / 15 minut |
| Maksymalna liczba adresów w zadaniu wsadowym | 50 000 |
| Przechowywanie wyników | 48 godzin |
Są trzy poziomy limitów, bo zadanie sprawdza się częściej, niż się je tworzy. Podczas trwania zadania możesz odpytywać API co kilka sekund. Limit 600 / 15 min (około 40 na minutę) daje więc zapas i nie przeciąża serwera.
Potrzebujesz wyższych limitów?
Regularnie podnosimy limity dla zweryfikowanych partnerów integracyjnych.
Format odpowiedzi 429
Po przekroczeniu limitu API zwraca błąd HTTP 429 z taką treścią:
{
"success": false,
"message": "Developer API rate limit exceeded"
}Przed ponowną próbą odczekaj liczbę sekund podaną w nagłówku RateLimit-Reset (czas do wyzerowania okna).
Chcesz zintegrować API?
Utwórz klucz API w kilka sekund. Na start dostajesz darmowe kredyty testowe, więc sprawdzisz całą integrację przed zakupem.
