Email Verification API with mailbox-level SMTP checks
Send a list of addresses and get back a verdict for each one: deliverable, undeliverable, risky, disposable, invalid or unknown, with the reason. The check talks to the mail server the way a sending server would, then stops before any message is sent.
POST/v1/emails/verify
{
"data": [
{
"email": "hello@locomint.io",
"status": "deliverable",
"reason": "mailbox_exists",
"syntax_valid": true,
"mx_found": true,
"disposable": false,
"role_account": true,
"catch_all": false,
"smtp_checked": true
},
{
"email": "nobody@mailinator.com",
"status": "disposable",
"reason": "disposable_domain"
}
],
"meta": {
"credits_used": 2,
"source": "verifier"
}
}
What you get
Every field in the response.
| Field | Meaning |
|---|---|
status | deliverable, undeliverable, risky (catch-all domain), disposable, invalid, unknown, or valid when the server could not be asked |
reason | mailbox_exists, mailbox_not_found, no_mail_server, domain_accepts_mail, bad_syntax and others |
syntax_valid, mx_found | RFC 5322 shape and whether the domain has a mail server |
disposable, free_provider, role_account | Flags for temporary-mail domains, webmail providers and role mailboxes |
catch_all, smtp_checked, smtp_code | Whether the domain accepts anything, whether the mailbox was probed, and the server's answer |
How it works
What happens between your request and the response.
Cheap checks first
Syntax, domain, MX records, disposable and free-provider lists. Most bad addresses fail here without touching a mail server.
One conversation per server
EHLO, MAIL FROM, RCPT TO, QUIT. At most two connections per mail server, catch-all detected once per domain, and no DATA command ever.
Honest unknowns
When a server greylists or refuses to answer, the row is unknown with the SMTP code, not a guess.
Deduplicated
Duplicate addresses in one call are checked and charged once.
Pricing
One credit system for every endpoint.
One credit per address, up to 100 per call. A call that would exceed your monthly quota is refused before any work and costs nothing.
Questions
Things people ask about the Email Verification API.
Does verification send an email to the address?
No. The check ends after the server answers RCPT TO, before any message data is sent. The mailbox owner sees nothing.
What does risky mean?
The domain accepts mail for any address (catch-all), so the server cannot confirm this particular mailbox exists. Send to risky addresses in small batches and watch bounces.
How long does a call take?
Cheap checks are instant. Mailbox probes depend on the mail servers involved; a list of 100 addresses across many domains usually finishes in under a minute, and the call stops at 90 seconds with a 504 and nothing charged.