Email Validation API

Validate emails with
surgical precision

Syntax checks, MX record lookups, disposable domain detection, and typo correction — all in one fast API.

Try Live Demo View Endpoints
4
Validation Layers
<50ms
Avg Response Time
1,000+
Disposable Domains Blocked
0
Dependencies on Us
Live Demo
Type any email address and see the validation result in real time.
API Endpoints
Base URL: https://your-site.com/api
POST /validate Validate a single email
curl -X POST http://your-server:3001/validate \
  -H "Content-Type: application/json" \
  -d '{"email": "user@gmail.com"}'
const res = await fetch('http://your-server:3001/validate', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ email: 'user@gmail.com' })
});
const data = await res.json();
console.log(data);
GET /validate?email= Quick validation via query param
curl "http://your-server:3001/validate?email=user@gmail.com"
const email = encodeURIComponent('user@gmail.com');
const res = await fetch(`http://your-server:3001/validate?email=${email}`);
const data = await res.json();
POST /validate/bulk Validate up to 10 emails at once
curl -X POST http://your-server:3001/validate/bulk \
  -H "Content-Type: application/json" \
  -d '{"emails": ["a@gmail.com", "b@yahoo.com", "fake@mailinator.com"]}'
const res = await fetch('http://your-server:3001/validate/bulk', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    emails: ['a@gmail.com', 'b@yahoo.com', 'fake@mailinator.com']
  })
});
const { count, results } = await res.json();
GET /health Health check
curl http://your-server:3001/health
const res = await fetch('http://your-server:3001/health');
const { status, uptime } = await res.json();
Response Schema
Every validation returns the same structure.
FieldTypeDescription
emailstringThe email address that was validated
validbooleanTrue only if all checks pass
scorenumberQuality score 0–100 (syntax 25 + MX 40 + not-disposable 25 + no-typo 10)
checks.syntaxbooleanEmail format is valid per RFC
checks.mxRecordsbooleanDomain has valid MX DNS records
checks.disposablebooleanDomain is a known disposable/throwaway provider
checks.typobooleanDomain looks like a typo of a common provider
suggestionstring | nullTypo correction suggestion if detected
domainstring | nullExtracted domain portion
timestampstringISO 8601 timestamp of the validation
How It Works
Four independent validation layers run on every email.
1
Syntax Check
Uses the validator library to verify the email conforms to RFC 5322 format. Catches obvious errors like missing @, invalid characters, or malformed structure before any network calls are made.
2
MX Record Lookup
Performs a real DNS MX record lookup on the domain. If no mail exchange records exist, the domain can't receive email — no matter how valid the syntax looks. Results are cached for 5 minutes.
3
Disposable Detection
Checks the domain against a list of 1,000+ known disposable and temporary email providers (Mailinator, Guerrilla Mail, etc.) to filter out throwaway signups.
4
Typo Detection
Compares the domain against a lookup table of common misspellings for Gmail, Yahoo, Outlook, Hotmail, and iCloud. Returns a correction suggestion when a likely typo is detected.
Accuracy & Limitations
What MailGuard catches, what it doesn't, and why — no surprises.
What we catch
  • Malformed syntax — missing @, invalid characters, broken structure
  • Nonexistent domains — no DNS / MX records means no mail delivery
  • Disposable addresses — 1,000+ throwaway providers blocked
  • Common typos — gmial.com, yaho.com, and similar misspellings
What we can't catch
  • Whether a specific mailbox exists on a valid domain (e.g. alice@gmail.com vs alice123xyz@gmail.com)
  • Addresses that are syntactically valid but never checked by a real person
  • Role addresses (info@, noreply@) that may bounce or be unmanned
Why mailbox-level verification isn't possible. Confirming whether a specific inbox exists requires the receiving mail server to answer a connection probe — and major providers like Gmail and Outlook deliberately reject these probes to prevent spam harvesters from bulk-validating addresses. This is an industry-wide constraint, not a gap in MailGuard. Even dedicated email verification services like ZeroBounce and Mailgun face the same wall on the major providers — they work around it with historical send-data heuristics, not live probing. The honest answer is: the only way to know an inbox truly exists is to send it an email and wait for a bounce.
Pricing
Simple, transparent pricing. Start free.
Free
$0 / month
Perfect for side projects and testing.
  • 1,000 validations / day
  • All 4 validation layers
  • Bulk validation (up to 10)
  • No API key required
  • JSON responses