Single Email Verification
Docs index for AI agents: https://mailvalid.io/llms.txt. Every docs page is also available as Markdown: add
.mdto its URL.
Verify a single email address in real time. The result covers syntax, domain, MX records and an SMTP mailbox check. The average response time is under 500ms.
POST https://mailvalid.io/api/v1/verify/single
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
email |
string | Required | The email address to verify |
Example request
curl -X POST https://mailvalid.io/api/v1/verify/single \
-H "X-API-Key: mv_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"email": "john@company.com"}'
Example response
{
"success": true,
"credits_used": 1,
"result": {
"email": "john@company.com",
"status": "valid",
"is_valid": true,
"syntax_valid": true,
"domain": "company.com",
"domain_valid": true,
"has_mx": true,
"mx_records": [
{"priority": 10, "host": "mx1.company.com"}
],
"smtp_checked": true,
"smtp_response_code": 250,
"is_disposable": false,
"is_role_based": false,
"is_catch_all": false,
"is_free_provider": false,
"confidence_score": 95,
"status_reason": "mailbox_confirmed",
"provider": "corporate",
"verification_time_ms": 234,
"cached": false
}
}
Response fields
| Field | Type | Description |
|---|---|---|
status |
string | Verification status: valid, invalid, catch_all, unknown, do_not_mail |
is_valid |
boolean | Whether the email is safe to send to |
confidence_score |
integer | Confidence in the result (0–100) |
status_reason |
string | Machine-readable sub-status reason (see Status values) |
provider |
string | Detected email provider (google, microsoft, yahoo, apple, corporate, etc.) |
is_disposable |
boolean | Whether the domain is a disposable/temporary email provider |
is_role_based |
boolean | Whether the address is role-based (info@, support@, admin@) |
is_catch_all |
boolean | Whether the domain accepts all email addresses |
is_free_provider |
boolean | Whether the domain is a free email provider (gmail.com, yahoo.com, etc.) |
cached |
boolean | Whether MailValid returned a recent server-side result. cached: true is billed as a normal result. |
Billing
credits_used is the final charge. valid, invalid, catch_all and do_not_mail results use 1 credit each, whether fresh or served from cache (cached: true). unknown results use 0 credits.
Related
- Bulk verification for lists of up to 10,000 emails
- Rate limits
- Errors