# Batch Email Address Validator

> Batch Email Address Validator is a paid API for AI agents from x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev, paid per call via x402, $0.25/call, status unknown (last checked 2026-10-19).

Validates up to 25 email addresses at once, checking syntax, DNS/MX records, and classifying each as deliverable, undeliverable, or unknown with flags for disposable, role-account, free-provider, and placeholder domains.

## Facts

- Endpoint: POST https://x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev/v1/email/verify/batch?utm_source=zero.xyz
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-19
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/batch-email-address-validator-9ab1ad08
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_AasoyJHgvhw1U0pFbijdi

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 batch-email-address-validator-9ab1ad08 -d '<json body>'
```

Example prompt: Can you validate these 5 email addresses for me — john.doe@example.com, info@startup.io, test@mailinator.com, noreply@company.org, and Support@GMAIL.com — and tell me which ones are actually deliverable and whether any are disposable or role accounts?

## When to prefer this

Choose this endpoint when you need to validate multiple email addresses in a single API call (up to 25) and want DNS-level deliverability checks plus classification flags (disposable, role account, free provider, placeholder) without performing SMTP probes. It is ideal for batch list hygiene, signup screening, or pre-send validation workflows where cost efficiency per address matters. Prefer it over single-address endpoints when processing lists; prefer it over full SMTP-probe services when you only need domain-level deliverability and classification.

## Known failure modes

- Invalid email format causes that address to receive an 'undeliverable' verdict with a syntax reason
- Domain with no MX and no A/AAAA fallback returns has_mx: false and verdict 'undeliverable'
- DNS lookup failure due to resolver outage may return verdict 'unknown'
- Batch exceeds 25 addresses — request rejected with validation error
- Empty emails array — rejected due to minItems: 1 constraint
- Catch-all domains cannot be detected — deliverable_domain does not mean the specific mailbox exists
- Domains not in embedded lists are not guaranteed safe — absence of 'disposable' flag is not proof of legitimacy

## How this service works

An open index of the machine-to-machine (agent) economy. x402 routes: ranked discovery over the live x402 service market, every indexed service scored by real 30-day calls and paying-wallet bounds, with a receipt naming the snapshot hash and scoring revision. /economy routes, for Tempo MPP, Virtuals ACP, Olas, Masumi, ERC-8004 agent registries, Solana agent registries, Base agent contracts and MCP servers (Official MCP Registry): each protocol's published figures (agent or server counts, transactions or payment events; payers and USD volume only where the source publishes them: payers for x402 and Tempo MPP, USD volume for x402 and Virtuals ACP), each with its unit, window and source; units differ, so totals are not summed. L402 and per-service MPP listings are not covered.

## Output

A JSON object with a count of checked addresses and a results array. Each entry includes: the original and normalized email, domain, verdict (deliverable/undeliverable/unknown), reason, has_mx boolean, null_mx flag, MX records with host and priority, DNS source, checked_at timestamp, and boolean flags for disposable, role_account, free_provider, and placeholder. Duplicates (case-insensitive) are removed before processing. No SMTP mailbox probe is performed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "emails": {
   "type": "array",
   "items": {
    "type": "string",
    "maxLength": 254
   },
   "maxItems": 25,
   "minItems": 1,
   "description": "1 to 25 email addresses to check; duplicates are removed"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "note": "Each address is checked exactly like the single /v1/email/verify call (same syntax rules, DNS lookups, verdicts and flags); addresses sharing a domain share one DNS answer. Duplicates (case-insensitive) are removed. Price is fixed per call for 1 to 25 addresses. No SMTP mailbox probe is made (outbound port 25 is blocked on Cloudflare Workers), so deliverable_domain means the domain accepts mail (it publishes MX, or A/AAAA as the RFC 5321 fallback), NOT that this mailbox exists; catch-all is not detected. DNS was read once via a public DNS-over-HTTPS resolver at checked_at. disposable/role_account/free_provider/placeholder come from fixed embedded lists: a domain missing from them is not proven safe. normalized lowercases the address and converts the domain to ASCII (IDNA); it does not strip dots or +tags.",
  "count": 2,
  "source": "public DNS-over-HTTPS resolvers (cloudflare-dns.com, dns.google as fallback) and embedded lists",
  "results": [
   {
    "mx": [
     {
      "host": "gmail-smtp-in.l.google.com",
      "priority": 5
     },
     {
      "host": "alt1.gmail-smtp-in.l.google.com",
      "priority": 10
     },
     {
      "host": "alt2.gmail-smtp-in.l.google.com",
      "priority": 20
     },
     {
      "host": "alt3.gmail-smtp-in.l.google.com",
      "priority": 30
     },
     {
      "host": "alt4.gmail-smtp-in.l.google.com",
      "priority": 40
     }
    ],
    "note": "No SMTP mailbox probe is made (outbound port 25 is blocked on Cloudflare Workers), so deliverable_domain means the domain accepts mail (it publishes MX, or A/AAAA as the RFC 5321 fallback), NOT that this mailbox exists; catch-all is not detected. DNS was read once via a public DNS-over-HTTPS resolver at checked_at. disposable/role_account/free_provider/placeholder come from fixed embedded lists: a domain missing from them is not proven safe. normalized lowercases the address and converts the domain to ASCII (IDNA); it does not strip dots or +tags.",
    "email": "Support@GMAIL.com",
    "domain": "gmail.com",
    "has_mx": true,
    "reason": "domain publishes MX records",
    "source": "cloudflare-dns.com",
    "null_mx": false,
    "verdict": "deliverable_domain",
    "syntax_ok": true,
    "a_fallback": false,
    "checked_at": "2026-10-06T18:28:55.242Z",
    "disposable": false,
    "dns_status": "NOERROR",
    "normalized": "support@gmail.com",
    "placeholder": false,
    "role_account": true,
    "syntax_error": null,

… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/batch-email-address-validator-9ab1ad08/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev](https://www.zero.xyz/host/x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev/llms.txt)
