Verimail provides a REST based JSON API in the form of a stateless endpoint that any program or web browser can call by sending a standard HTTP request. Verimail will respond with a standard HTTP response carrying a JSON payload. This documentation describes the endpoint, its input/output parameters and authentication methods.
Verimail supports two authentication methods, key based and domain based.
Verimail will respond to requests carrying the HTTP parameter key
. The key parameter must contain a 32-character chain that registered users can copy from their control panel.
https://api.verimail.io/v2/verify?key=712E59151C8B4D1DB593D43678ABBF47
Verimail will allow all requests coming from authorized domains. You can authorize your domain on your control panel.
Verimail uses standard HTTP status codes to indicate the success or failure of a request.
Successful requests will receive a 200
response code, while responses with a 40x
or 500
indicate a failure.
400 Bad request |
Returned if a required input parameter is missing. |
401 Unauthorized |
Returned if the request is coming from an unauthorized domain and the key parameter is missing or not valid. |
403 Forbiden |
Indicates that the key or domain used is inactive. This usually happens if a usage quota is exceeded or a payment is overdue. |
500 Server error |
Internal server error. Indicates a failure on Verimail servers. Although these are rare, if you get one please report it here |
/v2/verify
endpoint takes an email address as input, does a full verification, and tells you if emails are deliverable to this address or not. Verimail's full verification include:
It will also detect typos for most free email providers (like gmail, yahoo, outlook) and suggest a correction.
https://api.verimail.io/v2/verify
GET
POST
key String |
Authentication key (optional if sent from an authorized domain) |
email String |
An email address |
status String |
Status indicating the success or failure of the request execution.
Values: success , error |
email String |
The email address provided as input |
result String |
Verification result. Can be either of: deliverable , inbox_full , hardbounce , softbounce , catch_all , disposable , undeliverable
Read more about verifications results here. |
email_valid true/false |
True if emails are deliverable to this address. |
user String |
The user part of the email address provided |
domain String |
The domain part of the email address provided |
domain_valid true/false |
True if the domain has valid MX records. |
did_you_mean String |
If a common typo is detected, a correction is suggested here. |
https://api.verimail.io/v2/verify?email=support@verimail.io&key=712E59151C8B4D1DB593D43678ABBF47
{
"status": "success",
"email": "support@verimail.io",
"result": "deliverable",
"email_valid": true,
"user": "support",
"domain": "verimail.io",
"domain_valid": true,
"did_you_mean": ""
}