Email Validation API Docs
Getting Started
All API requests require authentication using an API key. You can find your API key in the dashboard.
Header: "x-api-key: your-api-key"Single Verification
Verify a single email address or domain for validity, disposable status, privacy services, and deliverability.
Endpoint
GET /v1/verifyParameters
| Name | Type | Required | Description |
|---|---|---|---|
| input | string | Yes | Email address or domain to verify (e.g., [email protected] or example.com) |
Response Fields
| Field | Description |
|---|---|
| valid | Indicates if the email/domain passes basic validation (format, deliverability). Not used for blacklist/whitelist decisions. |
| block | Recommendation to block this email/domain. For blacklist/whitelist use only this field: blacklist → true; whitelist → false; not in whitelist (when whitelist enabled) → true. E.g. gmail.com can be valid: true, block: true when not in whitelist. |
| disposable | Determines if the email address is a temporary or disposable email address |
| privacy | Determines if the mail server is utilizing an email alias or forwarder |
| applePrivateEmail | Indicates if the email is an Apple Private email address |
| deliverable | Checks if the mailbox exists and can receive emails |
| domain | The domain part of the email address |
| email_address | The email address |
| catch_all | Indicates if the domain has a catch-all email configuration that accepts all incoming emails regardless of the recipient address |
| mx_found | Indicates if the domain has valid mail servers (MX records) |
| remaining_credits | The number of API credits remaining in your account |
Blacklist / Whitelist: Only the block field reflects list membership. Blacklist → block: true; whitelist → block: false; not in whitelist (when enabled) → block: true. Do not use valid to decide whether to block based on lists.
Example Response
{
"valid": true,
"block": false,
"disposable": false,
"privacy": false,
"applePrivateEmail": false,
"deliverable": true,
"domain": "example.com",
"email_address": "[email protected]",
"catch_all": false,
"mx_found": true,
"error": null,
"remaining_credits": 99
}Code Examples
curl "https://api.verify-email.app/v1/[email protected]" \
-H "X-API-Key: your-api-key"Try it out
You need an API key to test the endpoints.
Try with:
Batch Verification
Verify multiple email addresses or domains in a single request (max 100 items).
Endpoint
POST /v1/verify/batchParameters
| Name | Type | Required | Description |
|---|---|---|---|
| inputs | array of strings | Yes | Array of email addresses or domains to verify |
Code Examples
curl -X POST "https://api.verify-email.app/v1/verify/batch" \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key" \
-d '{
"inputs": [
"[email protected]",
"[email protected]"
]
}'Try it out
You need an API key to test the endpoints.
Try with different domains:
Deliverable-Only Check
Fast email deliverability check using MX and SMTP verification without external API calls. Returns only deliverability-related fields for faster response times.
Endpoint
GET /v1/verify/deliverableParameters
| Name | Type | Required | Description |
|---|---|---|---|
| input | string | Yes | Email address to check deliverability (e.g., [email protected]). Domain-only input is not supported for this endpoint. |
Response Fields
| Field | Description |
|---|---|
| valid | Indicates if the email/domain passes basic validation (format, deliverability). Not used for blacklist/whitelist decisions. |
| deliverable | Checks if the mailbox exists and can receive emails |
| mx_found | Indicates if the domain has valid mail servers (MX records) |
| catch_all | Indicates if the domain has a catch-all email configuration that accepts all incoming emails regardless of the recipient address |
| email_address | The email address |
| remaining_credits | The number of API credits remaining in your account |
Example Response
{
"valid": true,
"deliverable": true,
"mx_found": true,
"catch_all": false,
"email_address": "[email protected]",
"remaining_credits": 99
}Code Examples
curl "https://api.verify-email.app/v1/verify/[email protected]" \
-H "X-API-Key: your-api-key"Try it out
You need an API key to test the endpoints.
Try with:
Whitelist & Blacklist
Control which emails and domains get blocked using per-user blacklist and whitelist rules. These lists directly control the block field in every verification response.
The block field
Every verification response includes a block field. Look at this field to determine if the email/domain should be blocked based on your lists:
trueEmail or its domain is in the blacklist → block: true. Adding a domain blocks all emails on it.trueWhitelist is enabled but the email/domain is not in it → block: true.falseWhitelist is enabled and the email or its domain is in it → block: false.Overview
Blacklist
Always block specific emails or entire domains. For example, adding example.com to the blacklist means any email @example.com will return block: true — no matter what the verification result is.
Whitelist
Only allow specific emails or entire domains. When the whitelist is enabled, only listed entries get block: false — everything else gets block: true. For example, adding gmail.com means any @gmail.com email is allowed, but [email protected] would be blocked. When disabled, the whitelist has no effect.
You can add a full email ([email protected]) or a whole domain (example.com). Adding a domain applies to every email on it. Values are case-insensitive.
How it works
Order of evaluation
Blacklist always wins. A blacklisted address stays blocked even if it is also on the whitelist.
What gets matched
Quick reference
| Whitelist enabled | In blacklist | In whitelist | block value |
|---|---|---|---|
| No | Yes | — | true |
| No | No | — | Normal |
| Yes | Yes | Any | true |
| Yes | No | Yes | false |
| Yes | No | No | true |
List API endpoints
All list endpoints require header: X-API-Key: your-api-key
Blacklist
/v1/blacklist/v1/blacklist/v1/blacklistWhitelist
/v1/whitelist/v1/whitelist/v1/whitelist/v1/whitelist/enabled/v1/whitelist/enabledValue format
[email protected]— Email: valid format, e.g. [email protected]example.com— Domain: valid format, e.g. example.com
Invalid values are rejected with 400. Entries are stored normalized. Duplicates are upserted as a single entry.
Where lists are applied
List rules are applied after verification. Single and batch email verification and domain verification responses already include the user's blacklist and whitelist in the block field.
MCP Server (AI Agent Integration)
Integrate email verification directly into AI agents like Cursor and Claude Desktop using the Model Context Protocol (MCP). Your AI assistant can verify emails, check domains, and validate syntax without leaving the editor.
Setup
Add the following configuration to your .cursor/mcp.json or Claude Desktop config file:
{
"mcpServers": {
"email-checker": {
"url": "https://api.verify-email.app/mcp",
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}Available Tools
| Tool | Description | Input | Credits |
|---|---|---|---|
| verify_email | Full email verification including syntax, MX, SMTP, disposable, privacy, and deliverability checks | { email: string } | 1 |
| verify_domain | Full domain verification including MX records, disposable, privacy, and catch-all detection | { domain: string } | 1 |
| check_deliverability | Fast deliverability-only check using MX and SMTP verification without external API calls | { email: string } | 1 |
| verify_batch | Batch verification for up to 100 emails or domains in a single request | { inputs: string[] } | 1 per item |
| validate_email_syntax | Quick local syntax validation against RFC 5322 with no network calls | { email: string } | 0 (free) |