Bulk Email Verifier
Upload a CSV, get the cleaned list back. Up to 500,000 addresses per job, processed asynchronously, with a webhook when it finishes.
What Mailbeam checks
Every verification runs 7 checks in parallel and returns a structured result in under 100ms.
Up to 500k addresses per job
Submit large lists via the batch API or the dashboard. Processing happens asynchronously — no timeouts, no dropped connections.
Signed webhook on completion
A batch.completed event arrives at your endpoint with the totals and a download URL, signed with HMAC-SHA256 so you can verify it came from us.
Deliverable / Risky / Undeliverable segmentation
Every address is classified and scored. Export each segment to your sending platform.
Disposable and role filtering
Surface addresses that will hurt your sender reputation before you import the list.
CSV in, CSV out
Upload a CSV, TSV or plain text file in the dashboard — we find the column with the addresses and drop duplicates. Results download as CSV for any sending tool.
Progress tracking
Poll /v1/jobs/{id} for the number of addresses processed so far, or wait for the webhook.
How it works
Submit the batch
POST an array of up to 500,000 addresses to /v1/verify/batch. The response is a 202 with a job_id.
Processing runs asynchronously
Mailbeam runs syntax, MX, SMTP, disposable, and role checks against each address without a synchronous connection timeout.
Receive results via webhook
When the job completes, your endpoint receives a signed batch.completed event. Download the results from /v1/jobs/{id}/results — CSV by default, JSON on request.
Segment and send
Filter results by status (deliverable / risky / undeliverable). Import the clean segment into your sending platform.
Integrate in minutes
const auth = { Authorization: `Bearer ${process.env.MAILBEAM_KEY}` };
// Submit the job — 202, with a job_id
const job = await fetch("https://api.mailbeam.dev/v1/verify/batch", {
method: "POST",
headers: { ...auth, "Content-Type": "application/json" },
body: JSON.stringify({ emails: ["alice@example.com", "bob@company.io"] }),
}).then((r) => r.json());
console.log(`Job ${job.job_id} — processing ${job.total} addresses`);
// Wait for the batch.completed webhook, or poll:
const status = await fetch(
`https://api.mailbeam.dev/v1/jobs/${job.job_id}`,
{ headers: auth }
).then((r) => r.json());
console.log(`${status.valid} deliverable of ${status.processed}`);When to use it
Pre-campaign list cleaning
Clean your list before every email campaign to keep bounce rates below the 2% ISP threshold.
CRM import validation
Verify contacts before importing from trade shows, spreadsheets, or third-party lead providers.
Database re-verification
Re-verify your entire email database quarterly to catch addresses that have lapsed since last verification.
Cold outreach list preparation
Remove invalid, role-based, and disposable addresses from cold outreach lists before your domain reputation suffers.
Frequently asked questions
Ready to integrate?
Free tier includes 1,000 verifications/month. No credit card required.