API 10 · Runs on Vercel

Email Validation

Validates syntax, then resolves MX, A/AAAA, SPF and DMARC records to produce domain-level deliverability indicators. Flags disposable providers, role accounts and likely typos of major providers. It never connects to mail servers or probes individual mailboxes.

POST https://dev.itsozy.lol/api/v1/email/validate
Runs on Vercel. Fully served by the Rust function on Vercel (DNS only).

Authentication

Send Authorization: Bearer ozy_… with an API key that includes the email permission (or *). Signed-in dashboard sessions work in the playground. Each call costs 1 unit.

Parameters

NameTypeDescription
emailstringrequiredAddress to validate

Example request

curl -X POST https://dev.itsozy.lol/api/v1/email/validate \
  -H "Authorization: Bearer $OZY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "someone@gmial.com"}'

Example response (illustrative)

{
  "deliverability": "domain_has_no_mail_records",
  "did_you_mean": "someone@gmail.com",
  "disposable": false,
  "dmarc_record": false,
  "domain": "gmial.com",
  "email": "someone@gmial.com",
  "mailbox_verified": false,
  "mx_records": [],
  "role_account": false,
  "spf_record": false,
  "syntax_valid": true
}

Errors

Errors use one envelope: {"error": {"code": "…", "message": "…"}}.

StatusCodeMeaning
400invalid_inputA parameter is missing or invalid
401unauthorizedNo valid API key or session
403permission_deniedThe key does not include this API's permission
429quota_exceededFree-tier quota reached (20 units/min, 100 units/day)
503database_unavailablePersistent storage is temporarily unavailable

Rate limits

20 units per minute and 100 units per day per account; outbound fetches to the same host are spaced at least one second apart. Exceeding a limit returns 429.