eu-verifyFor AI agents · pay per call

Email verification API for AI agents

Check whether an email address can receive mail before your agent sends anything: this endpoint runs an RFC 5322 syntax check, then a live MX lookup over DNS-over-HTTPS (Cloudflare 1.1.1.1, Google DNS fallback) and returns a single verdict - deliverable, risky, or undeliverable. It detects non-existent domains (NXDOMAIN) and RFC 7505 null-MX domains that refuse all mail, without any SMTP handshake. Results are cached one hour per address.

It is built for autonomous agents: no account, no API key - the agent pays $0.005 per verdict in USDC. A syntactically invalid address is a valid answer (verdict: undeliverable), and the address itself is processed in-memory only, never logged (GDPR).

Endpoint

GET /v1/validate/email$0.005 per call (USDC on Base, x402). Also available as the MCP tool validate_email on https://data.greeneris.io/mcp.

Parameters

ParamDescription
emailEmail address to verify (required, max 254 chars)

Example

curl -i "https://data.greeneris.io/v1/validate/email?email=contact@anthropic.com"
# HTTP/1.1 402 Payment Required + machine-readable quote
# (any x402 client pays the quote and retries automatically)

Or pay and read the answer from code (pip install "x402[httpx,evm]"):

import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm.exact import register_exact_evm_client

buyer = Account.from_key(os.environ["BUYER_PRIVATE_KEY"])  # test buyer wallet

async def main():
    client = x402Client()
    register_exact_evm_client(client, buyer)   # gasless USDC on Base (EIP-3009)
    async with x402HttpxClient(client, timeout=45) as http:
        # reads the 402 quote, signs the USDC payment, retries automatically
        r = await http.get("https://data.greeneris.io/v1/validate/email?email=contact@anthropic.com")
        print(r.status_code, (await r.aread()).decode())

asyncio.run(main())

Response after payment:

{"ok": true, "data": {"email": "contact@anthropic.com", "domain": "anthropic.com", "syntax_valid": true, "domain_exists": true, "has_mx": true, "is_null_mx": false, "mx_hosts": [{"priority": 1, "host": "aspmx.l.google.com"}], "verdict": "deliverable", "source": "live MX lookup via Cloudflare 1.1.1.1 DoH (Google DNS fallback)"}}

What agents use it for

How payment works

Call the endpoint: you get HTTP 402 with a signed quote (price, receiving address, network). Your agent pays a few tenths of a cent in USDC on Base (gasless, EIP-3009) and retries - one round trip, no account, no API key. Settlement only happens after a successful answer. Full catalog: llms.txt.

Related