Email list cleaning API
Email list cleaning API for cleaner campaigns and imports
Clean bad addresses before they damage deliverability or pollute your CRM. Verifly gives teams a straightforward API for validating lists, detecting risky addresses, and returning structured results.
curl -X POST "https://verifly.email/api/v1/verify/batch" -H "Authorization: Bearer vf_your_api_key" -H "Content-Type: application/json" -d '{"emails":["lead@example.com","bad@tempmail.test"]}'Real-time SMTP mailbox checks
Single, batch, and async bulk verification
Disposable, role account, and catch-all detection
Pay-as-you-go credits with no subscription lock-in
Search fit
Built for email list cleaning API searches
Use Verifly when you need a simple API, predictable pricing, and clean JSON results before emails hit your product, CRM, or campaign tool.
List cleaning is more than deleting bounces
"Cleaning" an email list is really three jobs stacked together: removing duplicates, normalizing malformed entries, and stripping addresses that will bounce or harm reputation. A list can be free of hard-invalid addresses and still be dirty — full of the same lead entered twice, disposable-domain signups, and generic role accounts that inflate your count without ever converting.
An email list cleaning API lets you do all three programmatically instead of by hand in a spreadsheet. Verifly runs a live SMTP check on every address and returns not just a deliverable / undeliverable / risky verdict but discrete disposable, role, and catch-all flags. Those flags are what let you build a cleaning policy in code: always drop undeliverable and disposable, drop role for cold outreach, keep catch-all only when the campaign can absorb the uncertainty.
Because it is an API, the same cleaning logic runs every time — on the nightly CRM sync, on the pre-campaign export, and inside an automation node — without a human deciding row by row.
Build a repeatable cleaning policy
- De-duplicate the raw list and lowercase/trim each address so casing and stray whitespace do not create phantom duplicates.
- Register at verifly.email/api/v1/autonomous/register for 100 free credits.
- POST the de-duplicated list to /verify/batch.
- Apply your policy to the flags: remove undeliverable and disposable always; remove role and catch-all depending on whether the list feeds cold outreach or a trusted transactional flow.
- Persist the verdict alongside each contact so you can re-clean incrementally instead of re-verifying the whole list next time.
const emails = [...new Set(raw.map(e => e.trim().toLowerCase()))]
const res = await fetch('https://verifly.email/api/v1/verify/batch', {
method: 'POST',
headers: { 'Authorization': 'Bearer vf_your_api_key', 'Content-Type': 'application/json' },
body: JSON.stringify({ emails }),
})
const { results } = await res.json()
const cleaned = results.filter(r =>
r.result === 'deliverable' && !r.disposable && !r.role
) // keep or drop catch_all per campaign
console.log(`Cleaned list: ${cleaned.length}/${results.length} kept`)FAQ
Frequently asked questions
What does the cleaning API actually remove?
It returns a verdict and flags — you decide what to remove. A typical policy drops undeliverable and disposable addresses always, and role / catch-all addresses depending on the use-case. The API gives you the signals; your code enforces the rule.
Does it de-duplicate my list?
De-duplication happens before you submit — lowercase, trim, and Set the addresses so you do not pay to verify the same mailbox twice. The example does exactly that before the API call.
What is the difference between role and disposable flags?
Disposable marks throwaway/temporary-inbox domains. Role marks shared, non-personal mailboxes like info@ or sales@. Both are returned as separate flags so you can treat them differently.
Can I re-clean a list incrementally?
Yes. Store each verdict with the contact record and only re-verify addresses that are new or stale, rather than re-running the entire list every time.
How big a list can I clean at once?
Use /verify/batch for smaller lists and the async bulk pipeline for jobs up to 1,000,000 addresses.
Is there a subscription for the cleaning API?
No. It is pay-as-you-go from $2 per 1,000 down to $0.60 per 1,000, and credits never expire, so periodic hygiene runs do not need a monthly plan.