Emails Checker offers a robust and user-friendly REST-based JSON API that empowers you to verify and validate email addresses with precision at the point of entry. Designed for ease of integration, this API ensures that email addresses submitted through your system meet high standards of accuracy and validity.
By leveraging the Emails Checker API, you can perform comprehensive checks that go beyond basic syntax validation. Our API confirms the existence of email addresses using MX-Records and the Simple Mail Transfer Protocol (SMTP), and it determines whether a mailbox is set up to catch all incoming mail traffic. This detailed validation process helps in filtering out invalid or generic email addresses, thereby reducing bounce rates and enhancing the integrity of your email communications.
To get started with the Emails Checker API, you'll need an API key. Simply create a free account at emails-checker.net to obtain your API key. Once you have it, you can easily integrate our powerful email validation capabilities into your applications, ensuring that your data remains accurate and reliable.
API Endpoint
https://api.emails-checker.net/
The Emails Checker API provides a comprehensive solution for verifying email addresses through multiple layers of validation. Beyond basic syntax checks, the API ensures the validity of email addresses by utilizing MX-Records and the Simple Mail Transfer Protocol (SMTP) to confirm their existence. It also assesses whether a mailbox is configured to catch all incoming traffic, which can help in filtering out generic or catch-all addresses.
The API is integrated with a suite of regularly updated databases that categorize email providers into disposable (e.g., "Mailinator"), free (e.g., "Gmail", "Yahoo"), and individual domains. This categorization facilitates efficient separation and management of various types of email addresses, enhancing the accuracy and reliability of email validation processes.
Object | Description |
---|---|
success | Returns the True or False represents api success of error |
response | This array will give you a complete email details. |
Contains the exact email address requested. | |
result | Return 4 results deliverable, undeliverable, risky, unknown in this opeion only *deliverable* is safe to send emails. |
syntax | Returns true or false depending on whether email syntax is valid or not |
mx_records | Returns true or false depending on whether or not MX-Records for the requested domain could be found. |
smtp_code | Returns smtp result codes you can check all about smtp codes at here |
catch_all | Returns true or false depending on whether or not the requested email address is found to be part of a catch-all mailbox. |
disposable | Returns true or false depending on whether or not the requested email address is a disposable email address. (e.g. "[email protected]") |
description | This will give you a reason of your email delivery. |
user | Returns the local part of the request email address. (e.g. "jarvis" in "[email protected]") |
domain | Returns the domain of the requested email address. (e.g. "company.com" in "[email protected]") |
free_email | Returns true or false if the email provider is free for all or not. eg gmail.com, yahoo.com are free and other like emails-checker.net is private domain so it will return false. |
role | Returns true or false depending on whether or not the requested email address is a role email address. (e.g. "[email protected]", "[email protected]") |
Result example :
{
"success": true,
"response": {
"email": "[email protected]",
"result": "deliverable",
"syntax": false,
"mx_records": true,
"smtp_code": "250",
"catch_all": false,
"disposable": false,
"description": "Valid Email Address.",
"user": "support",
"domain": "emails-checker.net",
"free_email": true,
"role": true
}
}
Field | Type | Description |
---|---|---|
404 | [404_not_found] | User requested a resource that does not exist. |
101 | [missing_access_key] | User did not supply an Access Key. |
103 | [invalid_access_key] | User entered an invalid Access Key. |
103 | [invalid_api_function] | User requested a non-existent API Function. |
104 | [usage_limit_reached] | User has reached or exceeded his subscription plan's monthly API Request Allowance. |
210 | [no_email_address_supplied] | User did not provide an email address. |
105 | [https_access_restricted] | The user's current Subscription Plan does not support HTTPS Encryption. |
106 | [rate_limit_reached] | User has exceeded the maximum allowed rate limitation and is referred to as the "Rate Limits" section of the API Documentation. |
102 | [inactive_user] | The user's account is not active. Users will be prompted to get in touch with Customer Support. |
408 | [timeout] | An unexpected timeout issue occurred. |
The HTTP/1.1 402 Payment Required response is received when a resource or service requires payment before it can be accessed.
HTTP/1.1 201 Payment Required
{
"success": false,
"response": {
"code": 402,
"type": "payment_required",
"error": "Credits Low."
}
}
When an API key is invalid, the response you typically get is an HTTP 401 Unauthorized status code.
HTTP/1.1 401 Unauthorized
{
"success": false,
"response": {
"code": 401,
"type": "invalid_access_key",
"error": "The selected access key is invalid."
}
}
The HTTP 429 Too Many Requests response status code indicates that the user has sent too many requests in a given amount of time ("rate limiting").
HTTP/ 429 Too Many Requests
{
"success": false,
"response": {
"code": 429,
"type": "too_many_requests",
"error": "Maximum concurrent calls reached"
}
}
The /credits endpoint allows you to retrieve the current available balance of your account. This endpoint provides a simple and straightforward way to check how many credits you have remaining, which can be useful for managing your usage and ensuring you have sufficient credits for your ongoing email verification needs.
PARAMS | DESCRIPTION |
---|---|
success | If your request is success you will get true else false with http code other than 200 depending on error. |
response | This array will give you all necessary details about your request. |
credits | This id will return your current available Credits. |
HttpURLConnection conn = (HttpURLConnection) new URL(
"https://api.emails-checker.net/credits?access_key=" + accessKey
).openConnection();
conn.setRequestMethod("GET");
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
String response = new BufferedReader(
new InputStreamReader(conn.getInputStream())
).lines().reduce("", String::concat);
return new JSONObject(response).getJSONObject("response");
}
$ composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->get('https://api.emails-checker.net/credits', [
'query' => ['access_key' => $accessKey]
]);
echo json_decode($response->getBody(), true);
$ npm install axios
const axios = require('axios');
const response = await axios.get('https://api.emails-checker.net/credits', {
params: { access_key: accessKey }
});
return response.data.response;
$ pip install requests
url = 'https://api.emails-checker.net/credits'
response = requests.get(url, params={'access_key': access_key})
data = response.json()
return data['response']
Perform a single email validation request.
The /check endpoint helps you verify if an email address is valid. When you use this endpoint, it performs a series of checks to make sure the email address is formatted correctly, actually exists, and can receive emails. It can be integrated in any of your desired applications and scripts.
If you are going to use this API within a sign-up form, you must consider Deliverable, Accept-all and Unknown statuses as valid, so you do not miss out on any sign-ups.
PARAMS | DESCRIPTION |
---|---|
success | If your request is success you will get true else false with http code other than 200 depending on error. |
response | This array will give you all necessary details about your request. Check responses page for details of the response parameters. |
HttpURLConnection conn = (HttpURLConnection) new URL(
"https://api.emails-checker.net/check?access_key=" + accessKey + "&email=" + email
).openConnection();
conn.setRequestMethod("GET");
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
String response = new BufferedReader(
new InputStreamReader(conn.getInputStream())
).lines().reduce("", String::concat);
return new JSONObject(response).getJSONObject("response");
}
$ composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->get('https://api.emails-checker.net/check', [
'query' => [
'access_key' => $accessKey,
'email' => $email,
]
]);
echo json_decode($response->getBody(), true);
$ npm install axios
const axios = require('axios');
const response = await axios.get('https://api.emails-checker.net/check', {
params: {
access_key: accessKey,
email: email,
}
});
return response.data.response;
$ pip install requests
url = 'https://api.emails-checker.net/check'
response = requests.get(url, params={'access_key': access_key,'email': email})
data = response.json()
return data['response']
HTTP/1.1 200 Success
{
"success": true,
"response": {
"email": "[email protected]",
"result": "deliverable",
"syntax": false,
"mx_records": true,
"smtp_code": "250",
"catch_all": false,
"disposable": false,
"description": "Valid Email Address.",
"user": "support",
"domain": "emails-checker.net",
"free_email": true,
"role": true
}
}