Tangkap email pendaftaran yang sekali pakai, salah ketik, dan tanpa server email
Beri formulir pendaftaran Anda pemeriksaan awal untuk setiap alamat: sintaks, domain sekali pakai/sementara yang dikenal, apakah domain memiliki server email sama sekali, kemungkinan salah ketik, dan alamat peran — dikembalikan sebagai verdict accept, review, atau reject beserta alasannya. Panggil POST /v1/email/validate dari JavaScript formulir Anda sendiri, atau periksa daftar secara massal dari backend Anda atau dasbor.
Request dan autentikasi
Kirim isi JSON { "email": "user@example.com" } ke POST /v1/email/validate dengan publishable key yang dikunci origin di header X-Api-Key — jenis key dan model allowed-origins yang sama dengan GET /v1/geo, sehingga aman dipanggil langsung dari formulir pendaftaran saat pengunjung mengetik atau mengirim. Di sisi server, secret key Anda membuka akses ke POST /v1/email/batch (hingga 100 alamat per request), list job asinkron hingga 100.000 alamat (lewat API atau halaman Email lists di dasbor, CSV masuk dan CSV keluar), serta POST /v1/signup/check, yang menggabungkan pemeriksaan email dengan indikator jaringan IP pendaftar menjadi satu skor.
Baca verdict-nya, lalu alasannya
verdict adalah hasil yang paling berat: reject untuk sintaks tidak valid, domain yang tidak ada, domain tanpa server email, atau domain sekali pakai; review untuk dugaan salah ketik, alamat peran seperti info@, domain yang hanya memiliki server email implisit, atau pencarian DNS yang tidak selesai; selain itu accept. reasons mencantumkan setiap kondisi yang terpenuhi, sehingga formulir Anda dapat menampilkan pesan yang spesifik — dan jika didYouMean terisi, tawarkan koreksinya alih-alih pesan error.
Kapan memanggilnya
Panggil saat field kehilangan fokus atau saat dikirim, bukan pada setiap ketukan tombol — memeriksa alamat yang belum lengkap di setiap karakter menambah request tanpa memberi sinyal yang berguna dan dapat membuat pesan error berkedip saat pengunjung masih mengetik. Setiap panggilan dihitung sebagai satu request.
Jika request gagal
Gagal secara terbuka: biarkan pendaftaran berlanjut jika request jaringan error atau timeout, alih-alih memblokir setiap pengunjung karena gangguan di sisi klien. Di sisi server, pencarian DNS yang gagal dilaporkan sebagai alasan dns_unavailable (verdict review), tidak pernah sebagai error atau reject. Pertahankan apa pun yang sudah diketik pengunjung agar pemeriksaan yang gagal tidak membuat input mereka hilang.
Cara domain sekali pakai dideteksi
Domain sekali pakai/sementara yang dikenal digabungkan dari tiga daftar open source yang dikelola komunitas (lihat sumber data), diperbarui setiap beberapa jam, dengan allowlist agar entri upstream yang keliru tidak pernah menandai penyedia besar. Subdomain dari domain yang terdaftar juga cocok. Domain sekali pakai baru yang belum ada di daftar mana pun sering tertangkap melalui server email-nya: layanan sekali pakai mengarahkan banyak domain ke segelintir host email yang sama, dan domain yang server email-nya diketahui melayani domain terdaftar ditandai dengan disposableSource: mx_host. Penyedia yang sangat baru di server email baru mungkin masih belum ditandai.
Penggunaan dan kuota
Setiap alamat yang diperiksa dihitung sebagai satu request terhadap batas bulanan bersama paket Anda — pemeriksaan tunggal, setiap alamat dalam batch, setiap alamat unik dalam list job — bersama lalu lintas Anda yang lain, dengan rate limit per menit yang sama. Tidak ada paket atau harga email terpisah. Rate limit per menit menghitung panggilan HTTP, bukan item: satu batch berisi hingga 100 IP atau alamat email dihitung sebagai satu request, sementara setiap item tetap dihitung terpisah terhadap batas request bulanan.
Apa yang tidak diverifikasi oleh ini
Setiap pemeriksaan dilakukan di tingkat domain atau alamat. Watch-IP tidak pernah menghubungi server email penerima, sehingga hasil tidak memastikan bahwa mailbox ada, bahwa email ke sana akan sampai, atau bahwa mailbox itu milik orang yang mendaftar. Verdict accept berarti “tidak ditemukan masalah”, bukan alamat yang terkonfirmasi berfungsi — gunakan email konfirmasi untuk itu.
Field respons
- syntaxValid
- Apakah alamat valid secara sintaks.
- isDisposable
- Apakah domain cocok dengan penyedia sekali pakai/sementara yang dikenal, secara langsung, melalui domain induk, atau melalui server email-nya. Selalu false jika syntaxValid bernilai false.
- disposableSource
- list, parent_domain, atau mx_host — alasan isDisposable bernilai true; selain itu null.
- mx
- Status server email domain (found, implicit, none, null_mx, no_domain, atau unknown) dan host MX utamanya.
- didYouMean
- Kemungkinan koreksi salah ketik seperti gmial.com → gmail.com, atau null.
- isRoleAccount / isFreeProvider
- Penanda alamat peran (admin@, info@, noreply@…) dan penyedia mailbox konsumen. Penyedia gratis hanya bersifat informasi.
- normalizedEmail / canonicalEmail
- Alamat dalam huruf kecil, dan versi yang sama tanpa +tag (serta titik Gmail) untuk mengenali akun duplikat.
- verdict / reasons
- accept, review, atau reject, ditambah setiap kode alasan yang terpenuhi — lihat referensi untuk daftar lengkapnya.
Bertindak berdasarkan verdict
JavaScript form pendaftaran
async function checkEmail(email) {
const response = await fetch('https://api.watch-ip.com/v1/email/validate', {
method: 'POST',
headers: { 'X-Api-Key': 'YOUR_PUBLISHABLE_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({ email }),
});
if (!response.ok) return { state: 'unknown' }; // gagal terbuka — jangan blokir pendaftaran karena error jaringan
const result = await response.json();
if (result.didYouMean) return { state: 'suggest', suggestion: result.didYouMean };
if (result.verdict === 'reject') return { state: 'reject', reasons: result.reasons };
return { state: 'ok' }; // accept atau review: izinkan pendaftaran dan tandai di backend Anda
}Tampilkan pesan berbeda untuk setiap alasan — invalid_syntax, disposable_domain, dan no_mail_server memerlukan tindakan perbaikan yang berbeda dari pengunjung — dan tawarkan didYouMean sebagai perbaikan sekali klik.
Pertanyaan yang sering diajukan
Apakah ini memverifikasi mailbox-nya benar-benar ada?
Tidak. Yang diperiksa adalah sintaks, daftar dan record DNS server email milik domain, serta bentuk alamat. Pemeriksaan ini tidak pernah menghubungi server email atau memastikan bahwa mailbox individual benar-benar ada — reject karena no_mail_server berlaku untuk seluruh domain.
Apakah accept membuktikan bahwa email-nya berfungsi?
Tidak. accept berarti tidak ada pemeriksaan yang menemukan masalah, bukan berarti alamat dijamin menerima email atau milik orang yang mendaftar. Gunakan email konfirmasi jika Anda membutuhkannya.
Bisakah pengguna melewati validasi browser?
Ya. Setiap pemeriksaan di sisi browser, termasuk yang ini, dapat dilewati dengan menonaktifkan JavaScript atau memanggil endpoint pendaftaran Anda secara langsung. Tegakkan keputusan penting apa pun di backend Anda — POST /v1/signup/check dibuat untuk itu.
Bisakah saya membersihkan daftar yang sudah ada?
Bisa. Unggah CSV di halaman Email lists di dasbor, atau kirim hingga 100.000 alamat ke POST /v1/email/jobs dengan secret key Anda, lalu unduh CSV hasil berisi verdict dan alasan per baris. Duplikat dikenakan biaya sekali, dan unggahan serta hasil dihapus setelah 7 hari.
Bagaimana request dihitung?
Satu request per alamat yang diperiksa, terhadap batas bulanan bersama paket Anda. Duplikat dalam satu list job dihitung sekali; pemeriksaan pendaftaran dihitung sebagai satu request.
Halaman terkait
- Referensi API pemeriksaan emailField, verdict, dan kode alasan untuk endpoint email: pemeriksaan tunggal, batch, list job, dan pemeriksaan pendaftaran.
- Pencegahan penyalahgunaan pendaftaranGabungkan sinyal email dan IP menjadi keputusan pendaftaran: terima, tinjau, atau tolak.
- Geolokasi pengunjungPanggil GET /v1/geo dari browser dengan publishable key.
- Email sekali pakai vs. verifikasiMengapa pemeriksaan domain sekali pakai bukan verifikasi mailbox atau deliverability.