✉️Email Address Validation

Email Validator

Validate any email address in one API call — syntax check, MX record verification, and disposable email detection. Get clear deliverability signals for every address.

Syntax CheckMX RecordsDisposable Detection
API Authentication Required
Enter your API key to access this service. All API calls require authentication.

Don't have an API key?

Sign in to your account to create and manage your API keys.

Examples:

  • user@example.com — standard address
  • user@mailinator.com — disposable (will be flagged)
  • bad@@email — invalid syntax

API Integration Guide

Learn how to integrate this API into your applications with code examples and detailed documentation.

API Overview
Validate an email address and receive syntax, MX, and disposable detection results
POST
/api/check-email

Base URL

https://www.apipick.com

Full Endpoint

https://www.apipick.com/api/check-email
Parameters
Required and optional parameters for this API
email
required
string

The email address to validate

Example: user@example.com
Code Examples
Copy and paste these examples to quickly integrate the API into your application

cURL Request

curl -X POST "https://www.apipick.com/api/check-email" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "email": "user@example.com"
}'
Replace YOUR_API_KEY with your actual API key
Response Example
Example response from the API

JSON Response

{
  "success": true,
  "code": 200,
  "message": "Email validation complete",
  "data": {
    "email": "user@example.com",
    "valid": true,
    "syntax_valid": true,
    "mx_valid": true,
    "disposable": false,
    "domain": "example.com",
    "normalized": "user@example.com",
    "reason": null
  },
  "credits_used": 1,
  "remaining_credits": 99
}
Integration Tips

Best Practices

  • • Always include x-api-key header
  • • Always handle errors gracefully
  • • Validate input data before sending
  • • Use HTTPS for secure communication
  • • Cache responses when appropriate

Response Headers

  • • Content-Type: application/json
  • • x-api-key: Required for authentication
  • • Status codes: 200 (success), 400 (error), 401 (unauthorized)
  • • No rate limiting applied

Three Checks in One Call

✏️

Syntax Validation

Verifies RFC-compliant format, detects typos, and returns a normalized canonical form of the address.

🌐

MX Record Check

Performs a live DNS lookup to confirm the domain has active mail exchange records and can receive email.

🗑️

Disposable Detection

Checks against a database of 50,000+ known disposable and throwaway email domains (Mailinator, Guerrilla Mail, etc.).

Perfect for These Use Cases

SaaS Registration

Block disposable emails at signup to prevent trial abuse and keep your user base genuine.

Marketing List Hygiene

Clean email lists before campaigns to improve deliverability rates and protect sender reputation.

Fraud Prevention

Identify throwaway addresses used in fraudulent signups, coupon abuse, and fake account creation.

AI Agent Enrichment

Use as an LLM tool to verify email quality inside autonomous lead research, CRM enrichment, and outreach automation pipelines.

ZeroBounce & AbstractAPI Alternative

Same validation quality — without the per-batch pricing wall or a 100-request monthly cap.

ZeroBounce
AbstractAPI
API Pick ✓
Free tier100 / month100 / month100 credits on signup
Free credits expire?Monthly resetMonthly resetNever expire
Pay-as-you-go price$24 / 3,000 emails$14 / mo (10k)$5 / 5,000 emails
Cost per 1,000 emails~$8.00~$1.40 (monthly sub)$1.00
Syntax check
MX record check
Disposable detection
No credit card to start
AI agent / LLM readyPartialPartial✓ Native JSON

The ZeroBounce problem

ZeroBounce charges $24 for just 3,000 verifications — that's $8 per 1,000 emails. For teams running any volume through a registration form or CRM enrichment pipeline, costs escalate fast. There's no true pay-as-you-go: you buy credits in bulk packs and unused ones don't roll over cleanly.

The AbstractAPI problem

AbstractAPI's free tier gives you only 100 requests per month — enough to prototype but nowhere near enough for any real workload. The moment you exceed that, you're forced onto a monthly subscription even if your usage is sporadic or bursty.

Response Fields

FieldTypeDescription
validbooleantrue when syntax_valid and mx_valid are both true
syntax_validbooleanEmail format passes RFC syntax rules
mx_validbooleanDomain has at least one active MX record
disposablebooleanDomain is a known disposable/throwaway email service
domainstringExtracted domain part of the email
normalizedstring | nullCanonical lowercase, Unicode-normalised form
reasonstring | nullHuman-readable explanation when validation fails

Rate Limits

⏱️

Request Rate

60req / min

Per API key, per endpoint. Sliding 60-second window.

🔀

Concurrency

3concurrent

Max simultaneous in-flight requests per API key.

Response Headers

X-RateLimit-LimitMaximum requests allowed per minute
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetSeconds until the current window resets
Retry-AfterSeconds to wait before retrying (only on 429)

429 Too Many Requests

HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12

{
  "error": "rate_limit_exceeded",
  "message": "Rate limit exceeded: 60 requests/minute per API key. Retry after 12s.",
  "retry_after": 12
}

Frequently Asked Questions

Q: What is the difference between valid and mx_valid?

A: mx_valid only tells you the domain can receive email. valid combines syntax_valid and mx_valid — it is your go-to field when you simply want to know whether an address is deliverable. The disposable flag is returned separately so you can decide your own policy on throwaway addresses.

Q: Does the API send a test email to verify the mailbox?

A: No. The API performs DNS MX lookups but does not send any email or do SMTP probing. This means mailbox-level existence cannot be confirmed, but the domain-level deliverability check catches the vast majority of bad addresses without any privacy or spam concerns.

Q: Can AI agents call this API as a tool?

A: Yes. The endpoint takes a single email string and returns a flat JSON object — straightforward to define as an OpenAI function, Claude tool, LangChain tool, or any agent framework action. Ideal for autonomous lead enrichment and CRM hygiene pipelines.

Q: How current is the disposable email blocklist?

A: The blocklist is sourced from the community-maintained disposable-email-domains repository on GitHub (50,000+ domains). It is refreshed automatically on each server cold start.

🤖Agent Skill

Use Email Validator in Claude Code & AI Agents

Install the official Claude Code skill to validate emails directly inside your AI coding agent — no manual API calls needed. Works with Claude Code, Cursor, OpenAI Codex, and more.

Ask your AI agent naturally

Validate user@example.com
Is test@mailinator.com a disposable email?
Can john.doe@company.org receive emails?

Compatible platforms

Claude CodeCursorOpenAI CodexManusGoogle AntigravityOpenClaw
apipick-lab /
apipick-email-validation

Claude Code skill for APIpick Email Validator API

Performs syntax validation, MX record checks, and disposable email detection via natural language queries in any AI coding agent.

TypeScript1 credit / requestFree to install
View Skill on GitHub