Verify Address
Overview
The Verify endpoint allows you to send an address for validation. It attempts to match the provided address against our address database and returns:
Recommended action – guidance on how to handle the address based on the match result.
Matched address – the standardized address we found.
Original input address – exactly what was submitted.
Match quality – how well the input address matches a known address.
This API is designed to help ensure address accuracy, improve user experience, and reduce delivery or service errors. The Verify API is optimized for Irish and UK addresses but it is available for other countries.
How to Use
The Verify API always returns an address object, which may contain the matched address or the user’s entered address. This object should always be used, regardless of the recommended action, as it can include partially matched elements or corrections such as spelling adjustments.
The action value tells you how the address should be handled. Your application should follow this guidance to decide what happens next.
Accept Action
The address has been confidently matched and verified.
Use the returned address object.
The address object will always have an id.
May have minor amendments (formatting, casing).
Suggest Action
A significant change was detected between the input and the matched address.
Use highlights, returned in the address, to point out the differences.
Show both the input.label and address.label to the user and allow them to select which address they would like to continue with.
The address object will always have an id.
Confirm Action
The address may have only partially matched the input address or not matched at all.
Use highlights, returned in the address, to point out the differences.
Show the address.label and form.message.value to the user and allow them to select whether they wish to continue with this address.
The address object may or may not have an id depending on how well the input was matched.
Reject Action
The address has been matched but falls outside of your allowed locations or address types as set in your integration settings in the Account Centre.
The response will contain form.message.value which will describe the reason the address has been rejected. Display this to the user along with the address.label.
Example: PO Box addresses when PO Boxes are disabled in your settings.
Example Implementation Flow
Collect the address from the user or your preferred source.
Send the address to the Verify endpoint.
Read the action value from the response.
Follow the guidance above based on the returned action.
If action is suggest or confirm, highlight the changes to the user using the address.highlights and address.label.
Best Practices
Use the information provided in the address object when displaying or saving an address.
If action is Suggest or Confirm, use the address.highlights to display what has changed to the user.
Use the address.label to display the address.
Map the address.highlights to the structure of the label to accurately highlight the differences to the user.
Provide the country parameter in requests to limit what country to search in.
Authentication
The verify API is authenticated using our standard authentication method. For details on how to authenticate and create a token, see our Authentication documentation.
Request Structure
The verify API supports both Get and Post requests. The parameters can be sent in the URL or the body.
Endpoint
https://api.autoaddress.com/3.0/verify
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
| String | Yes | Access token obtained from the Create Token endpoint. Token can also be passed in the body of the request. |
| String | Yes (1+) | One or more lines of the address. Multiple addressLine parameters can be provided. |
| String | No | The city/town name. |
| String | No | State, province, or county. |
| String | Yes | ISO country code or country name. |
| String | No | Language to search in. If not provided or empty, search in all languages. |
Sample Requests
Get
curl --location 'https://api.autoaddress.com/3.0/verify?addressLine=8+silver+birches&city=Dunboyne&country=IE&language=en®ion=Co.+Meath&token=YOUR_TOKEN'
Post
curl --location 'https://api.autoaddress.com/3.0/verify' -d 'addressLine=8 silver birches&city=Dunboyne&country=IE&language=en®ion=Co. Meath&token=YOUR_TOKEN'
Response Structure
In this example, the input address has been successfully verified and the service returns an action of Accept. For more detailed information, see our detailed examples.
Sample Response
{
"type": "verify",
"action": "Accept",
"form": {
"language": "en",
"message": {
"id": 1010,
"severity": "Information",
"value": "Address verified, please note differences"
}
},
"information": {
"addressAmended": true,
"complete": true,
"matchLevel": "Building",
"postcodeAmended": true,
"subBuilding": "None",
"status": "Verified"
},
"input": {
"lines": [
{
"key": "AddressLine1",
"value": "8 silver birches"
}
],
"city": {
"value": "Dunboyne"
},
"region": {
"value": "Co. Meath"
},
"postcode": {
"value": ""
},
"country": {
"language": "en",
"value": "Ireland",
"iso": "IE"
},
"label": [
"8 silver birches",
"Dunboyne",
"Co. Co. Meath",
"IRELAND"
]
},
"address": {
"id": "IE1701984269",
"language": "en",
"charset": "Latn",
"variation": "V",
"lines": [
{
"key": "AddressLine1",
"value": "8 Silver Birches"
},
{
"key": "AddressLine2",
"value": "Millfarm"
}
],
"city": {
"value": "Dunboyne"
},
"region": {
"value": "Co. Meath"
},
"postcode": {
"value": "A86 VC04"
},
"country": {
"language": "en",
"value": "Ireland",
"iso": "IE"
},
"label": [
"8 Silver Birches",
"Millfarm",
"Dunboyne",
"Co. Meath",
"A86 VC04",
"IRELAND"
],
"highlights": [
[],
[
0,
8
],
[],
[],
[
0,
8
],
[]
]
},
"data": {
"location": {
"latitude": 53.420761,
"longitude": -6.466002,
"crs": "EPSG:4258",
"accuracy": "BUILDING"
}
},
"links": [
{
"rel": "self",
"href": "https://api.autoaddress.com/3.0/verify?addressLine=8+silver+birches&city=Dunboyne&country=IE&language=en®ion=Co.+Meath&token=YOUR_TOKEN",
"title": "self"
}
]
}
When you call the Verify endpoint, the API returns a JSON object containing details about:
Recommended action.
The matched and input addresses.
Any differences found between input and matched data.
Additional metadata such as geolocation.
Additional information to show how well the address has matched and a message describing the result for the user.
This page breaks down each field, explains its purpose, and clarifies optional vs. required fields.
Top-Level Response Fields
Field | Type | Description |
---|---|---|
type | String | Always "verify" for this endpoint. Identifies the operation performed. |
action | Enum | Recommended course of action. One of Accept, Suggest, Confirm, Reject. |
form | Object | Contains any informational or error messages relevant to the request. |
information | Object | Provides summary details about the match and address status. |
input | Object | The address details exactly as they were sent to the API. |
address | Object | The matched/standardized address returned by the API. |
data | Object | Additional data such as geolocation, administrative boundaries, and building details. Returned fields based on data settings set for your integration in the Account Centre. |
links | Array | Related API resource links (self-referencing and others if available). |
action
The action field is central to how you process the result. It can return with one of the following:
Accept – The address is valid and can be used as provided.
Suggest – A different but similar address was found; present both options to the user and point out the differences.
Confirm – The address appears mostly correct but may have missing or uncertain elements; confirm with the user before proceeding.
Reject – No valid match found; prompt the user for correction.
form
Field | Type | Description |
---|---|---|
language | String | Language code of the message. |
message | Object | Contains an |
Example:
"form": {
"language": "en",
"message": {
"id": 1010,
"severity": "Information",
"value": "Address verified, please note differences"
}
}
information
Detailed information on the quality of the match for the address object.
Field | Type | Description |
---|---|---|
addressAmended | Boolean | Indicates if the matched address differs from the input. |
complete | Boolean | Indicates true if the address is considered complete, even when no full match is found. |
matchLevel | String | The granularity of the match (e.g., |
postcodeAmended | Boolean | Whether the postcode was changed during matching. |
subBuilding | String | Information about sub-building details if present, |
status | String | Status of the address (e.g., |
input
Represents exactly what was sent to the API.
Field | Type | Description |
---|---|---|
lines | Array | Key-value pairs of each address line. |
city | Object | Contains the city/town value. |
region | Object | Contains the state, county, or province. |
postcode | Object | Contains the Eircode, postcode or ZIP code. |
country | Object | Contains the country value, language, and ISO code. |
label | Array | Full address formatted as an array of strings. |
address
The standardized, verified address. The lines, city, region, postcode and country fields are returned as per the settings in My Form in the Account Centre.
Field | Type | Description |
---|---|---|
id | String | Unique ID for the address. |
language | String | Language code of the address. |
charset | String | Character set used. |
variation | String | Address variation indicator. |
lines | Array | Key-value pairs of each address line. |
city | Object | City/town value. |
region | Object | State, county, or province. |
postcode | Object | Contains the Eircode, postcode or ZIP code. |
country | Object | Country value, language, and ISO code. |
label | Array | Full address formatted as an array of strings. |
highlights | Array | An array of arrays showing differences from the input address. Maps to the structure of label. |
data
Contains additional location, administrative, building, and address reference data. See Data Settings for further information.