Log in

INTRODUCTION

Intro
Overview

API CONCEPTS

  • Responses
  • Error Codes
  • Credits GET

EMAIL VALIDATION

  • Single Validation GET

Introduction

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/ 

Overview

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.

API response objects

Object Description
success Returns the True or False represents api success of error
response This array will give you a complete email details.
email 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
        }
 } 

Error Codes

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.

HTTP/1.1 402 Payment Required :

The HTTP/1.1 402 Payment Required response is received when a resource or service requires payment before it can be accessed.

JSON
  HTTP/1.1 201 Payment Required

                                                {
                                                    "success": false,
                                                    "response": {
                                                        "code": 402,
                                                        "type": "payment_required",
                                                        "error": "Credits Low."
                                                    }
                                                }

HTTP/1.1 401 Unauthorized :

When an API key is invalid, the response you typically get is an HTTP 401 Unauthorized status code.

JSON
  HTTP/1.1 401 Unauthorized

                                                {
                                                    "success": false,
                                                    "response": {
                                                        "code": 401,
                                                        "type": "invalid_access_key",
                                                        "error": "The selected access key is invalid."
                                                    }
                                                }

HTTP/1.1 429 Too Many Requests :

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").

JSON
  HTTP/ 429 Too Many Requests


                                                {
                                                    "success": false,
                                                    "response": {
                                                        "code": 429,
                                                        "type": "too_many_requests",
                                                        "error": "Maximum concurrent calls reached"
                                                    }
                                                }       

GET - Credits

https://api.emails-checker.net/credits?access_key=access_key

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.

QUERY PARAMS
access_key string required
The api access key from emails checker.
RESPONSE PARAMS
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.
LANGUAGE
Example
 
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']
    
JSON
  HTTP/1.1 200 Success

                                                {
                                                    "success": true,
                                                    "response": {
                                                        "credits": "100"
                                                    }
                                                }
    

Single Validation

GEThttps://api.emails-checker.net/check

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.

🚧 IMPORTANT NOTE:

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.

QUERY PARAMS
email string required
The email address you want to verify.

access_key string required
The api access key from emails checker.
RESPONSE PARAMS
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.
LANGUAGE
Example

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']
                                        
JSON
  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
                                                }
                                         }