Email address and domain checks for AI agents: syntax, MX, disposable/role/free flags, typo suggestions, SPF/DMARC/DKIM, RDAP and a deliverability grade. Pay per item with x402 (USDC on Base) or Lightning sats. No signup.
/v1/free/email-check and /v1/free/domain-check. When it runs out you get HTTP 402 with payment options.eip155:8453), payTo 0x7a3C00Ef0969378A3E74455cde3Dc87C0f016dfa. No signup, no API key.POST /v1/credits {"sats":100} returns an invoice; poll /v1/credits/<payment_id> for your token, then send X-Credits-Token.Client note: Send a descriptive User-Agent header (e.g. User-Agent: mailcheck-client/1.0). Cloudflare blocks Python urllib's default User-Agent ("Python-urllib/3.x") on workers.dev with HTTP 403 "error code: 1010" before the request reaches this API. curl, python-requests and fetch work as-is. No API key is needed.
# Python (standard library): set the header explicitly
import json, urllib.request
req = urllib.request.Request("https://mailcheck.toolschemaforge.workers.dev/v1/free/email-check",
data=json.dumps({"email": "someone@gmial.com"}).encode(),
headers={"content-type": "application/json", "User-Agent": "mailcheck-client/1.0"})
print(json.load(urllib.request.urlopen(req)))
Machine-readable: /openapi.json · /llms.txt · /.well-known/x402 · /health
Check 1-100 email addresses ($0.001 each): RFC syntax, normalization and canonical form, MX lookup (A fallback), disposable domain (CC0 list), role account, free provider, typo suggestion (gmial.com -> gmail.com), verdict and 0-100 score. No SMTP probing.
Free:
curl -s -X POST https://mailcheck.toolschemaforge.workers.dev/v1/free/email-check -H 'content-type: application/json' -d '{"email":"someone@gmial.com"}'
Paid (x402): any x402 client, e.g. npx @x402/fetch or an agent wallet:
curl -i -X POST https://mailcheck.toolschemaforge.workers.dev/v1/email-check -H 'content-type: application/json' -d '{"emails":["jane.doe@gmial.com","info@example.com"]}'
# -> 402 with PAYMENT-REQUIRED; pay and retry with PAYMENT-SIGNATURE
Paid (Lightning credits):
curl -s -X POST https://mailcheck.toolschemaforge.workers.dev/v1/email-check -H 'X-Credits-Token: mc_...' -H 'content-type: application/json' -d '{"emails":["jane.doe@gmial.com","info@example.com"]}'
{
"count": 1,
"results": [
{
"input": "jane.doe@gmial.com",
"email": "jane.doe@gmial.com",
"syntax_valid": true,
"local": "jane.doe",
"domain": "gmial.com",
"canonical": "jane.doe@gmial.com",
"mx": {
"status": "ok",
"source": "dns",
"records": [
{
"priority": 10,
"exchange": "mx.example-parking.net"
}
]
},
"flags": {
"disposable": false,
"role_account": false,
"free_provider": false,
"plus_tag": false
},
"suggestion": "gmail.com",
"verdict": "risky",
"score": 60,
"reasons": [
"possible typo: did you mean gmail.com?"
]
}
],
"summary": {
"valid": 0,
"risky": 1,
"invalid": 0,
"disposable": 0,
"unknown": 0
}
}Check 1-2 domains ($0.001 each): A/AAAA/MX/NS/TXT records, SPF parse (all qualifier, includes, lookup count), DMARC parse (policy, pct, rua), DKIM keys at common selectors, RDAP registrar/created/expiry/status, and an A-F grade with reasons.
Free:
curl -s -X POST https://mailcheck.toolschemaforge.workers.dev/v1/free/domain-check -H 'content-type: application/json' -d '{"domain":"example.org"}'
Paid (x402): any x402 client, e.g. npx @x402/fetch or an agent wallet:
curl -i -X POST https://mailcheck.toolschemaforge.workers.dev/v1/domain-check -H 'content-type: application/json' -d '{"domain":"example.org"}'
# -> 402 with PAYMENT-REQUIRED; pay and retry with PAYMENT-SIGNATURE
Paid (Lightning credits):
curl -s -X POST https://mailcheck.toolschemaforge.workers.dev/v1/domain-check -H 'X-Credits-Token: mc_...' -H 'content-type: application/json' -d '{"domain":"example.org"}'
{
"count": 1,
"results": [
{
"input": "example.org",
"domain": "example.org",
"valid": true,
"exists": true,
"mail": {
"accepts_mail": false,
"null_mx": true,
"spf": {
"present": true,
"all": "-all"
},
"dmarc": {
"present": true,
"policy": "reject"
},
"dkim": {
"found": []
}
},
"registration": {
"status": "ok",
"registrar": "Example Registrar",
"created": "1995-08-31T04:00:00Z",
"expires": "2027-08-30T04:00:00Z"
},
"grade": "A",
"score": 100,
"reasons": [
"null MX: domain declares it sends/receives no mail"
]
}
]
}curl -s -X POST https://mailcheck.toolschemaforge.workers.dev/v1/credits -H 'content-type: application/json' -d '{"sats":100}'
# {"payment_id":"...","bolt11":"lnbc...","sats":100,"poll":"https://mailcheck.toolschemaforge.workers.dev/v1/credits/..."}
curl -s https://mailcheck.toolschemaforge.workers.dev/v1/credits/<payment_id> # after paying: {"status":"paid","token":"mc_..."}
curl -s https://mailcheck.toolschemaforge.workers.dev/v1/credits/balance -H 'X-Credits-Token: mc_...'