Developer
API verifikasi email yang langsung berfungsi
Verifikasi satu alamat secara real-time, atau kirim seluruh daftar sebagai batch. Semua permintaan menggunakan HTTPS dan mengembalikan JSON. Buat kunci API di dasbor Anda pada menu Kunci API.
- REST dan JSON
- Callback batch
- Kredit yang sama dengan dasbor
Autentikasi
Kirim kunci API Anda sebagai bearer token di header Authorization pada setiap permintaan. Simpan kunci di server Anda. Jangan pernah menaruhnya di kode browser atau aplikasi seluler.
Authorization: Bearer YOUR_API_KEY
URL dasar untuk setiap endpoint adalah https://bouncebell.com/api/v1.
Verifikasi satu alamat
GET https://bouncebell.com/api/v1/verify
| Parameter | Wajib | Deskripsi |
|---|---|---|
email | Ya | Alamat yang akan dicek. Lakukan URL-encode. |
timeout | Tidak | Detik untuk menunggu server email, dari 3 hingga 30. Default 10. Jika waktu habis, statusnya unknown dan tidak ada kredit yang terpakai. |
Contoh
curl "https://bouncebell.com/api/v1/verify?email=rini.elizabeth%40acme-foods.example" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"email": "rini.elizabeth@acme-foods.example",
"status": "valid",
"reason": "mailbox_exists",
"domain": "acme-foods.example",
"mx_record": "mx1.acme-foods.example",
"disposable": false,
"role": false,
"free_provider": false,
"catch_all": false,
"did_you_mean": null,
"checked_at": "2026-10-30T09:30:12Z",
"credits_used": 1
}
Field hasil
| Field | Jenis | Deskripsi |
|---|---|---|
email | string | Alamat seperti yang Anda kirim. |
status | string | Hasil akhirnya. Lihat status. |
reason | string | Alasan kami mencapai hasil tersebut, misalnya mailbox_not_found atau no_mail_server. |
domain | string | Bagian domain, dalam huruf kecil. |
mx_record | string or null | Server email dengan prioritas tertinggi. |
disposable | boolean | True jika domain adalah layanan kotak masuk sementara. |
role | boolean | True untuk kotak masuk bersama seperti info@ atau support@. |
free_provider | boolean | True untuk penyedia kotak surat gratis seperti Gmail. |
catch_all | boolean | True jika domain menerima setiap alamat. |
did_you_mean | string or null | Alamat yang dikoreksi jika domain tampak salah ketik. |
checked_at | string | Waktu pengecekan dijalankan, dalam ISO 8601 UTC. |
credits_used | integer | 1, atau 0 jika statusnya unknown. |
Status
| Status | Arti | Tindakan yang disarankan |
|---|---|---|
valid | Kotak surat ada dan menerima email. | Kirim |
invalid | Alamat, domain, atau kotak surat tidak ada. | Hapus |
disposable | Layanan kotak masuk sementara. | Hapus |
catch_all | Domain menerima semua alamat, sehingga kotak surat tidak dapat dikonfirmasi. | Tinjau |
role | Kotak masuk bersama yang ada. | Tinjau |
unknown | Server email tidak memberikan jawaban tepat waktu. Tidak dikenai biaya. | Coba lagi nanti |
Batch
Kirim hingga 100.000 alamat dalam satu permintaan. Batch berjalan di latar belakang; cek statusnya secara berkala atau berikan callback_url dan kami akan memanggilnya saat batch selesai.
Buat batch
POST https://bouncebell.com/api/v1/batches
curl -X POST "https://bouncebell.com/api/v1/batches" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "October import", "emails": ["a@example.com", "b@example.com"],
"callback_url": "https://yourapp.example/hooks/bouncebell"}'
{ "id": "bat_8f2k1q3m9x7w4p", "status": "queued", "total": 2, "done": 0 }
Kredit untuk setiap alamat unik ditahan saat batch dibuat, dan hasil tidak diketahui dikembalikan saat batch selesai. Callback menerima POST dengan {"event": "batch.completed", "batch_id": "...", "status": "done", "counts": {...}}. URL callback harus menggunakan HTTPS.
Cek progres
GET https://bouncebell.com/api/v1/batches/{id}
{ "id": "bat_8f2k1q3m9x7w4p", "status": "running", "total": 2, "done": 1 }
Statusnya queued, running, atau done. Saat statusnya done, respons juga berisi counts per status.
Unduh hasil
GET https://bouncebell.com/api/v1/batches/{id}/results
Mengembalikan JSON secara default. Tambahkan ?format=csv untuk file CSV. Setiap baris memiliki field yang sama dengan cek tunggal.
Kredit
GET https://bouncebell.com/api/v1/credits
{ "credits_remaining": 33420 }
Error dan batas
Error mengembalikan body JSON dengan kode error dan message yang mudah dibaca.
| Kode HTTP | Error | Yang harus dilakukan |
|---|---|---|
| 400 | bad_request | Parameter tidak ada atau salah. Baca pesannya. |
| 401 | invalid_key | Pastikan kunci sudah benar dan belum dicabut. |
| 402 | no_credits | Beli kredit tambahan. |
| 403 | email_not_confirmed | Buka tautan konfirmasi yang kami kirim lewat email saat Anda mendaftar. |
| 404 | not_found | Batch tidak ada atau sudah dihapus setelah 30 hari. |
| 429 | rate_limited | Perlambat. Tunggu selama jumlah detik di header Retry-After. |
| 500 | server_error | Coba lagi setelah jeda singkat. Jika terus berlanjut, hubungi dukungan. |
Cek tunggal dibatasi 20 permintaan per detik per kunci. Hubungi kami jika Anda membutuhkan lebih.