Block Fake Disposable Email Addresses

Identify and block disposable, one-time, throwaway, temporary email addresses with our Email Address Online Verification API.

Our validation process includes all of the following:

Focus on Real Customers - Detect and Block Fake Accounts

Our Online Email Address Verification API works like a real-time, 24/7 up-to-date blacklist for domains used by disposable email address providers.
We detect services like Mailinator, MintEmail, GuerillaMail, 10 Minute Mail, Fake Inbox and many others more - protecting you against an ever-increasing number of fake email domains.

Live Demo for the Email Address Verification API

A Live Demo for the Email Address Verification API is available here.

How Does It Work?

Integrating our 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 now - all you have to do is to send a simple HTTP or HTTPS (SSL) request to our servers!
Please see the source code examples below, and have a look at the detailed description for each email address verification API result code.
If you have any questions, just send us an email to

<script type="text/javascript" src="path/to/jquery"></script>
<script type="text/javascript">
$(document).ready(function() {
    var EmailAddress = $("input#EmailAddress").val();
    // send API request
        url: '',
        type: 'POST',
        cache: false,
        crossDomain: true,
        data: { EmailAddress: EmailAddress, APIKey: APIKey },
        dataType: 'json',
        success: function (json) {
            // check API result
            if (typeof(json.status) != "undefined") {
                // valid addresses have a {200, 207, 215} result
                // result codes 114 and 118 need a retry
                var statuscode = json.status;
                if (typeof( != "undefined") {
                    // short summary
                    info =;
                } else info = "";
                if (typeof(json.details) != "undefined") {
                    // detailed description
                    details = json.details;
                } else details = "";

// build API request
$APIUrl = '';
$Params = array('EmailAddress' => $Email,
                'APIKey' => '[your API key]');
$Request = @http_build_query($Params);
$ctxData = array(
     'method' => "POST",
     'header' => "Connection: close\r\n".
     "Content-Length: ".strlen($Request)."\r\n",
     'content'=> $Request);
$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:
        case 118:
                // 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]";
String ApiKey = "[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;
    String result = (String) jsonObject.get("status");
    // valid addresses have a {200, 207, 215} result code
    // result codes 114 and 118 need a retry
    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 to validate]";
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:
    case 118:
            // 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
            ' Retry
        Case Else
            ' Address is invalid
      End Select
    End Using
End Sub

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

Standard API

MethodGET or POST
   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
   info (string)short status description
   details (string)full status description
Example API request (using the GET method):<email>&APIKey=<your API key>

Bulk API

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

   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 addresses for 24 hours) or
extensive (retries addresses 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")