Email Deliverability Scoring API
A pass/fail verdict throws away nuance. Get a 0-100 score that blends every check, so you set the risk threshold that fits your funnel.
What Mailbeam checks
Every verification runs 7 checks in parallel and returns a structured result in under 100ms.
One number, every signal
Syntax, MX, SMTP, disposable, role, free-provider, and catch-all results roll up into a single 0-100 score you can act on directly.
Threshold in your code, not ours
Block below 40, review 40-70, accept above 70 — or pick your own cutoffs. The score gives you a dial instead of a switch.
Component checks stay visible
The individual check results ship alongside the score, so you can explain or override any decision.
Stable and deterministic
The same address returns the same score, making the number safe to store, compare, and trend over time.
Catch-all aware
Catch-all domains, where SMTP can't confirm a mailbox, are scored as measured risk rather than a false 'deliverable'.
Built for automation
A numeric score is trivial to use in lead-routing rules, warehouse models, and reactivation cutoffs.
How it works
POST the address
Send the email to /v1/verify; all component checks run in parallel.
Signals are weighted
Each check contributes to the score by its predictive weight — a failed MX weighs far more than a role flag.
Score is returned with the breakdown
The JSON includes score (0-100), status, and every individual check so nothing is hidden behind the number.
You apply thresholds
Branch in code on the score to accept, review, or reject — and log it for later analysis.
Integrate in minutes
const res = await fetch("https://api.mailbeam.dev/v1/verify", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.MAILBEAM_KEY}` },
body: JSON.stringify({ email }),
});
const { score } = await res.json();
if (score >= 70) return "accept";
if (score >= 40) return "soft-confirm"; // send a double opt-in
return "reject";When to use it
Nuanced signup gating
Accept high scores automatically, send borderline scores to a soft-confirm step instead of a hard block.
Lead scoring pipelines
Feed the deliverability score into your lead model so unreachable contacts don't inflate MQL counts.
List prioritization
Sort a large list by score and send to the healthiest segment first to protect sender reputation.
Reactivation cutoffs
Set a minimum score before re-emailing a dormant contact to avoid waking spam traps.
Frequently asked questions
How is the score calculated?
Each verification check contributes to the 0-100 score according to how strongly it predicts deliverability. A failed MX or invalid syntax drives the score down sharply; softer signals like a role flag nudge it. The component results are always returned so the number is explainable.
What threshold should I use?
It depends on your tolerance. A common starting point is: accept above 70, review 40-70, reject below 40. Tune it against your own bounce data — a stricter cutoff trades a few false rejects for lower bounce rates.
Is the score stable for the same address?
Yes, it's deterministic for a given verification, so you can store it, compare it across runs, and trend it. Note that real-world deliverability can change over time, so periodic re-verification is still worthwhile.
How are catch-all domains scored?
On a catch-all domain the mail server accepts everything, so SMTP can't confirm the specific mailbox. Those addresses are scored as measured risk rather than reported as confidently deliverable.
Do I still get the individual checks?
Yes. The score never replaces the detail — syntax, MX, SMTP, disposable, role, free-provider, and catch-all results all ship in the same response.
Ready to integrate?
Free tier includes 1,000 verifications/month. No credit card required.