# Email Address MX Verify

> Email Address MX Verify is a paid API for AI agents from sdn-screen-x402.sdnscreen.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-13).

Verifies whether an email address domain is deliverable by performing DNS-based MX record lookup and checking for disposable, role-based, or unresolvable mail hosts

## Facts

- Endpoint: GET https://sdn-screen-x402.sdnscreen.workers.dev/v1/mx-verify?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/email-address-mx-verify-9f83cc8e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_-jr1xvnzcvWRHxzpAcIc7

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability email-address-mx-verify-9f83cc8e
```

Example prompt: Can you check whether the email address contact@acmecorp.io is actually deliverable — does the domain have valid MX records, and is it flagged as a disposable or role-based address?

## When to prefer this

Choose this endpoint when you need a fast, keyless, pay-per-call DNS-level email deliverability check without sending any test email or making SMTP connections. It is ideal for agent workflows that need to screen email addresses at onboarding, in CRM hygiene pipelines, or pre-send validation, especially when you also need disposable/role-account flagging in the same call. Prefer alternatives (SMTP-level validators) only when you need to confirm individual mailbox existence beyond the domain level.

## Known failure modes

- Email address missing or malformed — returns 400 with validation error
- Domain does not exist (NXDOMAIN) — verdict is undeliverable, reasons includes domain_nxdomain
- Domain has null MX record — verdict is undeliverable, reasons includes null_mx
- MX hosts listed but unresolvable — verdict is risky, reasons includes mx_host_unresolvable
- DNS lookup error (upstream failure) — verdict is unknown, reasons includes dns_error
- Payment not provided or invalid x402/MPP credential — returns 402 Payment Required

## How this service works

Six keyless pay-per-call tools for AI agents: OFAC SDN crypto-wallet screen, live DNS records lookup, SPF/DMARC/DKIM email-auth check, domain age/registrar (RDAP), email address MX verify and URL unshorten/redirect check. $0.01 per call: USDC on Base over x402, or USDC on Tempo over MPP. Also a remote MCP server at /mcp (x402).

## Output

Returns a JSON object with a verdict enum (deliverable_domain, risky, undeliverable, unknown), a list of MX records (host and priority), boolean flags for acceptsMail, disposable, roleAccount, freeProvider, nullMx, implicitMx, syntaxValid, domainExists, and mxHostResolves, plus a reasons array listing specific failure codes (e.g. null_mx, no_mx_or_a, disposable_domain), the resolver used (Cloudflare 1.1.1.1 over DoH), and a checkedAt timestamp. Note: DNS-only — no SMTP connection is made and no mail is sent.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "email"
     ],
     "properties": {
      "email": {
       "type": "string",
       "examples": [
        "someone@gmail.com"
       ],
       "maxLength": 254,
       "minLength": 6,
       "description": "Email address to check, e.g. someone@example.com"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "email",
      "verdict",
      "reasons",
      "domain",
      "acceptsMail",
      "mx",
      "disposable",
      "roleAccount",
      "freeProvider",
      "checkedAt"
     ],
     "properties": {
      "mx": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "priority",
         "host"
        ],
        "properties": {
         "host": {
          "type": "string"
         },
         "priority": {
          "type": "integer"
         }
        }
       }
      },
      "note": {
       "type": "string"
      },
      "email": {
       "type": "string"
      },
      "domain": {
       "type": "string"
      },
      "nullMx": {
       "type": "boolean"
      },
      "reasons": {
       "type": "array",
       "items": {
        "type": "string"
       },
       "description": "domain_nxdomain, null_mx, no_mx_or_a, mx_host_unresolvable, dns_error, disposable_domain, role_account"
      },
      "verdict": {
       "enum": [
        "deliverable_domain",
        "risky",
        "undeliverable",
        "unknown"
       ],
       "type": "string"
      },
      "resolver": {
       "type": "string"
      },
      "checkedAt": {
       "type": "string",
       "format": "date-time"
      },
      "disposable": {
       "type": "boolean"
      },
      "implicitMx": {
       "type": "boolean"
      },
      "acceptsMail": {
       "type": "boolean"
      },
      "roleAccount": {
       "type": "boolean"
      },
      "syn
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "mx": [
   {
    "host": "gmail-smtp-in.l.google.com",
    "priority": 5
   },
   {
    "host": "alt1.gmail-smtp-in.l.google.com",
    "priority": 10
   }
  ],
  "note": "DNS-only check: no SMTP connection and no mail sent, so it cannot confirm the individual mailbox exists. deliverable_domain = the domain is set up to receive mail.",
  "email": "someone@gmail.com",
  "domain": "gmail.com",
  "nullMx": false,
  "reasons": [],
  "verdict": "deliverable_domain",
  "resolver": "Cloudflare 1.1.1.1 (DNS over HTTPS)",
  "checkedAt": "2026-10-12T17:50:00.000Z",
  "disposable": false,
  "implicitMx": false,
  "acceptsMail": true,
  "roleAccount": false,
  "syntaxValid": true,
  "domainExists": true,
  "freeProvider": true,
  "mxHostResolves": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/email-address-mx-verify-9f83cc8e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from sdn-screen-x402.sdnscreen.workers.dev](https://www.zero.xyz/host/sdn-screen-x402.sdnscreen.workers.dev/llms.txt)
