Byteplant Logo

Validate & Correct Addresses. Boost checkout conversion ↑ Stop wasting money on return mail ↓

Address verification, correction, auto-complete & geocoding for 240 countries world-wide.

Online APIs for Address Validation, Correction and Autocomplete

Integrate our Address-Validator, Address-Autocomplete or Geocoding APIs directly into your workflow or platform.

Validate, Geocode and Autocomplete addresses globally in both Real-time or in Bulk.

Our APIs help you to

How Does the Address Validation API Work?

Integrating our Global Address Verification API into your website, eCommerce solution, CRM system or content management system (CMS) is very easy - code examples in Javascript, PHP, Java, C#, VB.NET are available below.

For each address, we provide detailed information like:

Address-Validator - Available 24/7/365

We guarantee an availability of 99.9%. API requests will typically be answered within 125ms - please see the API server status page for real-time availability information.

Address-Validator API Demo

Try Address-Validator Free
No Credit Card Required.

Every moment spent on manual tasks is a missed opportunity for growth and more customer engagement.

That's why we offer 100 free address validations for you to experience the speed and accuracy of real-time, fully automated address validation.

You need a Byteplant account to test our services.
Please log in or register for a free trial.

Login Free Trial
Address Verification API Use Cases

An address verification API can serve many purposes across multiple industries. Regardless of which point the API is implemented, it can begin bringing benefits immediately. Some of the common uses of the address verification API are:

eCommerce & Online Retail

When it comes to e-commerce, failed deliveries not only cost money but also damage customer trust. Integrating address verification directly into the checkout process allows online retailers to reduce errors.

When customers receive instant correction suggestions, the checkout becomes more convenient. The result is fewer returns, lower shipping costs, and higher conversion rates.

CRM & ERP Data Quality

Customer relationship management (CRM) and enterprise resource planning (ERP) systems must run on high-quality data. Inaccurate or outdated customer addresses don’t allow them to run proper analytics. As a result, the company can miss an important opportunity.

An address verification API allows you to standardize each new entry. This creates a reliable foundation for sales and marketing teams while helping customer support teams build long-lasting relationships.

Direct Mail & Marketing

Direct mail campaigns can be a significant investment. Unfortunately, this investment is always wasted if the mailing list contains invalid addresses.

An address verification API helps marketing teams validate lists before campaigns launch, so the mail reaches the target audience. The address validator can help remove undeliverable entries and save money on shipping. Such assistance can increase the campaign’s ROI.

Logistics & Supply Chain

Incorrect addresses can cause delivery delays, which, in turn, lead to customer dissatisfaction. The geocoding feature allows the address verification API to convert validated addresses into geographic coordinates.

Precise coordinates help the company optimize delivery routes and, as a result, improve delivery performance. Such optimization can mean a significant competitive advantage, especially for companies that engage in global operations.

Compliance & International Shipping

Even a small error in address formatting can result in customs delays or additional handling fees. In the worst case, the shipment can be rejected entirely.

An address verification API allows addresses to meet postal standards worldwide. This reduces the risk of compliance issues and improves the delivery timeline.

Address Verification API Features

The address verification API has multiple useful features that make your organization’s work possible. They include:

Global Coverage

The Address Validator API supports more than 240 countries and territories, so you can verify and correct addresses worldwide. This allows both global and local companies to take full advantage of the multiple product features.

Real-Time Validation

Real-time error detection is the feature that allows the tool to instantly flag mistakes while suggesting corrections when the user enters data. This way, invalid or incomplete addresses never enter your system. This is much more time-efficient than trying to clean up the mailing list after the fact.

Postal Standard Formatting

Global companies often face the issue of each country having its own address formatting standards. The API automatically reformats addresses to comply with local postal requirements. Thanks to the global coverage, such reformatting is available for the majority of countries.

Address Auto-Complete

Predictive address suggestions speed up data entry for both customers and employees. While it may not seem important at first, each extra keystroke can cause the potential customer to bounce. Such process optimization shortens checkout times and reduces the abandoned cart rate.

Geocoding Support

In addition to validation, the API provides geographic coordinates for each verified address. This functionality doesn’t just help with precise mapping. It also assists with location-based analytics, which are particularly valuable for supply chain operations.

Bulk Verification

For companies managing large datasets, the API supports bulk verification of up to 100,000 addresses in a single request. This speeds up the cleanup of existing databases, which would otherwise take days or even weeks.

High Availability

Address Validator API guarantees 99.9% uptime with response times averaging under 125 milliseconds.

Developer-Friendly

The API follows REST architecture and includes sample code in popular programming languages such as Java, PHP, C#, and Python. This makes integration straightforward and reduces deployment time.

Address-Validator APIs Documentation

API Description
jQuery
PHP
Java
C#
VB.NET

Address Validation API

The Address Validation API returns the deliverability status and detailed information for the address that is provided as input.
API URL https://api.address-validator.net/api/verify
Method GET or POST
Example API request (GET)
More...

Address Bulk Verification API

The Address Bulk Verification API allows you to upload up to 100K addresses for validation with a single API request. The Bulk API is asynchronous - you send a request and receive a callback by email (NotifyEmail) or HTTP (NotifyURL) when processing is complete.
API URL https://api.address-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).

Address Auto-Complete API

The Address Auto-Complete API returns suggestions matching the freeform address that is provided as input query.
API URL https://api.address-validator.net/api/search
Method GET or POST
Example API request (GET)
More...

Address Retrieval API

The Address Retrieval API returns detailed information for an address id provided as suggestion from the Address Auto-Complete API.
API URL https://api.address-validator.net/api/fetch
Method GET or POST
Input Parameters
More...
jQuery
<script type="text/javascript" href="/path/to/jquery"></script>
<script type="text/javascript">
$(document).ready(function() {
    ...
    // send API request
    Locale = 'en';
    $.ajax({
        url: 'https://api.address-validator.net/api/verify',
        type: 'POST',
        data: { StreetAddress: StreetAddress,
                City: City,
                PostalCode: PostalCode,
                State: State,
                CountryCode: CountryCode,
                Locale: Locale,
                APIKey: 'your API key'},
        dataType: 'json',
        success: function (json) {
            // check API result
            if (typeof(json.status) != "undefined") {
                status = json.status;
                formattedaddress = json.formattedaddress;
            }
        }
    });
    ...
});
</script>
                                
PHP
...
// build API request
$APIUrl = 'https://api.address-validator.net/api/verify';
$Params = array('StreetAddress' => $StreetAddress,
                'City' => $City,
                'PostalCode' => $PostalCode,
                'State' => $State,
                'CountryCode' => $CountryCode,
                'Locale' => $Locale,
                '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'} == 'VALID') {
    $formattedaddress = $result->{'formattedaddress'};
} else {
    echo $result->{'info'};
}
...
                                
Java
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 StreetAddress = "...";
String City = "...";
String PostalCode = "...";
String State = "...";
String CountryCode = "US";
String Locale = "en";
String APIKey = "your API key";
String APIURL = "https://api.address-validator.net/api/verify";
try {
    HttpPost request = new HttpPost(APIURL);
    List <NameValuePair> Input = new ArrayList<NameValuePair>();
    Input.add(new BasicNameValuePair("StreetAddress", StreetAddress));
    Input.add(new BasicNameValuePair("City", City));
    Input.add(new BasicNameValuePair("PostalCode", PostalCode));
    Input.add(new BasicNameValuePair("State", State));
    Input.add(new BasicNameValuePair("CountryCode", CountryCode));
    Input.add(new BasicNameValuePair("Locale", Locale));
    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");
    if (result.equalsIgnoreCase("VALID")) {
        String formattedaddress = (String) jsonObject.get("formattedaddress");
    }
    ...
} catch (IOException e) {
    e.printStackTrace();
} catch (ParseException e) {
    e.printStackTrace();
} finally {
    client.getConnectionManager().shutdown();
}
...
                                
C# .NET 4.5
// C# .NET 4.5
using System;
using System.Collections.Generic;
using System.Net.Http;
...

private class APIResult
{
    public String status { get; set; }
    public String formattedaddress { get; set; }
}

const String APIURL = "https://api.address-validator.net/api/verify";
HttpClient client = new HttpClient();
String StreetAddress = "...";
String City = "...";
String PostalCode = "...";
String State = "...";
String CountryCode = "US";
String Locale = "en";
String APIKey = "your API key";

var postData = new List<KeyValuePair<string, string>>();
postData.Add(new KeyValuePair<string, string>("StreetAddress", StreetAddress));
postData.Add(new KeyValuePair<string, string>("City", City));
postData.Add(new KeyValuePair<string, string>("PostalCode", PostalCode));
postData.Add(new KeyValuePair<string, string>("State", State));
postData.Add(new KeyValuePair<string, string>("CountryCode", CountryCode));
postData.Add(new KeyValuePair<string, string>("Locale", Locale));
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);

if (res.status.Equals("VALID")) {
    String formattedaddress = res.formattedaddress;
}
...
                                
VB.NET 4.5
' VB.NET 4.5
...
Private Sub checkAddress(ByVal StreetAddress As String,
                       ByVal City As String,
                       ByVal PostalCode As String,
                       ByVal State As String,
                       ByVal CountryCode As String,
                       ByVal Locale As String,
                       ByVal APIKey As String)
    Const APIURL As String = "https://api.address-validator.net/api/verify"
    Using client As New Net.WebClient
      Dim postData As New Specialized.NameValueCollection
      postData.Add("StreetAddress", StreetAddress)
      postData.Add("City", City)
      postData.Add("PostalCode", PostalCode)
      postData.Add("State", State)
      postData.Add("CountryCode", CountryCode)
      postData.Add("Locale", Locale)
      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)
      If res.status.Equals("VALID") Then
        Dim formattedaddress As String = res.formattedaddress
      End If
    End Using
End Sub

Private Class APIResult
    Public status As String
    Public formattedaddress As String
End Class
...
                                

Address Verification API FAQ

How accurate is your address verification?

We use global postal databases combined with advanced algorithms to deliver highly accurate results. When customers from all over the world enter inaccurate information, the system recognizes it immediately.

Does the API support non-Latin characters?

Yes, the API supports several non-Latin character sets, such as Cyrillic, Chinese, Japanese, and Arabic. This makes the tool highly useful for businesses that operate in multilingual markets or plan to expand internationally.

Can I use the API without coding experience?

Yes. While we make it easy for experienced developers to integrate the API directly into websites or CRM systems, we also provide an easy-to-use no-code bulk upload tool. With this tool, even a non-technical user can implement the address validator API within minutes.

What’s the difference between validation, correction, and geocoding?

Validation checks whether an address exist. Correction automatically fixes typos, standardizes formatting, and formats data to match postal standards. Meanwhile, geocoding adds latitude and longitude to an address.

Is the API GDPR-compliant?

Yes. Our system complies with GDPR and other global data privacy laws. We retain data according to the requirements and protect sensitive information from cyber criminals.

More FAQs ...

Client Reviews