{"openapi":"3.1.0","info":{"title":"Agent Email Check","version":"1.0.0","description":"Pay-per-call email verification for autonomous agents. No signup, no API key, no dashboard. Every call is settled in USDC over the x402 protocol. The service reports what it can prove and says \"unknown\" when it cannot.","contact":{"name":"Die Netzhandwerker","url":"https://netzhandwerker.de"}},"servers":[{"url":"https://mail.halowerk.com"}],"paths":{"/email":{"post":{"summary":"Check one email address: syntax, mail route, MX hosts, disposable provider, role account, typo suggestion, catch-all estimate and a verdict with a confidence between 0 and 1.","description":"DNS and list based verification. Never claims that a mailbox exists without evidence: without an SMTP probe the verdict for a routable address is \"unknown\", not \"valid\". Price: 0.001 USDC per call, settled over x402 on Base Mainnet.","operationId":"email_check","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"The email address to check."},"smtp_check":{"type":"boolean","default":false,"description":"Ask for an optional SMTP probe. Off by default, heavily throttled, one attempt per target and never retried. Without it the verdict of a routable address stays \"unknown\"."}}}}}},"responses":{"200":{"description":"Check result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request body. Only ever returned to a request that already carries a payment header, and never charged."},"402":{"description":"Payment required. The body and the PAYMENT-REQUIRED header carry the exact price. Retry with a PAYMENT-SIGNATURE header."},"429":{"description":"Too many unsettled requests from this address. Not charged."}},"x-x402":{"price":{"amount":"1000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","display":"$0.001"}}}},"/email/batch":{"post":{"summary":"Check up to 100 email addresses in one paid call, billed per address.","description":"Same checks as /email, executed concurrently with one DNS lookup per distinct domain. The 402 quotes the exact amount for the number of addresses in the request body. Price: 0.0006 USDC per address, at most 0.060000 USDC for 100 addresses, settled over x402 on Base Mainnet.","operationId":"email_check_batch","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["emails"],"properties":{"emails":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string"},"description":"Between 1 and 100 addresses. Billed at 0.0006 USDC per address with a 0.001 USDC minimum charge."},"smtp_check":{"type":"boolean","default":false,"description":"Ask for an optional SMTP probe. Off by default, heavily throttled, one attempt per target and never retried. Without it the verdict of a routable address stays \"unknown\"."}}}}}},"responses":{"200":{"description":"Check result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request body. Only ever returned to a request that already carries a payment header, and never charged."},"402":{"description":"Payment required. The body and the PAYMENT-REQUIRED header carry the exact price. Retry with a PAYMENT-SIGNATURE header."},"429":{"description":"Too many unsettled requests from this address. Not charged."}},"x-x402":{"price":{"amount":"600","amount_is":"per address","max_amount":"60000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","display":"$0.0006 per address"}}}},"/health":{"get":{"summary":"Service health, no payment required","responses":{"200":{"description":"ok"}}}},"/pricing":{"get":{"summary":"Machine readable price list, no payment required","responses":{"200":{"description":"ok"}}}}},"x-verdicts":{"deliverable":"The mail server accepted this recipient and the domain is not catch-all. Only reachable with an SMTP probe.","undeliverable":"The mail server rejected this recipient permanently.","invalid":"The address cannot receive mail: broken syntax, no MX and no A record, or a null MX record.","risky":"A mail route exists, but a concrete negative signal is attached: disposable provider, catch-all domain or a likely typo.","unknown":"A mail route exists and nothing is known about this specific mailbox. This is the honest default without an SMTP probe."},"x-honesty-rule":["This service never claims that a mailbox exists without evidence.","DNS proves that a domain accepts mail. It proves nothing about the mailbox in front of the at sign.","Without an SMTP probe the verdict of a routable address is \"unknown\" and the confidence is capped at 0.7.","The SMTP probe is optional, off by default, heavily throttled, and contacts a target once without any retry.","A temporary 4xx reply is treated as no answer, not as a yes."],"x-service":{"slug":"email-check","tags":["email-validation","email-verification","mx-lookup","disposable-email","role-account","typo-correction","catch-all","lead-qualification","agent-tools","list-hygiene"],"payment_protocol":"x402","endpoint_count":4,"paid_endpoint_count":2}}