Dokumentasi API verifikasi email
Cek alamat email, jalankan pemeriksaan massal, dan cek secara mendalam alamat catch-all serta alamat di balik SEG. Semua endpoint memakai JSON dan autentikasi dengan API key. Anda hanya membayar pemeriksaan yang berhasil.
Pengantar
Dengan API Giggal.ai, Anda bisa mengecek alamat email, menjalankan pemeriksaan massal hingga 50.000 alamat email per tugas, dan mengecek secara mendalam alamat catch-all serta alamat di balik SEG. API ini adalah REST API sederhana dengan JSON. Setiap pemeriksaan yang berhasil memakai kredit dari akun Anda.
https://api.giggal.ai/v1Buat API key (kunci API) di dashboard Giggal.ai Anda: buka tab Developer API di sidebar lalu klik Create API Key. Setiap key terhubung ke akun Anda dan mencatat pemakaiannya sendiri. Anda bisa mencabut key kapan saja.
Buka tab Developer APISetiap respons memiliki struktur JSON yang sama:
// 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"}'Autentikasi
Kirim API key Anda di setiap permintaan, dalam salah satu dari dua header berikut. Keduanya berfungsi.
Authorization: Bearer tp_live_xxxxxxxxxxxxxxxxxxxxxxxxxX-API-Key: tp_live_xxxxxxxxxxxxxxxxxxxxxxxxxKey yang tidak ada, tidak valid, atau sudah dicabut menghasilkan error HTTP 401. Jangan pernah menaruh API key di kode sisi klien. Kirim panggilan API lewat backend Anda sendiri.
Pada POST /v1/verify-batch dan POST /v1/catchall, kirim header Idempotency-Key. Percobaan ulang dengan key yang sama mengembalikan respons aslinya. Tidak ada tugas ganda dan kredit tidak dipotong dua kali.
Idempotency-Key: 2026-07-24-list-batch-42Pemeriksaan satuan
1 endpoint dalam grup ini.
/v1/verifyMengecek satu alamat email
Mengecek satu alamat email secara sinkron. Memakai 1 kredit. Jika domainnya catch-all, pemeriksaan mendalam dilakukan dalam permintaan yang sama dan responsnya berisi catch_all_score dan catch_all_verdict.
Pemeriksaan massal
3 endpoint dalam grup ini.
/v1/verify-batchMemulai pemeriksaan massal
Kirim hingga 50.000 alamat email per tugas. Prosesnya asinkron: panggil GET /v1/jobs/:jobId untuk memantau progresnya. Kirim header Idempotency-Key agar pembuatan tugas bisa dicoba ulang tanpa biaya ganda.
/v1/jobs/:jobIdMelihat status tugas massal
Panggil endpoint ini untuk memantau progres. Statusnya berubah dari processing ke completed (atau failed). Interval yang disarankan: setiap 10 sampai 15 detik. Daftar kecil (kurang dari 50 alamat email) biasanya selesai dalam 30 detik.
/v1/jobs/:jobId/resultsMengambil hasil tugas massal
Jika statusnya "completed", ambil hasil untuk setiap alamat email. Hasilnya dibagi per halaman: kirim parameter query page dan limit. Hasil disimpan selama 48 jam (lihat resultsExpiresAt pada tugas).
Pemeriksaan catch-all
4 endpoint dalam grup ini.
/v1/catchallMemulai pemeriksaan catch-all
Menjalankan pemeriksaan catch-all mendalam untuk tugas massal yang sudah selesai. Hanya alamat yang ditandai catch-all dalam tugas asli yang dicek ulang. Memakai 1 kredit per alamat (lihat creditsRequired dalam respons).
/v1/catchall/:taskIdMelihat status tugas catch-all
Panggil endpoint ini untuk memantau progres dan jumlah terbaru di verdictCounts. Tugas catch-all biasanya berlangsung beberapa detik sampai beberapa menit, tergantung jumlah alamat.
/v1/catchall/:taskId/resultsMengambil hasil tugas catch-all
Mengambil hasil untuk setiap alamat email, dibagi per halaman, beserta rincian skornya (sinyal dari domain dan usia domain).
/v1/catchall/:taskId/downloadMengunduh hasil catch-all sebagai CSV
Mengunduh semua hasil dari tugas catch-all yang sudah selesai sebagai file CSV dengan kolom Email, Score, dan Verdict. Content-Type-nya adalah text/csv.
Akun
1 endpoint dalam grup ini.
/v1/creditsMelihat saldo kredit Anda
Menampilkan saldo akun Anda: kredit yang tersedia, kredit yang dicadangkan (ditahan untuk tugas yang sedang berjalan), dan total sejak akun Anda dibuka. Pemeriksaan dengan hasil "unknown" dikembalikan otomatis dan juga tercatat di sini.
Error dan batas
| Status | Arti |
|---|---|
| 200 OK | Permintaan berhasil (pemeriksaan sinkron, atau pengambilan status atau hasil). |
| 202 Accepted | Tugas asinkron sudah dibuat dan masuk antrean. |
| 400 Bad Request | Parameter tidak ada atau tidak valid (format email salah, daftar emails kosong, jobId tidak ada). |
| 401 Unauthorized | API key tidak ada, tidak valid, atau sudah dicabut. |
| 402 Payment Required | Kredit tidak cukup untuk tindakan ini. |
| 404 Not Found | ID tugas ini tidak ada di akun Anda. |
| 409 Conflict | Tugas tidak berada pada status yang diperlukan (misalnya hasil diminta sebelum tugas selesai). |
| 410 Gone | Hasil tugas sudah melewati masa simpan 48 jam. |
| 429 Too Many Requests | Batas permintaan terlampaui. Tunggu sebentar lalu coba lagi. |
| 500 / 502 / 503 | Server atau layanan verifikasi di belakangnya sedang tidak tersedia untuk sementara. |
Batas permintaan
Setiap respons berisi header RateLimit-Limit, RateLimit-Remaining, dan RateLimit-Reset (penulisan sesuai RFC), sehingga Anda bisa mengatur jarak antarpermintaan. RateLimit-Reset menunjukkan jumlah detik sampai jendela waktu saat ini dimulai ulang.
| Kategori | Batas |
|---|---|
| Semua endpoint (default) | 300 permintaan / 15 menit |
| Membuat tugas (POST /v1/verify-batch, POST /v1/catchall) | 30 permintaan / 15 menit |
| Memantau tugas (GET /v1/jobs/:id, GET /v1/jobs/:id/results) | 600 permintaan / 15 menit |
| Jumlah maksimal alamat email per tugas massal | 50.000 |
| Masa simpan hasil | 48 jam |
Ada tiga batas, karena Anda lebih sering memantau tugas daripada membuatnya. Anda bisa memanggil API setiap beberapa detik selama tugas berjalan. Batas 600 / 15 min (sekitar 40 per menit) memberi Anda cukup ruang tanpa membebani server.
Butuh batas yang lebih tinggi?
Kami rutin menaikkan batas untuk mitra integrasi yang sudah terverifikasi.
Struktur respons 429
Jika Anda mencapai batas, API mengembalikan error HTTP 429 dengan body berikut:
{
"success": false,
"message": "Developer API rate limit exceeded"
}Sebelum mencoba lagi, tunggu sejumlah detik yang tertulis di header RateLimit-Reset (waktu sampai jendela dimulai ulang).
Siap menghubungkan API?
Buat API key Anda dalam beberapa detik. Kredit uji coba gratis sudah termasuk, sehingga Anda bisa menguji semuanya dari awal sampai akhir sebelum membayar.
