Private betaMailbeam is in private beta — the public API isn't live yet.Join the waitlist

Mailbeam
API · Batch

Bulk Email Verification API

Submit up to 500,000 addresses in a single API call. Get back per-address scores, status classifications and delivery flags — without a connection timeout.

What Mailbeam checks

Every verification runs 7 checks in parallel and returns a structured result in under 100ms.

500K addresses per batch job

A single POST to /v1/verify/batch accepts up to 500,000 email addresses. Jobs are queued and processed asynchronously — no HTTP timeout, no partial results.

Signed webhook on completion

Register an endpoint once in the dashboard. When a job finishes, Mailbeam POSTs a batch.completed event carrying the totals and a download URL, signed with HMAC-SHA256 so you can verify it came from us.

Per-address scoring

Every address in the batch receives the same treatment as the single verify endpoint: syntax, MX, SMTP, disposable, role, catch-all detection and the quality score.

Deliverable / Risky / Undeliverable segmentation

Results include a status field for each address. Filter the JSON output by status to create send-ready, review, and suppression segments.

Progress polling

Poll /v1/jobs/{jobId} at any time for the number of addresses processed so far. Or just wait for the webhook — whichever fits your workflow.

One connection per destination domain

Addresses are grouped by domain and each domain is probed one at a time, while different domains run in parallel. It is slower than hammering a mail server, and it is what keeps our IPs — and therefore your results — off blocklists.

How it works

1

POST the email array

Send a JSON body with an `emails` array — up to 500,000 strings — to /v1/verify/batch. The response returns a `job_id` immediately, with a 202.

2

Async processing begins

Mailbeam processes each address independently: syntax check, DNS/MX lookup, SMTP probe, disposable database check, role detection, and catch-all scoring.

3

Webhook fires (or poll)

When every address has been processed, your endpoint receives a signed `batch.completed` event. Alternatively, poll /v1/jobs/{jobId} for progress.

4

Retrieve and segment results

Download /v1/jobs/{jobId}/results as CSV, or add ?format=json for rows carrying `index`, `email`, `status`, `score` and `reason`. Filter by status to build your segments. Results are kept for 72 hours, then deleted.

Integrate in minutes

Batch APITypeScript
const auth = { Authorization: `Bearer ${process.env.MAILBEAM_KEY}` };

// Submit a batch job — returns 202 immediately
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" /* up to 500,000 */],
  }),
}).then((r) => r.json());

console.log(`Job ${job.job_id} queued — ${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());

// Then download the cleaned list (CSV by default)
const csv = await fetch(status.download_url, { headers: auth }).then((r) =>
  r.text()
);

When to use it

Pre-campaign list cleaning

Run every email list through the batch API before sending a campaign. Suppress Undeliverable addresses to keep bounce rates below the 2% ISP threshold.

CRM import validation

Verify contacts before importing them from trade show exports, spreadsheets, or third-party lead sources. Clean data enters your CRM; invalid data never does.

Quarterly database re-verification

B2B email addresses decay at ~25% annually. Schedule a quarterly batch job against your full user or contact database to identify addresses that have lapsed.

Re-engagement campaign prep

Inactive segments have the highest decay rate. Verify before any win-back send to suppress invalid addresses and avoid the bounce-triggered deliverability damage.

Frequently asked questions

Ready to integrate?

Free tier includes 1,000 verifications/month. No credit card required.