Boost delivery rates and minimize sales funnel leaks.
Stop bouncing, start connecting!
Improve deliverability, reduce bounce rates, prevent fraud and minimize funnel leaks: End-to-End Deliverability Check, Disposable Email Detection, Catch-All Testing.
Check the quality of email addresses right at the point of entry with Byteplant's easy-to-use email verification API. Our email verification API automatically detects if an email address is valid or not and helps you to eliminate any disposable, fake and mistyped email addresses.
Byteplant's Email Address Validator identifies all kinds of problematic email addresses and flags them before they harm your email sender reputation. Email Validator uses a multi-layer checking process that runs multiple checks to find out if an email address is really valid and accepts mail.
During the entire process, we never send any email to the recipient address.
Our Real-Time Online Email Verification API can be easily integrated into your sign-up forms, applications and websites or into content management systems (CMS) like WordPress, Drupal, Typo3 or Joomla. We provide detailed code examples in Javascript, PHP, Java, C#, VB.NET - all you have to do is to send a simple HTTP request to our API servers! Each request returns a result code and a detailed description.
To make things as easy as possible for you, we offer ready-made plugins for WordPress, Drupal, jQuery and Node.js for easy out-of-the-box integration.
We guarantee an availability of 99.9%. API requests will typically be answered within 750ms - please see the API server status page for real-time availability information.
API URL | https://api.email-validator.net/api/verify |
Method | GET or POST |
Example API request (GET) | |
More... |
The Bulk API allows you to upload up to 100K email addresses for validation with a single API request.
API URL | https://api.email-validator.net/api/bulk-verify |
Method | POST |
Example API request | |
More... |
When the validation task is finished, we send you an email and (if requested) a HTTP GET request to the NotifyURL (with a 'taskid' parameter in the URL).
<script type="text/javascript" src="path/to/jquery"></script> <script type="text/javascript"> $(document).ready(function() { ... // send API request $.ajax({ url: 'https://api.email-validator.net/api/verify', 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(json.info) != "undefined") { // short summary info = json.info; } else info = ""; if (typeof(json.details) != "undefined") { // detailed description details = json.details; } else details = ""; // resultcode 200, 207, 215 - valid // resultcode 215 - can be retried to update catch-all status // resultcode 114 - greylisting, wait 5min and retry // resultcode 118 - api rate limit, wait 5min and retry // resultcode 3xx/4xx - bad } } }); }); </script>
// build API request $APIUrl = 'https://api.email-validator.net/api/verify'; $Params = array('EmailAddress' => 'email address', 'APIKey' => 'your API key'); $Request = http_build_query($Params, '', '&'); $ctxData = array( 'method'=>"POST", 'header'=>"Connection: close\r\n". "Content-Type: application/x-www-form-urlencoded\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."; // 215 - can be retried to update catch-all status break; case 114: // greylisting, wait 5min and retry break; case 118: // api rate limit, wait 5min and retry break; default: echo "Address is invalid."; echo $result->{'info'}; echo $result->{'details'}; break; } } else { echo $result->{'info'}; }
import java.io.IOException; 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 = "https://api.email-validator.net/api/verify"; 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 215 - can be retried to update catch-all status // 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) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } finally { client.getConnectionManager().shutdown(); }
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 = "https://api.email-validator.net/api/verify"; 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(). Deserialize<APIResult>(resultContent); 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 // 215 - can be retried to update catch-all status break; case 114: // greylisting, wait 5min and retry break; case 118: // api rate limit, wait 5min and retry break; default: // address is invalid // res.info // res.details break; }
Private Sub checkEmail(ByVal Email As String, ByVal APIKey As String) Const APIURL As String = "https://api.email-validator.net/api/verify" 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 ' 215 - can be retried to update catch-all status 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