The API to Address It All

Verify Addresses

Standardize addresses, fill out missing information, and get metadata and analysis.

  We also process lists ›

City, State, ZIP

Match city & state to ZIP Code and vice-versa, and get coordinates as well.

Autocomplete

Suggest up to 10 addresses while users are typing to make entry easier.

Extract

Find and verify addresses out of arbitrary text like tweets, articles, emails, and more.

Free starter plan »
No credit card required

Address verification where it belongs: everywhere.

Website forms

Don't let your customers ship to bad addresses by accident. Verify their addresses before they leave your site.

Mobile apps

Use our autocomplete API to suggest addresses while users are typing to make entry easier.

Fulfillment, CRM, and more

Integrate with Salesforce®, Microsoft® Office™, GIS, and other systems for accounting, billing, mapping, and shipping.


Try a demo »

A bad address is the end of the road.

Everyone needs validation. Your customers will feel more confident on critical steps like checkout or signup when you verify their address.

Address verification API

Make sure addresses are real, complete, and correct before you depend on them to deliver. Our service is CASS-Certified™.

Easy REST endpoint

No software to install: simply make a GET or POST request to look up one or many addresses.

High performance

This geo-distributed API endpoint is guaranteed to be up and fast by our SLA.

Sign up for free »
https://api.smartystreets.com/street-address
?street=3785+South+Las+Vegs+Av
&city=Los+Vegas
&state=NV
&auth-id=<AUTH_ID>
&auth-token=<AUTH_TOKEN>
resp, err := http.Get("https://api.smartystreets.com/street-address?street=123+Main+52001&auth-id=<AUTH_ID>&auth-token=<AUTH_TOKEN>")
// check err
err = json.NewDecoder(resp.Body).Decode(&addresses)
// check err
var xhr = new XMLHttpRequest();
xhr.onload = function() {
	var addresses = JSON.parse(this.responseText);
};
xhr.open("get", "https://api.smartystreets.com/street-address?street=123+Main+52001&auth-id=<AUTH_ID>&auth-token=<AUTH_TOKEN>", true);
xhr.send();
url = URI.parse('https://api.smartystreets.com/street-address?street=123+Main+52001&auth-id=<AUTH_ID>&auth-token=<AUTH_TOKEN>')
req = Net::HTTP::Get.new(url.to_s)
resp = Net::HTTP.start(url.host, url.port) {|http|
  http.request(req)
}
addresses = JSON.parse resp.body
$req = "https://api.smartystreets.com/street-address?street=123+Main+52001&auth-id=<AUTH_ID>&auth-token=<AUTH_TOKEN>";
$response = file_get_contents($req);
$data = json_decode($response, true);
import json, urllib

response = urllib.urlopen('https://api.smartystreets.com/street-address?street=123+Main+52001&auth-id=<AUTH_ID>&auth-token=<AUTH_TOKEN>')
addresses = json.loads(response.read())
Example Result (JSON)
{
    "input_index": 0,
    "candidate_index": 0,
    "delivery_line_1": "3785 Las Vegas Blvd S",
    "last_line": "Las Vegas NV 89109-4333",
    "delivery_point_barcode": "891094333992",
    "components": {
        "primary_number": "3785",
        "street_name": "Las Vegas",
        "street_postdirection": "S",
        "street_suffix": "Blvd",
        "city_name": "Las Vegas",
        "state_abbreviation": "NV",
        "zipcode": "89109",
        "plus4_code": "4333",
        "delivery_point": "99",
        "delivery_point_check_digit": "2"
    },
    "metadata": {
        "record_type": "H",
        "zip_type": "Standard",
        "county_fips": "32003",
        "county_name": "Clark",
        "carrier_route": "C024",
        "congressional_district": "01",
        "building_default_indicator": "Y",
        "rdi": "Commercial",
        "elot_sequence": "0119",
        "elot_sort": "A",
        "latitude": 36.10363,
        "longitude": -115.17237,
        "precision": "Zip9",
        "time_zone": "Pacific",
        "utc_offset": -8,
        "dst": true
    },
    "analysis": {
        "dpv_match_code": "D",
        "dpv_footnotes": "AAN1",
        "dpv_cmra": "N",
        "dpv_vacant": "N",
        "active": "Y",
        "footnotes": "A#B#H#L#M#"
    }
}

Lots of data with every valid address

  • Input index
  • Candidate index
  • Addressee
  • Delivery Line 1
  • Delivery Line 2
  • Last Line
  • Delivery Point Barcode
  • Urbanization
  • Primary number
  • Street name
  • Street predirection
  • Street postdirection
  • Street suffix
  • Secondary number
  • Secondary designator
  • PMB designator
  • PMB number
  • City
  • State
  • ZIP Code
  • ZIP+4 Code
  • Delivery Point
  • Delivery Point Check Digit
  • Record type
  • County FIPS
  • County name
  • Carrier route
  • Congressional district
  • Building default indicator
  • RDI (residential/commercial)
  • Latitude
  • Longitude
  • Precision
  • Time Zone
  • UTC offset
  • Observes DST
  • DPV™ match code
  • DPV™ footnotes
  • CMRA
  • Vacant
  • Active
  • EWS match
  • Footnotes
  • LACSLink code
  • LACSLink indicator

Automatic data updates every month
No software to download or install

Process address lists right in your browser

Easy as copy+paste

Just copy your address list from a spreadsheet or CSV file and paste it into our list tool.

Results in seconds or minutes

Most lists usually finish in a few seconds, and large lists take just a few minutes.

Your first lists are free »

Match City, State, and ZIP Code

  Auto-fill

Use our ZIP Code API to fill in ZIP Code or city & state when the user is filling out a form.

  Verify

Ensure that a city, state, and ZIP Code combination are valid.

  Geocode

ZIP Code results come with lat/lon and county data.


  You can also process city/state/ZIP lists on our website just by using copy+paste.

Address Autocomplete API

Simple       Fast       Free

Address suggestions guide users as they type and can be used to auto-populate city and state fields before verification happens.

Geolocated

Top matches are in approximately the same city as the user.

Results in less than 1/10 of a second

Our autocomplete API is optimized for speed so that update times are nearly instantaneous.

Free with a subscription

With an active subscription on your account, autocomplete is a free service that does not use your allotted lookups because it only suggests addresses (it does not verify them).

Extract Addresses From Text

Our extraction API finds and verifies addresses within unstructured data like texts, tweets, emails, documents, web pages, and so on.


First, input text is scanned for segments that look like addresses. Then, address candidates are submitted to our CASS-Certified™ API for verification. You get all the data for every valid address, as well as candidates that didn't verify.


Everyone Needs Validation

Get 250 free lookups per month, forever.

No credit card required
Product Features Demo Pricing Help Contact Documentation Articles Company Customers Legal Stuff