Parse and normalise
We reject hostile syntax before a credit is spent, then canonicalise the address the mail server will actually see.
Real-time email verification
BounceIntel checks syntax, DNS, MX records and the mailbox itself, then explains the verdict with a score and reason codes you can act on.
Every verdict arrives with the evidence behind it.
Trusted by teams that live in the inbox





01Method
Every verification runs the same pipeline: syntax, DNS, MX, then an SMTP conversation with the receiving server. The verdict comes with the evidence.
We reject hostile syntax before a credit is spent, then canonicalise the address the mail server will actually see.
MX lookup, SMTP handshake, recipient probe. Catch-all, full, disabled and role mailboxes are classified, not guessed.
A 0–100 score, a recommended action, and reason codes you can switch on in code. No black-box blob.
02Use cases / by team / by moment
Verification earns its keep in eight different places, from the signup form to a data platform running millions of checks a month. Pick the one that looks like your problem.
A bad address entering your database at signup is a problem you will pay for many times over, not once.
Sales teams and outbound agenciesOutbound is the one channel where a few percent of bad addresses can take the whole sending domain down with it.
Email and lifecycle marketersA list decays whether or not you send to it, and the bill arrives all at once.
RevOps and data teamsNobody notices a CRM going stale, because every individual record still looks fine.
Ecommerce and retail teamsA mistyped address at checkout means the order confirmation and the shipping notice both go nowhere.
SaaS product teamsFree trials and referral bonuses are farmed with disposable addresses, one throwaway inbox at a time.
Agencies and consultanciesYou inherit lists you did not build, and you are the one held responsible for what they do.
Data platforms and list vendorsIf you sell contact data, verification accuracy is your product quality, not an operating cost.
03Signals
These are the checks behind every result on this site and in the API.
RFC-shaped addresses only. Quoted locals and IP literals never reach SMTP.
Whether the domain accepts mail, and which hosts it names.
Does the recipient exist, is it full, disabled, or a catch-all.
Throwaway inboxes and admin@ / info@ style addresses, flagged explicitly.
Gmail, Microsoft 365 and others apply extra local-part constraints we encode as reason codes.
Stable machine values so your integration can branch without parsing English copy.
04Developers / REST / no SDK required
Bearer auth, a single endpoint, and a response whose field names your integration can branch on. No client library to install, no wrapper to learn.
curl -X POST https://api.bounceintel.com/v1/check_email \
-H "Authorization: Bearer $BOUNCEINTEL_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'{
"input": "[email protected]",
"is_reachable": "safe",
"syntax": {
"domain": "stripe.com",
"username": "ada",
"is_valid_syntax": true
},
"mx": {
"accepts_mail": true,
"records": ["aspmx.l.google.com", "alt1.aspmx.l.google.com"]
},
"smtp": {
"can_connect_smtp": true,
"is_deliverable": true,
"is_catch_all": false,
"is_disabled": false,
"has_full_inbox": false
},
"misc": {
"is_disposable": false,
"is_role_account": false,
"is_b2c": false
},
"provider": "google_workspace",
"provider_rules_applied": true,
"score": {
"score": 100,
"category": "valid",
"sub_reason": "deliverable",
"safe_to_send": true,
"confidence": 0.97,
"confidence_level": "high",
"reason_codes": ["deliverable", "tenant_history_positive"]
},
"bounce_risk": {
"score": 3,
"category": "low",
"confidence": 0.94,
"action": "send",
"model_version": "br-2026.06",
"risk_factors": [
{
"signal": "smtp_is_deliverable",
"direction": "decreases_risk",
"contribution": -0.41,
"description": "Mailbox accepted the recipient at RCPT TO."
}
]
}
}05Product
The same verification pipeline powers the live checker, bulk jobs and the REST API.
06Audit trail
When a stakeholder asks why an address was rejected, you can point at the reason codes, not a vendor's gut feel.
The mailbox accepted the recipient, and nothing in the provider or history signals argued against it.
It resolves, but something about the address or its domain will cost you once you send at volume.
The address was refused outright, or there is nowhere for mail to be delivered.
The provider would not give a straight answer. We say so, rather than dressing a guess up as a score.
41 reason codes across 4 verdicts. Every check returns the ones that actually applied, so a rejection is always traceable to a rule rather than to a number.
Create an account and run the same pipeline your production list will use.