Email verification endpoint
Verify an email address with one POST request. Authentication, parameters, responses, credit usage, and errors are documented on this page.
/api/v1/email-verificationAuthentication
Every request uses the following authentication method.
Authorization: Bearer YOUR_API_KEYProtect API keys
Request body
emailRequiredstringThe email address to verify. Maximum length: 254 characters.
Request example
curl --request POST \ --url https://verifyemailaddress.net/api/v1/email-verification \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data '{"email":"name@example.com"}'Response examples
A completed verification returns HTTP 200. Common result examples are shown below; the actual response contains only the signals available for that verification.
Deliverable
{ "email": "name@example.com", "status": "safe", "overall_score": 98, "username": "name", "domain": "example.com", "is_safe_to_send": true, "is_valid_syntax": true, "is_disposable": false, "is_role_account": false, "can_connect_smtp": true, "has_inbox_full": false, "is_catch_all": false, "is_deliverable": true, "is_disabled": false, "is_spamtrap": false, "is_free_email": false, "mx_accepts_mail": true, "mx_records": ["mx.example.com"], "verification_mode": "power"}Undeliverable
{ "email": "missing@example.com", "status": "invalid", "overall_score": 0, "username": "missing", "domain": "example.com", "is_safe_to_send": false, "is_valid_syntax": true, "is_disposable": false, "is_role_account": false, "can_connect_smtp": true, "has_inbox_full": false, "is_catch_all": false, "is_deliverable": false, "is_disabled": false, "is_spamtrap": false, "is_free_email": false, "mx_accepts_mail": true, "mx_records": ["mx.example.com"], "verification_mode": "power"}Catch-all domain
{ "email": "name@example.com", "status": "catch_all", "overall_score": 75, "username": "name", "domain": "example.com", "is_safe_to_send": false, "is_valid_syntax": true, "is_disposable": false, "is_role_account": false, "can_connect_smtp": true, "has_inbox_full": false, "is_catch_all": true, "is_deliverable": true, "is_disabled": false, "is_spamtrap": false, "is_free_email": false, "mx_accepts_mail": true, "mx_records": ["mx.example.com"], "verification_mode": "power"}Unknown
{ "email": "name@example.com", "status": "unknown", "username": "name", "domain": "example.com", "is_valid_syntax": true, "is_disposable": false, "is_role_account": false, "is_free_email": false, "mx_accepts_mail": true, "mx_records": ["mx.example.com"], "verification_mode": "power"}Response headers
X-Request-IdstringUnique request ID. Include it when contacting support.
X-Credits-Used0 | 1The number of credits charged for this request.
Response fields
Receiving systems expose different information, so these fields are returned according to the signals available for the verification.
emailstringThe email address that was verified.
statusstringVerification status: safe, invalid, disabled, disposable, inbox_full, catch_all, role_account, spamtrap, or unknown.
overall_scorenumberVerification score available for the result.
usernamestringThe part of the email address before the @ sign.
domainstringThe domain used by the email address.
is_safe_to_sendbooleanWhether the available delivery signals support sending.
is_valid_syntaxbooleanWhether the address follows email syntax rules.
mx_accepts_mailbooleanWhether the domain is configured to receive email.
can_connect_smtpbooleanWhether an SMTP connection was established.
has_inbox_fullbooleanWhether the mailbox is full.
is_deliverablebooleanWhether the mailbox was reported as deliverable.
is_disposablebooleanWhether the address belongs to a disposable email service.
is_role_accountbooleanWhether the address represents a role such as support@.
is_catch_allbooleanWhether the server accepts mail for addresses that may not exist.
is_disabledbooleanWhether the mailbox is disabled.
is_spamtrapbooleanWhether the address is identified as a spam trap.
is_free_emailbooleanWhether the address uses a common free email provider.
mx_recordsstring[]Mail-server records returned for the domain.
verification_mode"power"Verification mode used for the request.
Credit usage
Each request reserves one credit. It is charged only when verification produces a conclusive result and is returned automatically when no result is obtained.
Completed1 creditVerification completed and returned a usable, conclusive result.
InconclusiveNo chargeThe receiving server did not expose enough information for a conclusive result.
Failed requestNo chargeThe request was rejected, unavailable, failed, or timed out.
Error responses
Error responses use the same JSON shape. Every possible status is shown directly below.
{ "status": "error", "reason": "invalid_api_key"}| HTTP | reason | Description |
|---|---|---|
400 | invalid_email | The request does not contain a valid email address. |
401 | invalid_api_key | The API key is missing, invalid, or deleted. |
403 | subscription_required | The account does not have an active paid plan. |
405 | method_not_allowed | The endpoint must be called with POST. |
429 | insufficient_credits | The account does not have enough available credits. |
500 | verification_failed | Verification failed unexpectedly. |
502 | verification_unavailable | A verification result could not be obtained. |
503 | service_unavailable | Email verification is temporarily unavailable. |
504 | verification_timeout | Verification did not finish before the timeout. |