API Documentation

INTRODUCTION

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.


AUTHENTICATION

Verimail API uses API keys to authenticate requests. You can view and manage your API key in your control panel.

Requests carrying your API key will deduct 1 credit from your balance, so be sure to keep your key secure! Do not share it in publicly accessible areas such as GitHub or client-side code.

API requests without a valid API key will fail.

Example
https://api.verimail.io/v3/verify?key=712E59151C8B4D1DB593D43678ABBF47

ERRORS

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 key parameter is missing or not valid.
403
Forbiden
Indicates that the key 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

VERIFY

/v3/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:

  • Syntax verification
  • Domain's MX records verifications
  • Full SMTP verification on the Email Service Provider's servers
  • Disposable or temporary address detection
  • Catch-all domains detection

It will also detect typos for most free email providers (like gmail, yahoo, outlook) and suggest a correction.

URL
https://api.verimail.io/v3/verify
Method GET POST
Input
key
String
Authentication key
email
String
An email address
Output
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.
deliverable
true/false
True if this address is currently accepting emails. Careful: also true for catch_all and disposable addresses
user
String
The user part of the email address provided
domain
String
The domain part of the email address provided
did_you_mean
String
If a common typo is detected, a correction is suggested here.
Request
https://api.verimail.io/v3/verify?email=support@verimail.io&key=712E59151C8B4D1DB593D43678ABBF47
Response
{
  "status": "success",
  "email": "support@verimail.io",
  "result": "deliverable",
  "deliverable": true,
  "user": "support",
  "domain": "verimail.io",
  "did_you_mean": ""
}