High-Volume Email Verification
Clean lists in the millions without babysitting rate limits. Submit a batch, get a webhook when it finishes, export deliverable/risky/undeliverable segments.
What Mailbeam checks
Every verification runs 7 checks in parallel and returns a structured result in under 100ms.
Millions per job
Submit large lists to the batch endpoint. Processing is asynchronous, so there are no connection timeouts or dropped requests on huge payloads.
Signed webhook on completion
Instead of polling for hours, receive one batch.completed event with the totals and a download URL, signed with HMAC-SHA256 so you can verify it came from us.
Concurrency that protects deliverability
Different domains are verified in parallel, but a single destination domain is only ever probed one address at a time. It is slower than hammering a mail server, and it is what keeps our IPs — and therefore your results — off blocklists.
Per-address scoring
Every address returns its own status and 0-100 score, so you segment aggressively rather than trusting a single list-level pass rate.
Durable progress
Results are written as the job runs, not held in memory until the end, so a restart resumes rather than starting your list over.
Predictable volume pricing
Cost scales linearly with addresses verified. No surprise overage tiers that punish you for a large quarterly cleanup.
How it works
POST the address array
Send up to 500,000 addresses to /v1/verify/batch. The response is a 202 with a job_id. Chunk larger lists across multiple batches.
Processing runs async
Syntax, MX, SMTP, disposable, and role checks run against every address without holding a synchronous connection open.
Webhook fires
When the job completes, your endpoint receives a signed batch.completed event. No long-poll, no timeout risk.
Fetch and segment
Download /v1/jobs/{jobId}/results as CSV, or add ?format=json. Export deliverable, risky and undeliverable segments to your sending platform. Results are kept for 72 hours, then deleted.
Integrate in minutes
# Submit a batch. Register your webhook endpoint once in the
# dashboard rather than passing it on every request.
curl -X POST https://api.mailbeam.dev/v1/verify/batch \
-H "Authorization: Bearer $MAILBEAM_KEY" \
-H "Content-Type: application/json" \
-d '{"emails": ["a@example.com", "b@example.com"]}'
# 202 { "job_id": "job_9f2c...", "status": "queued", "total": 2 }
# Your endpoint then receives a signed batch.completed event.
# Or poll: GET /v1/jobs/job_9f2c...
# Download: GET /v1/jobs/job_9f2c.../results (CSV; ?format=json for JSON)When to use it
Quarterly database hygiene
Re-verify your entire contact database on a schedule so decayed addresses don't silently erode deliverability.
Pre-migration cleanup
Verify before importing a legacy list into a new ESP so you don't burn a fresh sending domain's reputation.
Acquisition and merge
Clean an acquired list before your first send to it — the fastest way to inherit spam complaints is to skip this.
Re-engagement prep
Filter a dormant segment down to still-valid addresses before a win-back campaign.
Frequently asked questions
Ready to integrate?
Free tier includes 1,000 verifications/month. No credit card required.