email_verification / v1
Email verification
that doesn't suck.
Syntax, DNS, SMTP, disposable and catch-all detection. One request, one JSON response. No SDK, no account dance. Start with 100 free credits. No card required.
~ verify / john@example.com
$ curl https://api.checkmail.dev/v1/verify \
-G --data-urlencode "email=john@example.com" \
-H "Authorization: Bearer $CM_KEY"
{
"email": "john@example.com",
"status": "valid",
"checks": {
"syntax": true,
"mx_found": true,
"smtp_valid": true,
"catch_all": false,
"disposable": false,
"role_based": false,
"free_provider": false
},
"suggestion": null,
"mx_host": "aspmx.l.google.com",
"cached": false,
"ms": 1243
}
§01 the.hard.part
We actually open
a TCP connection
to the mail server.
It's the only check that tells you whether a mailbox actually exists. Everything else is pattern matching and DNS lookups that any developer can build in an afternoon.
smtp / aspmx.l.google.com:25
$ opening tcp → aspmx.l.google.com:25 …
S: 220 mx.google.com ESMTP ready
C: EHLO checkmail.dev
S: 250-mx.google.com at your service
S: 250 ENHANCEDSTATUSCODES
C: MAIL FROM:<verify@checkmail.dev>
S: 250 2.1.0 OK
C: RCPT TO:<john@example.com>
S: 250 2.1.5 OK ← mailbox exists
C: QUIT
S: 221 2.0.0 closing connection
verdict: valid
- Real mailbox check. Nothing else tells you whether a human can actually receive mail at this address.
- Catches typos no validator finds.
joh@gmail.comparses fine and resolves fine. It fails at RCPT TO. We catch it. - A fraction of the price. Services that do real SMTP verification typically charge $0.008 or more per check. CheckMail is $0.0008 at scale. Same check, cleaner JSON, no SDK.
Plus the easy ones, for completeness
- Syntax RFC 5322
- DNS + MX records
- Disposable domains 10,000+
- Catch-all detection
- Typo suggestions gmial → gmail
- Role-based detection info@, admin@
- Free provider label gmail, yahoo, …
- SHA-256 cached results 24h
- Batch API up to 500/request
§02 pricing
Pay once. Use whenever.
New accounts get 100 free credits. Credits never expire. No subscriptions. Teams can enable auto-topup to refill before they hit zero.
| Credits | Price | Per check | |
|---|---|---|---|
| 1,000 | $2 | $0.00200 | |
| 5,000 | $9 | $0.00180 | |
| 10,000 | $14 | $0.00140 | |
| 50,000 | $50 | $0.00100 | |
| 100,000 | $80 | $0.00080 |
VAT calculated at checkout based on your billing address. See how we compare to other email verification services →
§03 what.devs.say
Two lines of code,
half the bounce rate.
"
We were able to reduce our bounce rate from 4–5% (too high) to 2–3% (perfect) with 2 lines of code!
§04 quickstart
Three lines in any language.
No SDK to install. It's just HTTPS and JSON.
curl
curl https://api.checkmail.dev/v1/verify \
-G --data-urlencode "email=john@example.com" \
-H "Authorization: Bearer $CM_KEY"
node.js
const r = await fetch(
"https://api.checkmail.dev/v1/verify?email=john@example.com",
{ headers: { Authorization: `Bearer ${process.env.CM_KEY}` } }
);
const data = await r.json();
console.log(data.status);
python
import os, requests
r = requests.get(
"https://api.checkmail.dev/v1/verify",
params={"email": "john@example.com"},
headers={"Authorization": f"Bearer {os.environ['CM_KEY']}"},
)
print(r.json()["status"])