Use Case: Bulk List Cleanup
Cleaning a purchased list, a stale database, or a one-time CRM import — not a per-request check.
Recommended approach
| Setting | Recommendation |
|---|---|
| Endpoint | POST /v1/email/bulk, not a loop of single /v1/email/check calls |
| context | "crm" for a contact database, "marketplace" for buyer/seller lists, or "generic" if unsure |
| mode | "standard" is usually the right balance; "full" for a smaller, high-value list where the extra processing time is worth stronger deliverability confidence |
| Notification | Register a webhook rather than polling if this is a recurring job, not a one-off |
One-off cleanup vs. ongoing plans
If this is a single cleanup job rather than an ongoing need, a one-time bulk pass may be more cost-effective than upgrading to a bulk-enabled recurring plan — see the pricing page. If you're cleaning lists regularly, a bulk-enabled plan avoids re-purchasing a pass each time.
Handling the results
- block-decision rows: safe to remove from the list outright in most cases
- review-decision rows: worth a second look before removing — these aren't confirmed bad, just uncertain
- allow-decision rows: keep as-is
- Rows with a non-null error: the address itself was malformed enough that no real check could run — treat these the same as a hard block
Further reading
- Bulk Email Verification API — the full job/polling/webhook flow with working code
- Real-Time Email Verification API — why bulk, not a loop of single checks, is the right tool here