Email Deliverability Check
Check an email address for deliverability: syntax, canonical form, MX, SPF, DMARC, disposable domain. One verdict with reasons and sources. DNS-over-HTTPS only, no mailbox probing. Not charged if the DNS lookup fails.
Price: $0.0032 per call, USDC on Base (x402). Also available as the MCP tool email_check at https://grokzilla.shop/mcp.
Public DNS only, over DNS-over-HTTPS (Cloudflare, Google as fallback): MX (null MX per RFC 7505, implicit MX via A), SPF, DMARC, plus a disposable-domain flag from the CC0 disposable-email-domains list. No SMTP connection and no mailbox probing, so mailbox_checked is always false: a deliverable domain can still reject one mailbox.
Verdicts: deliverable (MX ok), risky (implicit MX, unresolvable MX host, or disposable domain), undeliverable (NXDOMAIN, null MX, or nowhere to deliver).
Call
POST /api/skills/email-check
{"email": "[email protected]"}
email(required): stringrequest_id(optional): Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once.
Not charged
Every non-200 has charged: false and is never settled.
422 invalid_params/400 invalid_params: body fails the schema (checked before the 402).400before payment: not an address, IP-literal or private/reserved domains (.local, .internal, .test …).503 dns_unavailable: no DoH resolver answered.
Response (paid 200)
Same envelope on every data service: ok, service, version, summary, data, confidence, sources, generated_at, data_as_of, charged, warnings, next.
{
"ok": true,
"skill": "email_check",
"service": "email_check",
"version": "1.0.0",
"summary": "deliverable: MX ok (gmail-smtp-in.l.google.com), SPF ok, DMARC p=none",
"data": {
"email": "[email protected]",
"local": "jane.doe+news",
"domain": "gmail.com",
"verdict": "deliverable",
"reasons": [
"MX ok (gmail-smtp-in.l.google.com)",
"SPF ok",
"DMARC p=none"
],
"syntax_valid": true,
"canonical": "[email protected]",
"canonical_rule": "gmail: dots and +tag removed",
"plus_tag": "news",
"domain_exists": true,
"mx": [
{
"priority": 5,
"host": "gmail-smtp-in.l.google.com"
},
{
"priority": 10,
"host": "alt1.gmail-smtp-in.l.google.com"
},
{
"priority": 20,
"host": "alt2.gmail-smtp-in.l.google.com"
},
{
"priority": 30,
"host": "alt3.gmail-smtp-in.l.google.com"
},
{
"priority": 40,
"host": "alt4.gmail-smtp-in.l.google.com"
}
],
"null_mx": false,
"implicit_mx": false,
"mx_host_resolves": true,
"spf": {
"present": true,
"record": "v=spf1 redirect=_spf.google.com",
"count": 1
},
"dmarc": {
"present": true,
"record": "v=DMARC1; p=none; sp=quarantine; rua=mailto:[email protected]",
"p": "none",
"sp": "quarantine",
"pct": null,
"rua": true
},
"disposable": false,
"role_account": false,
"free_provider": true,
"mailbox_checked": false
},
"confidence": 0.85,
"sources": [
{
"name": "Cloudflare DoH",
"url": "https://cloudflare-dns.com/dns-query?name=gmail.com",
"fetched_at": "2026-10-17T11:12:49Z"
},
{
"name": "disposable-email-domains",
"url": "https://github.com/disposable-email-domains/disposable-email-domains (CC0-1.0)",
"fetched_at": "2026-10-17T11:12:49Z",
"list_date": "2026-10-16"
}
],
"generated_at": "2026-10-17T11:12:49Z",
"data_as_of": "2026-10-17T11:12:49Z",
"charged": true,
"warnings": [
"mailbox existence is not checked (no SMTP probing); a deliverable domain can still reject this mailbox"
],
"next": [
"phone_normalize",
"ip_intel"
]
}