Verify before saving
Catch bad addresses in signup.


Channel · Email verification
MX, disposable, validate on send. Catch typos and bad domains before they hit your database or trigger a notification.
Same API key as send().
Live check
Same engine as POST /api/v1/email/verify.
Same engine as POST /api/v1/email/verify
Catch bad addresses in signup.

Skip invalid and disposable mail.

Keep your Gmail or SMTP clean.

Score, status, and did-you-mean.

Path
Stop bad addresses at signup before they land in your database or trigger OTP.
Open dashboard
verifyEmail() then send({ validate: true }). Same key as your transactional sends.
SDK examples
Product
Real checks before OTP, alerts, and any transactional notification.
API usage dashboard
Logs, quotas, verify-before-send.

Verified email badge
0-100 score with valid, risky, or invalid. Hard bounces auto-suppress so you do not retry forever.

Check validate send
REST or SDK. Same API key as send().

Auto-suppress
Hard bounces stop retry loops.

verifyEmail + send
await zindua.verifyEmail("user@example.com");await zindua.send({ to, template: "welcome", validate: true });SDKs
Same key as your transactional sends. Copy, paste, ship.
npm install @zindua/sdkimport { Zindua } from "@zindua/sdk"; const zindua = new Zindua({ apiKey: process.env.ZINDUA_API_KEY! });const check = await zindua.verifyEmail("user@example.com");if (!check.deliverable) throw new Error("Invalid email"); await zindua.send({ to: check.email, template: "welcome", validate: true, variables: { name: "Ada" },});