Mailbeam
API · Batch

Bulk Email Verification API

Submit a list of up to 100,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.

100K addresses per batch job

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

Webhook notification on completion

Include a webhookUrl in your batch request. When the job finishes, Mailbeam fires a POST to your endpoint with the job ID. Fetch full results from /v1/batch/{jobId}.

Per-address scoring

Every address in the batch receives the same 7-check treatment as the single verify endpoint: syntax, MX, SMTP, disposable, role, catch-all, and AI 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/batch/{jobId} at any time to check completion percentage. Or just wait for the webhook — whichever fits your workflow.

Rate-limit aware SDK

The official Node.js, Python, PHP, Ruby, and Go SDKs handle batch job creation, polling, and webhook verification for you.

How it works

1

POST the email array

Send a JSON body with an `emails` array (up to 100,000 strings) and an optional `webhookUrl` to /v1/batch. The response returns a `jobId` immediately.

2

Async processing begins

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

3

Webhook fires (or poll)

When all addresses are processed, your webhook receives a POST with the completed `jobId`. Alternatively, poll /v1/batch/{jobId} for progress and results.

4

Retrieve and segment results

Fetch the full results object. Each entry includes `email`, `status`, `score`, `valid`, `disposable`, `role`, and individual check flags. Filter by status to build your segments.

Integrate in minutes

Node.js SDKTypeScript
import Mailbeam from "@mailbeam/sdk";

const mb = new Mailbeam({ apiKey: process.env.MAILBEAM_KEY! });

// Submit a batch job
const job = await mb.batch.create({
  emails: ["alice@example.com", "bob@company.io", /* up to 100,000 */],
  webhookUrl: "https://yourapp.com/webhooks/mailbeam",
});

console.log(`Job ${job.id} queued — ${job.total} addresses`);

// Retrieve results when webhook fires (or poll)
const results = await mb.batch.get(job.id);

const deliverable = results.filter((r) => r.status === "deliverable");
const suppressed  = results.filter((r) => !r.valid || r.disposable);

console.log(`Send: ${deliverable.length} | Suppress: ${suppressed.length}`);

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.