Real-Time Email Verification
Catch invalid, disposable, and mistyped emails at the point of entry — not on your next campaign. One inline API call returns a verdict in under 100ms.
What Mailbeam checks
Every verification runs 7 checks in parallel and returns a structured result in under 100ms.
Sub-100ms p99 latency
Fast enough to run synchronously on a signup form without users noticing. No spinner, no blocking the submit button.
Typo suggestions inline
When someone types 'gmal.com', return 'gmail.com' so they fix it before the account is created — recovering conversions you would otherwise lose.
Disposable detection on submit
Reject throwaway inboxes at registration instead of discovering them when your welcome email hard-bounces.
Role-account flagging
Identify info@ and admin@ shared inboxes so you can route or gate them differently from personal addresses.
Structured verdict, not a boolean
Every response carries a deliverable/risky/undeliverable status and a 0-100 score, so you decide the threshold instead of us.
Graceful timeout handling
If an unknown mail server is slow, the API returns an 'unknown' status quickly rather than hanging your form submission.
How it works
User submits the form
Your frontend POSTs the typed address to your backend, or calls Mailbeam directly with a publishable key.
Parallel checks fire
Syntax, MX, SMTP, disposable, role, and free-provider checks run concurrently — not sequentially — to hold the sub-100ms budget.
A verdict returns inline
You receive a status and score before the request completes, so the decision happens inside the same round-trip.
You act on the result
Accept the signup, show a typo suggestion, or soft-block a disposable address — all before the user leaves the page.
Integrate in minutes
// Verify inline on submit — fail open if the API is unreachable.
export async function verifyOnSignup(email: string) {
try {
const res = await fetch("https://api.mailbeam.dev/v1/verify", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MAILBEAM_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ email }),
signal: AbortSignal.timeout(1000),
});
const { status, score, suggestion } = await res.json();
if (suggestion) return { action: "suggest", suggestion };
if (status === "undeliverable" || score < 40) return { action: "block" };
return { action: "allow" };
} catch {
return { action: "allow" }; // fail open, re-verify via batch later
}
}When to use it
Signup and registration
The highest-value moment to verify: a bad email here poisons every downstream email you send that user.
Checkout email fields
A mistyped address means the order confirmation never arrives and a support ticket does.
Waitlist and lead capture
Keep launch lists clean from day one so your first send lands in the inbox, not the spam folder.
In-app email changes
Re-verify when a user updates their address to avoid silently breaking their notifications.
Frequently asked questions
How is this different from bulk verification?
Real-time verification runs on a single address, synchronously, at the moment of entry. Bulk verification processes an entire list asynchronously via the batch API. Use real-time to prevent bad emails from entering, and bulk to clean what is already there.
Will it slow down my signup form?
No. p99 latency is under 100ms, which is imperceptible next to normal form-submit round-trips. For unknown or slow mail servers the API returns an 'unknown' status quickly rather than blocking.
What happens if the API is unreachable?
Design your integration to fail open — if the verification call errors or times out, allow the signup and re-verify later via the batch API. We document this pattern in the quickstart.
Can I verify on the client side?
You can trigger the call from the browser with a publishable key, but the verdict should be enforced on your server so it cannot be bypassed. Most teams call Mailbeam from their backend on form submit.
Does it detect typos automatically?
Yes. When the domain closely matches a common provider (gmal.com → gmail.com), the response includes a suggestion field you can surface to the user for one-tap correction.
Ready to integrate?
Free tier includes 1,000 verifications/month. No credit card required.