Catch-All Email Verification API
Corporate domains often accept all email. Mailbeam detects that behaviour explicitly and tells you the verdict is unverifiable, with a capped 0–100 score, instead of reporting a confident pass it cannot back.
What Mailbeam checks
Every verification runs 7 checks in parallel and returns a structured result in under 100ms.
Catch-all domain detection
In the same connection as the real address, Mailbeam probes a random mailbox on the domain. If that is accepted too, the server accepts everything — so the acceptance of the real address proves nothing, and we say so.
Quality score 0–100
The score is additive from a fixed set of signals — syntax, mail route, probe result, disposable, role, catch-all — with published weights and caps. A catch-all address is capped at 70, because no probe can confirm it. No black box, and every point is traceable.
Explainable reason field
The `reason` field returns `catch_all_unverifiable` for these addresses, and `status` comes back as `risky` rather than `deliverable`. Your application can treat 'we could not confirm this' differently from 'this mailbox does not exist'.
Configurable thresholds
The score is yours to interpret. Set threshold ≥ 70 for strict B2B forms, ≥ 40 for broad list acceptance. The API returns the data; your logic applies the policy.
Enterprise domain accuracy
Large enterprise domains are frequently catch-all. Because Mailbeam reports them as risky-but-unverifiable rather than undeliverable, you can accept them on a threshold instead of turning away legitimate enterprise leads.
Combines with SMTP and MX checks
Catch-all detection runs alongside the full verification suite. You get the MX check, SMTP result, disposable flag, score and reason in a single API response.
How it works
SMTP probe sent to mail server
Mailbeam probes the mail server with a RCPT TO command. If the server accepts all addresses regardless of mailbox existence, the domain is flagged as catch-all.
Signals are combined into a score
Syntax, mail route, probe outcome, disposable and role signals are combined with published weights. Catch-all applies a cap rather than a penalty, because the issue is missing evidence, not evidence of a problem.
Confidence score generated
A 0–100 score comes back with the verdict. A catch-all address cannot score above 70 however clean everything else looks, which is the honest ceiling for an address no probe can confirm.
Score and reason returned
The `score`, `catch_all`, and `reason` fields are included in the standard verify response. Use them to apply your own threshold logic in your application.
Integrate in minutes
// No SDK yet — the 12-line wrapper from /docs/quickstart.
import { verifyEmail } from "@/lib/mailbeam";
type Decision = "accept" | "review" | "reject";
function evaluate(result: Awaited<ReturnType<typeof verifyEmail>>): Decision {
if (!result.valid || result.disposable) return "reject";
if (result.catch_all) {
// Apply tiered threshold for catch-all addresses
if (result.score >= 70) return "accept";
if (result.score >= 40) return "review";
return "reject";
}
// Standard address: use binary valid check + score floor
return result.score >= 30 ? "accept" : "review";
}
export async function handleLeadSubmission(email: string) {
const result = await verifyEmail(email);
const decision = evaluate(result);
if (decision === "reject") {
throw new Error("Email address could not be verified.");
}
await db.leads.create({
email,
score: result.score,
catchAll: result.catch_all,
queue: decision === "review" ? "manual_review" : "active",
});
}When to use it
B2B demo request and lead capture forms
Corporate email addresses are disproportionately on catch-all domains. Blanket-rejecting them on B2B forms turns away real enterprise leads. Use the score and the catch_all_unverifiable reason to set your own threshold.
Sales CRM import and enrichment
When importing B2B prospect lists, many addresses come from catch-all corporate domains. Score-based acceptance rather than binary rejection dramatically improves usable lead rates.
Cold outreach list preparation
For outbound sales sequences, use a higher score threshold (≥ 70) to include only high-confidence catch-all addresses — protecting your sending domain while maximising reachable prospects.
Enterprise SaaS product signups
Enterprise users often have corporate email on catch-all domains. A blanket catch-all rejection on your signup form turns away enterprise customers. Score-based acceptance fixes this.
Frequently asked questions
Ready to integrate?
Free tier includes 1,000 verifications/month. No credit card required.