# 2s Email Validator

> 2s Email Validator is a paid API for AI agents from 2s.io, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-13).

Validates an email address for syntax, disposability, role-account status, free-provider status, and MX record presence via DNS-over-HTTPS

## Facts

- Endpoint: GET https://2s.io/api/email/validate
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-email-validator-92cdfdd9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_DSa4jvv7pxbdnRARYxW8X

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 2s-email-validator-92cdfdd9
```

Example prompt: Can you validate the email address jane.doe@gmail.com — check if it has valid syntax, whether it's disposable or a role account, and whether the domain actually has MX records?

## When to prefer this

Use this endpoint when you need lightweight, fast email quality signals — syntax check, disposable/role/free-provider classification, and MX presence — without sending an actual probe email. Ideal for pre-screening user-submitted email addresses during onboarding, form validation, or data cleaning pipelines. Prefer this over full deliverability services when you only need heuristic signals at $0.001/call with no signup or API key required.

## Known failure modes

- Missing required 'email' query parameter returns an error response
- Invalid or malformed email strings may still be returned with isSyntaxValid=false rather than an HTTP error
- MX lookup may fail or be inconclusive if DNS-over-HTTPS is unreachable, reflected in hasMxRecords
- Payment failure via x402 returns 402 status before the endpoint is reached
- Rate limiting or quota exhaustion may result in non-200 responses

## How this service works

Validate an email address and return structured signals: RFC syntax validity (isSyntaxValid + reason if not), the normalized address with split local/domain, and boolean flags for isDisposable (throwaway/temp-mail domain), isRoleAccount (info@, support@, admin@, …), and isFreeProvider (gmail/outlook/yahoo/icloud/…). With checkMx (default true) it also reports hasMxRecords — whether the domain publishes MX records, looked up live via DNS-over-HTTPS — plus the MX hosts. IMPORTANT: this is NOT a deliverability or mailbox-existence guarantee (catch-all domains, greylisting, and privacy relays make that impossible to assert from a single lookup); hasMxRecords reflects DNS MX presence only. Useful for signup-flow hygiene, lead scrubbing, and flagging disposable/role addresses before sending.

## Output

A JSON object containing: whether the call succeeded (ok), an items array with per-email results including the normalized email, local part, domain, syntax validity flag, disposable flag, role-account flag, free-provider flag, list of MX hosts found, and a boolean for MX record presence. Also includes a source object describing the data provider and license.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "email": "test.user@example.com",
   "checkMx": true
  }
 }
}
```

## 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",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "required": [
      "email"
     ],
     "properties": {
      "email": {
       "type": "string",
       "description": "Email address to check."
      },
      "checkMx": {
       "type": "boolean",
       "description": "Look up MX-record presence via DoH (default true)."
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-email-validator-92cdfdd9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
