Log in

INTRODUCTION

Intro
Overview

API CONCEPTS

  • Responses
  • Error Codes
  • Credits GET
  • Server Time 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/time 

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

The API uses standard HTTP status codes to indicate the success or failure of a request. All error responses include a JSON body with details about the error.

HTTP Status Error Type Description
400 bad_request The request was malformed or missing required parameters. Verify that all required query parameters are provided and correctly formatted.
401 unauthorized Authentication failed. The provided API key is missing, invalid, or has been revoked. Ensure you are using a valid access key from your dashboard.
402 payment_required Your account has insufficient credits to complete this request. Upgrade your plan or purchase additional credits to continue using the API.
403 forbidden Your account is inactive or suspended. Contact support to resolve account status issues.
404 not_found The requested endpoint or resource does not exist. Verify the API endpoint URL and ensure it matches the documentation.
422 unprocessable_entity The request was well-formed but contains semantically invalid data. For example, the email address parameter is missing or empty.
429 too_many_requests Rate limit exceeded. You have sent too many requests within the allowed time window. Refer to the Rate Limits section for details on permitted request rates.
500 internal_server_error An unexpected error occurred on the server. If this error persists, contact support with the request details for assistance.

400 Bad Request

Returned when the request is missing required parameters or contains invalid data.

JSON
  HTTP/1.1 400 Bad Request

                                                {
                                                    "success": false,
                                                    "response": {
                                                        "code": 400,
                                                        "type": "bad_request",
                                                        "error": "Missing required parameter: email"
                                                    }
                                                }

401 Unauthorized

Returned when the API key is missing, invalid, or revoked. Include a valid access_key parameter in your request.

JSON
  HTTP/1.1 401 Unauthorized

                                                {
                                                    "success": false,
                                                    "response": {
                                                        "code": 401,
                                                        "type": "unauthorized",
                                                        "error": "Invalid or missing API key."
                                                    }
                                                }

402 Payment Required

Returned when your account has insufficient credits. Upgrade your plan or purchase additional credits to continue.

JSON
  HTTP/1.1 402 Payment Required

                                                {
                                                    "success": false,
                                                    "response": {
                                                        "code": 402,
                                                        "type": "payment_required",
                                                        "error": "Insufficient credits. Please upgrade your plan."
                                                    }
                                                }

429 Too Many Requests

Returned when you exceed the rate limit. Implement exponential backoff and retry after the specified interval.

JSON
  HTTP/1.1 429 Too Many Requests

                                                {
                                                    "success": false,
                                                    "response": {
                                                        "code": 429,
                                                        "type": "too_many_requests",
                                                        "error": "Rate limit exceeded. Please retry after 60 seconds."
                                                    }
                                                }

Credits

GET 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"
                                                    }
                                                }
    

Server Time

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

The /time endpoint returns the current server time. This endpoint is useful for verifying that your API key is valid and that the service is operational. It can also be used to synchronize your application's clock with the server.

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.
time The current server time in ISO 8601 format.
LANGUAGE
Example
 
HttpURLConnection conn = (HttpURLConnection) new URL(
    "https://api.emails-checker.net/time?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/time', [
    '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/time', {
    params: { access_key: accessKey }
});

return response.data.response;    
    
$ pip install requests

url = 'https://api.emails-checker.net/time'
response = requests.get(url, params={'access_key': access_key})
data = response.json()
return data['response']
    
JSON
  HTTP/1.1 200 Success

                                                {
                                                    "success": true,
                                                    "response": {
                                                        "time": "2024-01-15T10:30:00+00:00"
                                                    }
                                                }
    

Single Validation

GET https://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
                                                }
                                         }