Check an email address ($0.001)
email_checkPAID ($0.001 USDC via x402). Is this address worth sending to? Syntax, the domain's DNS (MX, then A/AAAA), disposable-provider and role-mailbox lists, a free-provider flag, a typo suggestion (gmial.com -> gmail.com), a normalized form (Gmail dots and +tags collapsed), and a risk verdict — low / medium / high / undeliverable — with reasons. No SMTP probe: it vouches for the DOMAIN, never the mailbox. An invalid address is a paid verdict (that IS the answer); a DNS failure answers 502 and is not charged. Without payment this returns the 402 challenge; the fiatdock-mcp npm package pays automatically.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The email address to check | ||
| payment | No | Base64 of a single x402 v2 PaymentPayload (EIP-3009 transferWithAuthorization on Base USDC). OMIT it on the first call: the 402 you get back carries `howToPay.payloadTemplate` — the exact envelope to fill in — plus the price and the EIP-712 domain. Send it on the second call to complete the purchase; it is forwarded as the PAYMENT-SIGNATURE header, never as body data. Nothing is charged for the 402 itself, and a call that fails after payment settles nothing. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mx | Yes | MX hosts by priority (up to 5) | |
| hasA | Yes | The domain has an A/AAAA record (mail may still be accepted without MX) | |
| risk | Yes | The verdict: undeliverable (bad syntax / no domain / no mail host), high (disposable), medium (role mailbox or likely typo), low | |
| Yes | The address as given (trimmed) | ||
| hasMx | Yes | The domain publishes MX records | |
| local | Yes | The part before @ | |
| domain | Yes | The part after @ | |
| isRole | Yes | A role mailbox (info@, support@, noreply@, …) rather than a person | |
| method | Yes | Exactly what was checked, and that no SMTP probe was made | |
| reasons | Yes | Why: invalid_syntax, domain_not_found, domain_accepts_no_mail (a null MX, RFC 7505), no_mx_record, disposable_domain, role_mailbox, likely_typo, free_provider | |
| checkedAt | Yes | ISO time of the check | |
| normalized | Yes | Lower-cased; for Gmail, dots and the +tag in the local part removed | |
| suggestion | Yes | A corrected address when the domain looks like a typo of a common provider, else null | |
| syntaxValid | Yes | Shaped like a real mailbox address | |
| domainExists | Yes | The domain answered DNS (MX or A/AAAA); false = no such domain | |
| isDisposable | Yes | The domain is on the disposable-provider list (a list, not a census) | |
| isFreeProvider | Yes | A consumer webmail provider (gmail, outlook, …) | |
| deliverableDomain | Yes | Syntax valid AND the domain accepts mail at the DNS level — a statement about the DOMAIN, never the mailbox |