Email Verifier - Realtime Online Verification API

To capture good leads, you need to verify email address information right at the point of entry. You can integrate the Byteplant Realtime Online Email Address Validation API directly into your sign-up forms. This allows your website visitors to correct errors instantly, and only valid email addresses will be accepted.

How Does It Work?

Integrating our Real-Time Online Email Validation API into the Javascript, PHP, Java, C#, VB.NET code of your website or application or into content management systems (CMS) like Drupal, Typo3, WordPress or Joomla is very easy - all you have to do is to send a simple HTTP or HTTPS (SSL) request to our servers! The request returns a three digit result code and a description (list of email address verification API result codes).

API Keys

Before you start, please request a free trial API key first. Your API key will be delivered by email within minutes. Once you have received your API key you can test your API key here.

If you want to verify more than 100 email addresses, please have a look at our pay-as-you-go pricing model and the subscription plans we offer.

Wordpress, jQuery, Node.js Plugins

Easy to install & use - these Email Validator API plugins are available already:

API Integration: Code Examples

<script type="text/javascript" src="path/to/jquery"></script>
<script type="text/javascript">
$(document).ready(function() {
        url: '',
        type: 'POST',
        cache: false,
        crossDomain: true,
        data: { EmailAddress: 'email address', APIKey: 'your API key' },
        dataType: 'json',
        success: function (json) {
            // check API result
            if (typeof(json.status) != "undefined") {
                var resultcode = json.status;
                if (typeof( != "undefined") {
                    // short summary
                    info =;
                } else info = "";
                if (typeof(json.details) != "undefined") {
                    // detailed description
                    details = json.details;
                } else details = "";
                // resultcode 200, 207, 215 - valid
                // resultcode 114 - greylisting, wait 5min and retry
                // resultcode 118 - api rate limit, wait 5min and retry
                // resultcode 3xx/4xx - bad

// build API request
$APIUrl = '';
$Params = array('EmailAddress' => 'email address',
                'APIKey' => 'your API key');
$Request = http_build_query($Params, '', '&');
$ctxData = array(
    'header'=>"Connection: close\r\n".
    "Content-Type: application/x-www-form-urlencoded\r\n".
    "Content-Length: ".strlen($Request)."\r\n",
$ctx = stream_context_create(array('http' => $ctxData));

// send API request
$result = json_decode(file_get_contents(
    $APIUrl, false, $ctx));

// check API result
if ($result && $result->{'status'} > 0) {
    switch ($result->{'status'}) {
        // valid addresses have a {200, 207, 215} result code
        // result codes 114 and 118 need a retry
        case 200:
        case 207:
        case 215:
                echo "Address is valid.";
        case 114:
                // greylisting, wait 5min and retry
        case 118:
                // api rate limit, wait 5min and retry
                echo "Address is invalid.";
                echo $result->{'info'};
                echo $result->{'details'};
} else {
    echo $result->{'info'};

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
HttpClient client = new DefaultHttpClient();
String Email = "email address";
String APIKey = "your API key";
String APIURL = "";
try {
    HttpPost request = new HttpPost(APIURL);
    List <NameValuePair> Input = new ArrayList<NameValuePair>();
    Input.add(new BasicNameValuePair("EmailAddress", Email));
    Input.add(new BasicNameValuePair("APIKey", APIKey));
    request.setEntity(new UrlEncodedFormEntity(Input));
    HttpResponse response = client.execute(request);
    HttpEntity entity = response.getEntity();
    String Output = EntityUtils.toString(entity, "UTF-8");
    JSONParser parser = new JSONParser();
    Object obj = parser.parse(Output);
    JSONObject jsonObject = (JSONObject) obj;
    Long result = (Long) jsonObject.get("status");
    // result 200, 207, 215 - valid
    // result 114 - greylisting, wait 5min and retry
    // result 118 - api rate limit, wait 5min and retry
    // result 3xx/4xx - bad
    String info = (String) jsonObject.get("info");
    String details = (String) jsonObject.get("details");
} catch (IOException e) {
} catch (ParseException e) {
} finally {

// C# .NET 4.5
using System;
using System.Collections.Generic;
using System.Net.Http;

private class APIResult
    public int status { get; set; }
    public String info { get; set; }
    public String details { get; set; }

const String APIURL = "";
HttpClient client = new HttpClient();
String Email = "email address";
String APIKey = "your API key";

var postData = new List<KeyValuePair<string, string>>();
postData.Add(new KeyValuePair<string, string>("EmailAddress", Email));
postData.Add(new KeyValuePair<string, string>("APIKey", APIKey));

HttpContent content = new FormUrlEncodedContent(postData);

HttpResponseMessage result = client.PostAsync(APIURL, content).Result;
string resultContent = result.Content.ReadAsStringAsync().Result;

APIResult res = new System.Web.Script.Serialization.JavaScriptSerializer().

switch (res.status) {
    // valid addresses have a {200, 207, 215} result code
    // result codes 114 and 118 need a retry
    case 200:
    case 207:
    case 215:
        // address is valid
    case 114:
        // greylisting, wait 5min and retry
    case 118:
        // api rate limit, wait 5min and retry
        // address is invalid
        // res.details

' VB.NET 4.5
Private Sub checkEmail(ByVal Email As String, ByVal APIKey As String)
    Const APIURL As String = ""
    Using client As New Net.WebClient
      Dim postData As New Specialized.NameValueCollection
      postData.Add("EmailAddress", Email)
      postData.Add("APIKey", APIKey)
      Dim reply = client.UploadValues(APIURL, "POST", postData)
      Dim data As String = (New System.Text.UTF8Encoding).GetString(reply)
      Dim res = New System.Web.Script.Serialization.JavaScriptSerializer().
        Deserialize(Of APIResult)(data)
      Select Case (res.status)
        Case 200, 207, 215
            ' address is valid
        Case 114, 118
            ' greylisting, wait 5min and retry
        Case 118
            ' api rate limit, wait 5min and retry
        Case Else
            ' address is invalid
      End Select
    End Using
End Sub

Private Class APIResult
    Public status As Integer
    Public info As String
    Public details As String
End Class

Standard API

API URLhttp[s]://
MethodGET or POST
Example API request (using the GET method): key
Input Parameters
   EmailAddress (string)email address to validate
   APIKey (string)your API key
   Timeout (int)timeout in seconds (default 10s, min 5s, max 300s)
API Result (JSON)
   status (int)API result code
  '401', '118' and '119' status codes indicate API errors:
  '401' -> info: 'Email address missing'
  '118' -> info: 'Rate Limit Exceeded'
  '119' -> info: 'API Key Invalid or Depleted'
   info (string)short status description
   details (string)full status description
   freemail (boolean)indicates freemail addresses (Gmail, Yahoo, Outlook/Hotmail/Live, AOL, ...) [true | false]

Bulk API

The Bulk API allows you to upload up to 100K email addresses for validation with a single API request.

Input Parameters
   EmailAddress (string)list of email addresses to validate
(separated by '\n')
   APIKey (string)your API key
   TaskName (string)name for this validation task [optional]
   ValidationMode (string)express (retries unavailable servers for 2 hours) or
extensive (retries unavailable servers for 72 hours)
   NotifyEmail (string)email address to receive notifications for this task [optional, default is the email address of the API account]
   NotifyURL (string)URL to receive a completion notification for this task [optional]
API Result (JSON)
   status (int)API result code (121 or 119)
   info (string)validation task id
(if status is 121/"Task Accepted")

Keep in Touch With Your Potential Customers

Keep your email list clean and focus on real people - verifying email addresses in real time is easy to implement and has a lot of benefits for your business. The best way to capture good leads is to verify contact information right at the point of entry.

Keep Your List Clean

A recent Return Path study shows that bad email sender reputation, and not content, is responsible in 83% of all cases where email does not reach the recipient. Even top brands have to worry about their email reputation - don't wait until you have been blacklisted, and be sure to test our email list cleaning service.