Skip to main content
Pinpoint - Smarty's free user conference - October 22nd and 23rd Register now (opens in new tab)
Smarty

International Street Address API - reference

This page describes how to verify an international address using Smarty's international address verification API. (View current pricing.)

Contents

  1. HTTP request
    1. URL composition
    2. Request methods
    3. Headers
    4. Input fields
  2. HTTP response
    1. Status codes and results
    2. Output field definitions
    3. How to interpret the raw data output
  3. Supplementary material
    1. Full examples
    2. Supported countries
    3. SSL/TLS information
    4. Try the API

HTTP request: URL composition

Proper URL construction is required for all API requests. Here is an example URL:

https://international-street.api.smarty.com/verify?auth-id=123&auth-token=abc

URL components:

  • Scheme: https
    (Required; non-secure http requests are not supported.)
  • Hostname: international-street.api.smarty.com
  • Path: /verify
  • Query string: ?auth-id=123&auth-token=abc
    Note #1: Additional query string parameters are required; consult the next section.

For additional information, please read our article about URL components.

HTTP request: Supported methods/verbs

HTTP requests can be categorized according to their HTTP method. Most HTTP requests are defined using the GET method. We call these "get requests." Other common methods are PUT, POST, and DELETE.

The following methods are supported by this API:

To send one (and only one) address to our API, simply encode the input field names from the table below along with the corresponding input values as query string parameters in the URL of your request. Here's an example that uses the address1, address2, locality, administrative_area, postal_code, and country fields:

curl -v 'https://international-street.api.smarty.com/verify?
	auth-id=YOUR+AUTH-ID+HERE&
	auth-token=YOUR+AUTH-TOKEN+HERE&

	address1=Rua+Padre+Antonio+D%27Angelo+121&
	address2=Casa+Verde&
	locality=Sao+Paulo&
	administrative_area=SP&
	postal_code=02516-040&
	country=Brazil'

Please note that all query string parameter values must be url-encoded (spaces become + or %20, for example) to ensure that the data is transferred correctly. A common mistake we see is a non-encoded pound sign (#) like in an apartment number (# 409). This character, when properly encoded in a URL, becomes %23. When not encoded this character functions as the fragment identifier, which is ignored by our API servers.

HTTP request: Headers

You must include the following required HTTP headers in all requests:

HostThe Host request header field specifies the internet host and port number of the resource being requestedHost: international-street.api.smarty.com

Input fields

The following input fields are required:

  • country
  • freeform OR address1

If freeform is used, it should contain the entire address minus the country.

Example
Country: Brazil
Freeform: Rua Padre Antonio D'Angelo 121 Sao Paulo 02516-040 SP

If address1 is used, address1 can contain the entire address, however, the ideal combination of input fields, which has the best chance of finding a valid address match, is as follows:

country + address1 + locality + administrative_area + postal_code

In this case, the address1 field should contain the thoroughfare (street) name and the premise number.

Example
Country: Brazil
Address1: Rua Padre Antonio D'Angelo 121
Locality: Sao Paulo 02516-040
Administrative Area: SP
Postal Code: 02516-040

NameTypeMax charactersDescription
input_idstring36A unique identifier generated by you for this address for use within your application; this field will be copied into the output.
(e.g., 123456)
countrystring64(required) This must be entered with every address. Country Name or ISO classification (ISO-3, ISO-2 or ISO-N). Address validation will fail if this is missing.
(e.g., Brazil, BRA, BR, or 076)
geocodestring4Set to true to enable geocoding (disabled by default; requires an additional geocoding subscription). See the examples section for, well, an example.
languagestring6

When not set, the output language will match the language of the input values. When set to native, the results will always be in the language of the output country whenever possible. When set to latin, the results will always be provided using a Latin character set basic ASCII, accents and other diacritics removed. The following character sets can be transliterated, into either native or Latin characters, for the specified countries:

  • Cyrillic (Russia)
  • Greek (Greece)
  • Hebrew (Israel)
  • Kanji (Japan)
  • Simplified Chinese (China)
  • Arabic (United Arab Emirates)
  • Thai (Thailand)
  • Hangul (South Korea)
freeformstring512The entire address in a single field (without the country). If freeform is specified, address1-4 input fields will be ignored.
(e.g., Via Santa Maria di Costantinopoli, 72 46030-Tabellano MN)
address1string64The first address line
(e.g., Calle Proc. San Sebastián, 15)
address2string64The second address line (if any)
address3string64The third address line (if any)
address4string64The fourth address line (if any)
organizationstring64The name of the recipient, firm, or company at this address
(e.g., Robert Smith OR The Clean Oil Company)
localitystring64The city name
(e.g., Paris)
administrative_areastring32The state or province name or abbreviation
(e.g., Alberta or AB)
postal_codestring16The postal code
(e.g., 90210-2301)
licensestring64The license or licenses (comma separated) to use for this lookup. Valid values can be found in the account dashboard under the appropriate subscription. If multiple licenses are specified, they are considered in left to right order.
featuresstring128

A comma-separated list of features. These may require a special plan that allows the feature to be used.

Feature ValueDescription
occupant-useReturn the occupant_use metadata field.
geocode-classificationReturn the geocode_classification metadata field if geocode=true.
geocode-precision-enhancedEnable the PostalCode return value in geocode_precision

HTTP response: Status codes and results

Responses will have a status header with a numeric value. This value is what you should check for when writing code to parse the response. The only response body that should be read and parsed is a 200 response.

Status codeResponse and explanation
401Unauthorized: The credentials were provided incorrectly or did not match any existing, active credentials. Additionally, a unique situation can trigger a 401 error when embedded keys are used server-side from a cloud environment or VPN.
402Payment required: There is no active subscription for the account associated with the credentials submitted with the request.
400Bad request (malformed payload): Inputs from the request could not be interpreted.
422Unprocessable entity: A GET request lacked required fields.
429Too many requests: Too many requests with exactly the same input values were submitted within too short a period. This status code conveys that the input was not processed in order to prevent runaway charges caused by such conditions as a misbehaving (infinite) loop sending the same record over and over to the API. You're welcome.
429 (again)Too many requests: When using public "embedded key" authentication, we restrict the number of requests coming from a given source over too short of a time. If you use embedded key authentication, you can avoid this error by adding your IP address as an authorized host for the embedded key in question.
504Gateway timeout: Our own upstream data provider did not respond in a timely fashion and the request failed. A serious, yet rare occurrence indeed.
200OK (success!): A JSON array containing zero or more address matches for the input provided with the request. If none of the submitted addresses validate, the array will be empty ([]).

 

How to interpret the raw data output

This part of the document explains how to interpret the “Analysis” section of our International Street Address API output. You will need to be familiar with the explanations of the Analysis output fields found in the International Address Verification documentation here.

If you feel confident in those explanations and definitions, continue reading below.

Steps to interpreting the output

  1. Check the "verification_status" output field, which tells you whether the address is verified or not

    When we say an address is "verified," we mean that we found a match between the address you or your user input and a standardized version of the address contained in an authoritative dataset for the particular country.

    We return a “verification_status” of [Verified] if the address is verified to the precision of DeliveryPoint or Premise, meaning that the address has been identified to a specific, valid delivery point range.

    We return a “verification_status” of [Partial] if the address is verified to the precision level of Thoroughfare (street) or worse. For some countries whose maximum precision level is less than DeliveryPoint or Premise, this may be the best verification status you may receive.

    If the “verification_status” is [Ambiguous], that does NOT necessarily indicate that the address is invalid; it simply means that because the input address wasn’t quite complete enough to find a single address match, multiple addresses are provided in the output. In that case, it will be important to check the "address_precision" value for EACH of the address candidates. (See the next step.)

  2. If you need to know the precision level to which the address is verified, check the "address_precision" output field.

    When we say precision, we’re referring to having the level of accuracy defined. If we can’t give you premise-accurate precision, Smarty’s tools are intuitive enough to say what level of accuracy was actually achieved when matching the address against the authority dataset.

  3. If you submitted an address with a subunit (like a suite or apartment number), check the following output field to see if the subunit is valid.

    Within the "changes" portion of the API output, check the output field titled "sub_building." If that output field contains [Verified], the subunit is verified. This means that the subunit isn’t solely identified because of its position in the address, but is an actual subunit that is known to exist at the address.

  4. Check the entire "changes" section of the output to make sure you’re comfortable with what was changed between the input address and the output address.

    In other words, the "changes" output fields tell you if the address in the output is actually the one you’re looking for.

    For example, if the "changes" section tells you that the premise (building number) had a change (which would be rare), then the output address is probably NOT the same address as the one you or your user input.

    In contrast, a change in the “postal_code” field is probably acceptable and only indicates that we corrected the postal code.

Full example: Verify only (no geocodes)

Request

curl -v 'https://international-street.api.smarty.com/verify?
	auth-id=YOUR+AUTH-ID+HERE&
	auth-token=YOUR+AUTH-TOKEN+HERE&

	address1=Rua+Padre+Antonio+D%27Angelo+121&
	address2=Casa+Verde&
	locality=Sao+Paulo&
	administrative_area=SP&
	postal_code=02516-040&
	country=Brazil'

Response

Every response is a JSON array containing zero or more address matches for your input. Only non-blank fields will be returned.

[
	{
		"address1":"Rua Padre Antônio D'ângelo 121",
		"address2":"Casa Verde",
		"address3":"02516-040 São Paulo SP",
		"components":{
			"administrative_area":"SP",
			"dependent_locality":"Casa Verde",
			"country_iso_3":"BRA",
			"locality":"São Paulo",
			"postal_code":"02516-040",
			"postal_code_short":"02516-040",
			"premise":"121",
			"premise_number":"121",
			"thoroughfare":"Rua Padre Antônio D'ângelo",
			"thoroughfare_name":"Padre Antonio D'angelo",
			"thoroughfare_type":"Rua"
		},
		"metadata":{

		},
		"analysis":{
			"verification_status":"Verified",
			"address_precision":"Premise"
		}
	}
]

Full example: Verify + geocode

Request

curl -v 'https://international-street.api.smarty.com/verify?
	auth-id=YOUR+AUTH-ID+HERE&
	auth-token=YOUR+AUTH-TOKEN+HERE&

	address1=Rua+Padre+Antonio+D%27Angelo+121&
	address2=Casa+Verde&
	locality=Sao+Paulo&
	administrative_area=SP&
	postal_code=02516-040&
	country=Brazil&
	geocode=true'

Response

Every response is a JSON array containing zero or more address matches for your input.

[
	{
		"address1":"Rua Padre Antônio D'ângelo 121",
		"address2":"Casa Verde",
		"address3":"02516-040 São Paulo SP",
		"components":{
			"administrative_area":"SP",
			"dependent_locality":"Casa Verde",
			"country_iso_3":"BRA",
			"locality":"São Paulo",
			"postal_code":"02516-040",
			"postal_code_short":"02516-040",
			"premise":"121",
			"premise_number":"121",
			"thoroughfare":"Rua Padre Antônio D'ângelo",
			"thoroughfare_name":"Padre Antonio D'angelo",
			"thoroughfare_type":"Rua"
		},
		"metadata":{
			"latitude":-23.50948,
			"longitude":-46.66073,
			"geocode_precision":"Premise"
		},
		"analysis":{
			"verification_status":"Verified",
			"address_precision":"Premise"
		}
	}
]

Output fields

NOTE: Any returned fields that are not defined within this document should be considered experimental and may be changed or discontinued at any time without notice.

Root | Components | Metadata | Analysis | Changes

Root

Field nameTypeDefinition
input_idvarchar(16)A unique identifier generated by you for this address for use within your application. The output will be identical to the value you provided in the request input_id.
organizationvarchar(256)The name of the recipient, firm, or company at this address. The output will be identical to the input.
address1-12varchar(256)If address_precision = DeliveryPoint or Premise, these fields will contain the correctly formatted address for mailing in the relevant country, split into individual address lines. (Note: These fields may contain values that are not referenced in the address components.)

If address_precisionDeliveryPoint or Premise, the address fields may contain standardized address information or even the original input data.
components[Object]See "Components" table below. Contains the various basic elements of the address.
metadata[Object]See "Metadata" table below. Contains ancillary data about each address.
analysis[Object]See "Analysis" table below. Contains information about the validation and the precision of the output address.

Components

Field nameTypeDefinition
country_iso_3varchar(3)The ISO 3166-1 alpha-3 country code. See our full listing for details.
attentionvarchar(256)The name of the recipient, firm, or company at this address. This is the same value as the organization field.
administrative_areavarchar(64)The most common administrative division within a country
(e.g., province in Canada)
administrative_area_iso2varchar(64)The administrative area ISO 3166-2 data (if available for the country).
The value is the two letter country code, followed by a hyphen, followed by the one to three character code for the administrative area.
(e.g., CA-ON)
super_administrative_areavarchar(64)The largest administrative division within a country
(e.g., region in France)
sub_administrative_areavarchar(64)The smallest administrative division within a country
(e.g., county in Germany)
localityvarchar(64)Within a country, this is the most common population center.
(e.g., city in Chile)
dependent_localityvarchar(64)If there is additional information about the locality, it will be here.
(e.g., neighborhood in Turkey)
dependent_locality_namevarchar(64)If the dependent_locality has a name, you'll find it here.
(E.g., the dependent_locality "Dong Cheng Qu" is named "Dong Cheng.")
double_dependent_localityvarchar(64)If there is additional information about the dependent_locality, you'll find it here.
(e.g., village in the United Kingdom)
postal_codevarchar(64)The complete postal code for the delivery point
(e.g., V6G1V9 in Canada)
postal_code_shortvarchar(64)Primary postal code information
(e.g., 90210 in the United States)
postal_code_extravarchar(64)Secondary postal code information
(e.g., 3425 in the United States)
premisevarchar(64)Alphanumeric code pertaining to an individual location
premise_extravarchar(64)Extra information about the premise that is not necessarily authoritative but might still be useful
(E.g., in a French address, 25 bis rue Emile Zola, 91190 Gif Sur Yvette, France, the premise number could be followed by the word "bis" which would be considered premise_extra data.)
premise_numbervarchar(64)The alphanumeric component of the premise field
(E.g., if premise contains "Plot 7/7A" premise_number would contain "7/7A.")
premise_typevarchar(64)The premise type component of the premise field
(E.g., if premise contains "Plot 7/7A" premise_type would contain "Plot.")
thoroughfarevarchar(64)All thoroughfare components combined
thoroughfare_predirectionvarchar(64)The directional prefix component of the thoroughfare
(E.g., if thoroughfare contains "N Main St" thoroughfare_predirection would contain "N."
thoroughfare_postdirectionvarchar(64)The directional suffix component of the thoroughfare
(E.g., if thoroughfare contains "Main St N" thoroughfare_postdirection would contain "N.")
thoroughfare_namevarchar(64)The name component of the thoroughfare
(E.g., if thoroughfare contains "Main St" thoroughfare_name would contain "Main.")
thoroughfare_trailing_typevarchar(64)The trailing thoroughfare type component of the thoroughfare
(E.g., if thoroughfare contains "N Main St" thoroughfare_trailing_type would contain "St.")
thoroughfare_typevarchar(64)The leading thoroughfare type component of the thoroughfare
(E.g., if thoroughfare contains "Rue De La Gare" thoroughfare_type would contain "Rue.")
dependent_thoroughfarevarchar(64)All of the dependent thoroughfare components combined
dependent_thoroughfare_predirectionvarchar(64)The directional prefix component of the dependent_thoroughfare
(E.g., if dependent_thoroughfare contains "N Main St" dependent_thoroughfare_predirection would contain "N.")
dependent_thoroughfare_postdirectionvarchar(64)The directional suffix component of the dependent_thoroughfare
(E.g., if dependent_thoroughfare contains "Main St N" dependent_thoroughfare_postdirection would contain "N.")
dependent_thoroughfare_namevarchar(64)The name component of the dependent_thoroughfare
(E.g., if dependent_thoroughfare contains "N Main St" dependent_thoroughfare_name would contain "Main.")
dependent_thoroughfare_trailing_typevarchar(64)The trailing dependent_thoroughfare type component of the dependent_thoroughfare
(E.g., if dependent_thoroughfare contains "N Main St" dependent_thoroughfare_trailing_type would contain "St.")
dependent_thoroughfare_typevarchar(64)The leading thoroughfare type component of the dependent_thoroughfare field
(E.g., if dependent_thoroughfare contains "Rue De La Gare" dependent_thoroughfare_type would contain "Rue.")
buildingvarchar(64)The descriptive name that identifies an individual location, if one exists
building_leading_typevarchar(64)The leading building type component of the building
(E.g., if building contains "Bloc C" building_leading_type would contain "Bloc.")
building_namevarchar(64)The name component of the building
(E.g., if building contains "Westminster House" building_name would contain "Westminster.")
building_trailing_typevarchar(64)The trailing building type component of the building
(E.g., if building contains "Westminster House" building_trailing_type would contain "House.")
sub_buildingvarchar(64)All sub_building components combined
sub_building_typevarchar(64)The leading sub-building type of the sub_building
(E.g., if sub_building contains "Flat 1" sub_building_type would contain "Flat.")
sub_building_numbervarchar(64)The alphanumeric component of the sub_building
(E.g., if sub_building contains "Flat 1" sub_building_number would contain "1.")
sub_building_namevarchar(64)The descriptive name component of the sub_building
(E.g., if sub_building contains "Basement Flat" sub_building_name would contain "Basement.")
post_boxvarchar(64)All post_box Post Office Box components combined
post_box_typevarchar(64)The type component of the post_box
(E.g., if post_box contains "PO Box 1234" post_box_type would contain "PO Box.")
post_box_numbervarchar(64)The alphanumeric component of the postbox
(E.g., if post_box contains "PO Box 1234" post_box_number would contain "1234.")
additional_contentvarchar(64)(Canada) Content used in postal delivery
(E.g., Site 2 Comp 12)
delivery_installationvarchar(64)(Canada) Delivery installation - a composite of delivery_install_type and delivery_installation_qualifier_name
(E.g., Rpo Ritson Centre)
delivery_installation_typevarchar(64)(Canada) Delivery installation type
(E.g., RPO)
delivery_installation_qualifier_namevarchar(64)(Canada) Delivery name associated with delivery_installation_type
(E.g., Ritson Centre)
routevarchar(64)(Canada) Route - a composite of route_type and route_number
(E.g., RR 4)
route_typevarchar(64)(Canada) Route type
(E.g., RR, GD, etc.)
route_numbervarchar(64)(Canada) Route number associated with route_type
(E.g., 4)
short_address_codevarchar(64)A short address that consists of four letters followed by four numbers (Saudi Arabia/SA/SAU only). (Eg., RGSA3808)
sub_building_blockvarchar(64)This field contains the secondary identifiers for a particular delivery point. (Eg., BLOQUE 7)
sub_building_doorvarchar(64)This field contains the secondary identifiers for a particular delivery point. (Eg., PUERTA D)
sub_building_staircasevarchar(64)This field contains the secondary identifiers for a particular delivery point. (Eg., PUERTA D)
sub_building_leading_typevarchar(64)This field contains the sub-building type indicator within the sub_building field, should one exist. For instance, if sub_building contains FLAT 1 sub_building_leading_type contains FLAT if a sufficient level of parsing detail exists within a particular country.
level_numbervarchar(64)Floor number information (Eg., L 4)

Metadata

Field nameTypeDefinition
latitudedecimal(9,6)The horizontal component used for geographic positioning, ***based on the WGS84 coordinate system***. It is the angle between 0° (the equator) and ±90° (north or south) at the poles measured in decimal degrees. It is the first value in an ordered pair of latitude, longitude. A negative number denotes a location south of the equator; a positive number is north. Combining lat/long values enables you to pinpoint addresses on a map.
longitudedecimal(9,6)The vertical component used for geographic positioning, ***based on the WGS84 coordinate system***. It is the angle between 0° (the Prime Meridian) and ±180° (westward or eastward) measured in decimal degrees. It is the second number in an ordered pair of (latitude, longitude). A negative number indicates a location west of Greenwich, England; a positive number east. Combining lat/long values enables you to pinpoint addresses on a map.
geocode_classificationvarchar(32)Provides additional information about the returned geocode.

single-point -- Returned a single matching geocode.

multiple-point-average -- The output address matched several geocodes. To provide a single result, we calculated and returned the average coordinate of those points.

interpolated -- Returned a geocode that was interpolated from a range of addresses near the returned address.

This data will be returned only when the feature is requested. See features.

*This field is not available for US and US territory addresses.
geocode_precisionvarchar(18)Indicates the precision level of the latitude and longitude values.

None — Geocode not known (possibly because address is invalid).

AdministrativeArea — Geocode is accurate down to the administrative area (i.e., region or province).

Locality — Geocode is accurate down to the locality (i.e., city).

PostalCode* — Geocode is accurate down to the postal code.

Thoroughfare — Geocode is accurate down to the thoroughfare (i.e., street).

Premise — Geocode is accurate to the actual delivery point (i.e., house, mailbox, or apartment).

* Must be enabled by sending the geocode-precision-enhanced feature flag. Only available in CAN and GBR.
max_geocode_precisionvarchar(16)Indicates the best geocode_precision available for the input country.
address_formatvarchar(256)

A template that shows where we positioned the different address components on line 1, line 2, etc. (The format changes from one country to another.)

Due to the ever-changing nature of the underlying data, this field may contain values that are not referenced in the address components.

Example:

building | premise thoroughfare | postal_code locality

Each "pipe" character (|) represents a line break. Following this guide, the numbered address fields would be composed accordingly:

  • Address 1: building
  • Address 2: premise thoroughfare
  • Address 3: postal_code locality

For native languages that do not use spaces between words, the corresponding component fields will also not have spaces between them.

This field may not be present in the following cases:
1. When we could not understand the input sufficiently to generate a value.
2. For US addresses it will never be present. Here's some additional info on the composition of US addresses.

occupant_usevarchar(64)(Australia, Belgium, Brazil, Canada, Netherlands, Spain, United Kingdom) Indicates if the property is Residential or Commercial.

This data will be returned only when the feature is requested. See features

Possible values: "residential", "commercial", "residential,commercial"

Analysis

Field nameTypeDefinition
verification_statusvarchar(16)Indicates the verification status of the address. (See address_precision for more details)

None — Not verified. The output fields will contain the input data.

Partial — Verification only at the level indicated by address_precision. For some countries whose maximum precision level is less than DeliveryPoint or Premise, this may be the best verification status you may receive. Otherwise, better input might result in a better match.

Ambiguous — Multiple matching addresses found. Each candidate address will have its own precision level. A common "ambiguous" scenario is that the output will contain two versions of the same address — one with an organization name and one without.

Verified — The address was verified, at the indicated precision level.
address_precisionvarchar(24)Indicates the precision level at which an address match is found.

None — None of the address is verified.

AdministrativeArea — Address match is verified to the administrative area (i.e., region or province).

Locality — Address match is verified to the locality (i.e., city).

Thoroughfare — Address match is verified down to the thoroughfare (i.e., street).

Premise — Address match is verified to a range of addresses on the specified street (i.e., building, block level or street segment).

DeliveryPoint — Address match is verified to the delivery point (i.e., building, sub-building, or mailbox)
max_address_precisionvarchar(16)Indicates the best address_precision available for the input country.
changes[Object]Contains a collection of address components paired with values which specify the difference between corresponding input/lookup and output/candidate data. See the explanation of possible Changes values below.

Changes

Field nameTypeDefinition
organizationvarchar(256)If present, the degree of change to the name of the recipient, firm, or company at this address.
components[Object]See "Components" table above for field names. However, values will show the degree of change to each of the components of the address.

Possible values

Each value in this object (and any subordinate objects) will have a type of varchar(64) and will either be blank or contain one of the following values:

Field nameTypeDefinition
Verified-NoChangevarchar(64)Field has been verified using relevant reference data; no changes were needed.
Verified-AliasChangevarchar(64)Field has been verified using relevant reference data; an alias change was made during parsing (see Identified-AliasChange).
Verified-SmallChangevarchar(64)Field has been verified using relevant reference data; a small spelling change was made.
Verified-LargeChangevarchar(64)Field has been verified using relevant reference data; a large spelling change was made.
Addedvarchar(64)Field has been added using relevant reference data.
Identified-NoChangevarchar(64)Field has been identified using relevant lexicon data; no changes were needed. E.g., an input value of 'PO Box 1234' may be identifiable as a postbox, but if it is unable to be verified then this value will be returned.
Identified-AliasChangevarchar(64)Field has been identified using relevant lexicon data; an alias change was made. E.g., an input value of 'Avnue' may be identifiable as an alias to the thoroughfare_type 'Ave'.
Identified-ContextChangevarchar(64)Field has been identified using relevant context rules. E.g., an input address of '123 sdovnsdv San Bruno CA USA' may identify the word 'sdovnsdv' as a thoroughfare, but only because of the context in which it appears (after an identifiable premise_number, and before an identifiable locality).
Unrecognizedvarchar(64)Field was unrecognized.

Supported countries

The below countries are supported and available in our international address validation. Notice that the verification and geocode accuracy levels are different for each country. That means that addresses in Nicaragua, for example, can only be verified to the locality or city because that is the best data available for that country.

Note: Smarty recommends that any USA address be processed through our us-street-address-api, as the response will contain more useful metadata.

CountryISO-3ISO-2Address precisionGeocode precision
AfghanistanAFGAFLocalityLocality
AlbaniaALBALDeliveryPointPremise
AlgeriaDZADZThoroughfareThoroughfare
American SamoaASMASDeliveryPointPremise
AndorraANDADDeliveryPointPremise
AngolaAGOAODeliveryPointPremise
AnguillaAIAAILocalityLocality
AntarcticaATAAQLocalityLocality
Antigua and BarbudaATGAGThoroughfareThoroughfare
ArgentinaARGARDeliveryPointPremise
ArmeniaARMAMDeliveryPointPremise
ArubaABWAWDeliveryPointPremise
AustraliaAUSAUDeliveryPoint + SecondariesPremise
AustriaAUTATDeliveryPointPremise
AzerbaijanAZEAZDeliveryPointPremise
BahamasBHSBSDeliveryPointPremise
BahrainBHRBHDeliveryPointPremise
BangladeshBGDBDThoroughfareThoroughfare
BarbadosBRBBBDeliveryPointPremise
BelarusBLRBYDeliveryPointPremise
BelgiumBELBEDeliveryPoint + SecondariesPremise
BelizeBLZBZDeliveryPointPremise
BeninBENBJThoroughfareThoroughfare
BermudaBMUBMDeliveryPointPremise
BhutanBTNBTLocalityLocality
BoliviaBOLBODeliveryPointPremise
Bonaire, Sint Eustatius and SabaBESBQThoroughfareThoroughfare
Bosnia and HerzegovinaBIHBADeliveryPointPremise
BotswanaBWABWDeliveryPointPremise
Bouvet IslandBVTBVLocalityLocality
BrazilBRABRDeliveryPoint + SecondariesPremise
British Indian Ocean TerritoryIOTIOLocalityLocality
Brunei DarussalamBRNBNDeliveryPointPremise
BulgariaBGRBGDeliveryPointPremise
Burkina FasoBFABFDeliveryPointPremise
BurundiBDIBIThoroughfareThoroughfare
CambodiaKHMKHDeliveryPointPremise
CameroonCMRCMThoroughfareThoroughfare
CanadaCANCADeliveryPoint + SecondariesPremise
Cabo VerdeCPVCVThoroughfareThoroughfare
Cayman IslandsCYMKYDeliveryPointPremise
Central African RepublicCAFCFThoroughfareThoroughfare
ChadTCDTDLocalityLocality
ChileCHLCLDeliveryPointPremise
ChinaCHNCNThoroughfareLocality
Christmas IslandCXRCXLocalityLocality
Cocos (Keeling) IslandsCCKCCDeliveryPoint + SecondariesLocality
ColombiaCOLCODeliveryPointPremise
ComorosCOMKMThoroughfareThoroughfare
CongoCOGCGThoroughfareThoroughfare
Democratic Republic of the CongoCODCDThoroughfareThoroughfare
Cook IslandsCOKCKThoroughfareThoroughfare
Costa RicaCRICRDeliveryPointPremise
CroatiaHRVHRDeliveryPointPremise
CubaCUBCUThoroughfareThoroughfare
CuraçaoCUWCWLocalityLocality
CyprusCYPCYDeliveryPointPremise
CzechiaCZECZDeliveryPointPremise
Ivory CoastCIVCIThoroughfareThoroughfare
DenmarkDNKDKDeliveryPoint + SecondariesPremise
DjiboutiDJIDJThoroughfareThoroughfare
DominicaDMADMThoroughfareThoroughfare
Dominican RepublicDOMDODeliveryPointPremise
EcuadorECUECDeliveryPointPremise
EgyptEGYEGDeliveryPointPremise
El SalvadorSLVSVThoroughfareThoroughfare
Equatorial GuineaGNQGQLocalityLocality
EritreaERIERThoroughfareThoroughfare
EstoniaESTEEDeliveryPointPremise
EswatiniSWZSZThoroughfareThoroughfare
EthiopiaETHETThoroughfareThoroughfare
Falkland IslandsFLKFKThoroughfareThoroughfare
Faroe IslandsFROFODeliveryPointPremise
FijiFJIFJDeliveryPointPremise
FinlandFINFIDeliveryPointPremise
FranceFRAFRDeliveryPointPremise
French GuianaGUFGFDeliveryPointPremise
French PolynesiaPYFPFThoroughfareThoroughfare
French Southern TerritoriesATFTFLocalityLocality
GabonGABGALocalityLocality
GambiaGMBGMThoroughfareThoroughfare
GeorgiaGEOGEDeliveryPointPremise
GermanyDEUDEDeliveryPointPremise
GhanaGHAGHThoroughfareThoroughfare
GibraltarGIBGIDeliveryPointPremise
GreeceGRCGRDeliveryPointPremise
GreenlandGRLGLDeliveryPointPremise
GrenadaGRDGDLocalityLocality
GuadeloupeGLPGPDeliveryPointPremise
GuamGUMGUDeliveryPoint + SecondariesLocality
GuatemalaGTMGTDeliveryPointPremise
GuernseyGGYGGDeliveryPoint + SecondariesPremise
GuineaGINGNThoroughfareThoroughfare
Guinea-BissauGNBGWLocalityLocality
GuyanaGUYGYThoroughfareThoroughfare
HaitiHTIHTThoroughfareThoroughfare
Heard Island and McDonald IslandsHMDHMLocalityLocality
Holy SeeVATVADeliveryPointPremise
HondurasHNDHNThoroughfareThoroughfare
Hong KongHKGHKDeliveryPoint + SecondariesPremise
HungaryHUNHUDeliveryPointPremise
IcelandISLISDeliveryPointPremise
IndiaINDINDeliveryPointPremise
IndonesiaIDNIDDeliveryPointPremise
Islamic Republic of IranIRNIRLocalityLocality
IraqIRQIQThoroughfareThoroughfare
IrelandIRLIEDeliveryPoint + SecondariesPremise
Isle of ManIMNIMDeliveryPoint + SecondariesPremise
IsraelISRILDeliveryPointPremise
ItalyITAITDeliveryPointPremise
JamaicaJAMJMThoroughfareThoroughfare
JapanJPNJPDeliveryPointPremise
JerseyJEYJEDeliveryPoint + SecondariesPremise
JordanJORJODeliveryPointPremise
KazakhstanKAZKZDeliveryPointPremise
KenyaKENKEThoroughfareThoroughfare
KiribatiKIRKILocalityLocality
Democratic People's Republic of Korea (North Korea)PRKKPLocalityLocality
Republic of KoreaKORKRDeliveryPoint + SecondariesPremise
KosovoXKXXKDeliveryPointPremise
KuwaitKWTKWDeliveryPointPremise
KyrgyzstanKGZKGDeliveryPointPremise
Lao People's Democratic RepublicLAOLALocalityLocality
LatviaLVALVDeliveryPointPremise
LebanonLBNLBDeliveryPointPremise
LesothoLSOLSDeliveryPointPremise
LiberiaLBRLRThoroughfareThoroughfare
LibyaLBYLYThoroughfareThoroughfare
LiechtensteinLIELIDeliveryPointPremise
LithuaniaLTULTDeliveryPointPremise
LuxembourgLUXLUDeliveryPointPremise
MacaoMACMODeliveryPointPremise
Republic of North MacedoniaMKDMKDeliveryPointPremise
MadagascarMDGMGThoroughfareThoroughfare
MalawiMWIMWThoroughfareThoroughfare
MalaysiaMYSMYDeliveryPoint + SecondariesPremise
MaldivesMDVMVThoroughfareThoroughfare
MaliMLIMLThoroughfareThoroughfare
MaltaMLTMTDeliveryPointPremise
Marshall IslandsMHLMHDeliveryPointPremise
MartiniqueMTQMQDeliveryPointPremise
MauritaniaMRTMRThoroughfareThoroughfare
MauritiusMUSMUThoroughfareThoroughfare
MayotteMYTYTDeliveryPointPremise
MexicoMEXMXDeliveryPointPremise
Federated States of MicronesiaFSMFMDeliveryPointPremise
Republic of MoldovaMDAMDDeliveryPointPremise
MonacoMCOMCDeliveryPointPremise
MongoliaMNGMNThoroughfareThoroughfare
MontenegroMNEMEDeliveryPointPremise
MontserratMSRMSLocalityLocality
MoroccoMARMADeliveryPointPremise
MozambiqueMOZMZThoroughfareThoroughfare
MyanmarMMRMMDeliveryPointPremise
NamibiaNAMNADeliveryPointPremise
NauruNRUNRLocalityLocality
NepalNPLNPThoroughfareThoroughfare
NetherlandsNLDNLDeliveryPoint + SecondariesPremise
New CaledoniaNCLNCDeliveryPointPremise
New ZealandNZLNZDeliveryPoint + SecondariesPremise
NicaraguaNICNIThoroughfareThoroughfare
NigerNERNEThoroughfareThoroughfare
NigeriaNGANGDeliveryPointPremise
NiueNIUNUThoroughfareThoroughfare
Norfolk IslandNFKNFDeliveryPointPremise
Northern Mariana IslandsMNPMPDeliveryPointPremise
NorwayNORNODeliveryPoint + SecondariesPremise
OmanOMNOMDeliveryPointPremise
PakistanPAKPKLocalityLocality
PalauPLWPWDeliveryPointPremise
State of PalestinePSEPSLocalityLocality
PanamaPANPADeliveryPointPremise
Papua New GuineaPNGPGThoroughfareThoroughfare
ParaguayPRYPYDeliveryPointPremise
PeruPERPEDeliveryPointPremise
PhilippinesPHLPHDeliveryPointPremise
PitcairnPCNPNLocalityLocality
PolandPOLPLDeliveryPoint + SecondariesPremise
PortugalPRTPTDeliveryPointPremise
Puerto RicoPRIPRDeliveryPoint + SecondariesPremise
QatarQATQADeliveryPointPremise
South SudanSSDSSThoroughfareLocality
RomaniaROURODeliveryPointPremise
Russian FederationRUSRUDeliveryPointPremise
RwandaRWARWThoroughfareThoroughfare
RéunionREUREDeliveryPointPremise
Saint BarthélemyBLMBLDeliveryPointPremise
Saint Helena, Ascension and Tristan da CunhaSHNSHThoroughfareThoroughfare
Saint Kitts and NevisKNAKNThoroughfareThoroughfare
Saint LuciaLCALCThoroughfareThoroughfare
Saint MartinMAFMFDeliveryPointPremise
Saint Pierre and MiquelonSPMPMDeliveryPointPremise
Saint Vincent and the GrenadinesVCTVCThoroughfareThoroughfare
SamoaWSMWSThoroughfareThoroughfare
San MarinoSMRSMDeliveryPointPremise
Sao Tome and PrincipeSTPSTThoroughfareThoroughfare
Saudi ArabiaSAUSADeliveryPointPremise
SenegalSENSNThoroughfareThoroughfare
SerbiaSRBRSDeliveryPointPremise
SeychellesSYCSCThoroughfareThoroughfare
Sierra LeoneSLESLThoroughfareThoroughfare
SingaporeSGPSGDeliveryPointPremise
Sint Maarten (Dutch)SXMSXThoroughfareThoroughfare
SlovakiaSVKSKDeliveryPointPremise
SloveniaSVNSIDeliveryPointPremise
Solomon IslandsSLBSBThoroughfareThoroughfare
SomaliaSOMSOLocalityLocality
South AfricaZAFZADeliveryPointPremise
South Georgia and the South Sandwich IslandsSGSGSLocalityLocality
SpainESPESDeliveryPoint + SecondariesPremise
Sri LankaLKALKThoroughfareThoroughfare
SudanSDNSDLocalityLocality
SurinameSURSRDeliveryPointPremise
Svalbard and Jan Mayen IslandsSJMSJDeliveryPointPremise
SwedenSWESEDeliveryPointPremise
SwitzerlandCHECHDeliveryPointPremise
Syrian Arab RepublicSYRSYLocalityLocality
TaiwanTWNTWDeliveryPointPremise
TajikistanTJKTJThoroughfareThoroughfare
United Republic of TanzaniaTZATZThoroughfareThoroughfare
ThailandTHATHDeliveryPointPremise
Timor-LesteTLSTLLocalityLocality
TogoTGOTGThoroughfareThoroughfare
TokelauTKLTKLocalityLocality
TongaTONTODeliveryPointPremise
Trinidad and TobagoTTOTTThoroughfareThoroughfare
TunisiaTUNTNDeliveryPointPremise
Türkiye (Turkey)TURTRDeliveryPointPremise
TurkmenistanTKMTMThoroughfareThoroughfare
Turks and Caicos IslandsTCATCThoroughfareThoroughfare
TuvaluTUVTVLocalityLocality
UgandaUGAUGThoroughfareThoroughfare
UkraineUKRUADeliveryPointPremise
United Arab EmiratesAREAEDeliveryPointPremise
United KingdomGBRGBDeliveryPoint + SecondariesPremise
United States of AmericaUSAUSDeliveryPoint + SecondariesPremise
UruguayURYUYDeliveryPointPremise
UzbekistanUZBUZDeliveryPointPremise
VanuatuVUTVUDeliveryPointPremise
Bolivarian Republic of VenezuelaVENVEDeliveryPointPremise
Viet NamVNMVNDeliveryPointPremise
British Virgin IslandsVGBVGThoroughfareThoroughfare
Virgin Islands (U.S.)VIRVIDeliveryPoint + SecondariesLocality
Wallis and FutunaWLFWFThoroughfareThoroughfare
Western SaharaESHEHLocalityLocality
YemenYEMYELocalityLocality
ZambiaZMBZMThoroughfareThoroughfare
ZimbabweZWEZWDeliveryPointPremise
Åland IslandsALAAXDeliveryPointPremise

SSL/TLS information

Use modern security software and cipher suites.

Ready to get started?

Share feedback
What kind?

Use this form to share ideas or feedback for improving our website and products. For help using or implementing a Smarty product, contact support.

This chat is powered by Help Scout. Chats are recorded. Privacy Policy