validation_result that indicates if the address is valid. If the validation identifies changes needed in order to make your address valid, the API response recommends a new address in recommended_address.
Using address validation
If you are interested in using Shippo’s Address Validation API or have any questions about pricing, please contact our sales team.Validate an address
To validate an address, follow this example.cURL
Validate address response
Try address validation
Try our Address Validation API using any example address from the dropdown below. You can find the breakdown of the address validation result, and the raw API response as a JSON object.Migrate address validation
If you use the legacy Shippo validation, you may choose to update your integration to use the latest Addresses API. Use this guide to understand what has changed and what you need to do to use the latest version. The legacy address validation supported two methods for address validation.- When creating a new address object using the
validateoption. - Validating existing Address objects.
Address V2 validation
legacy Address validation
/v2.
Address V2
legacy Address
- A
recommended_address. - A
confidence_resultwith ascoreanddescriptiondescribing the quality of the recommended address. analysisthat includes details about the validation.changed_attributesthat lists which values changed between theoriginal_addressand therecommended_address.
Address V2 response
legacy Address response
| V1 Address Field | V2 Address Field | Notes |
|---|---|---|
| ** Deprecated Fields ** | ||
| is_complete | ||
| object_created | ||
| object_updated | ||
| object_id | ||
| object_owner | ||
| street_no | ||
| street3 | ||
| phone | ||
| test | ||
| validation_results | Moved to analysis but modified | |
| metadata |
| V1 Address Field | V2 Address Field | Notes |
|---|---|---|
| ** original_address **, ** recommended_address ** | ||
| name | name | |
| company | organization | |
| street1 | address_line_1 | |
| street2 | address_line_2 | |
| city | city_locality | |
| state | state_province | |
| zip | postal_code | |
| country | country_code |
| V1 Address Field | V2 Address Field | Notes |
|---|---|---|
| ** recommended_address (exclusive fields) ** | ||
| ** recommended_address is present if we believe there is a more accurate version of the address ** | ||
| complete_address | The full address in one string whenever available | |
| confidence_result | Contains the score field which takes values of high, medium, low; contains the code field which is the machine readable explanation to the score; and the description field which is the human friendly explanation to the score. |
| V1 Address Field | V2 Address Field | Notes |
|---|---|---|
| ** analysis ** | ||
| is_residential | address_type | changed from boolean to an enum. residential, commercial, unknown, po_box, military |
| validation_results | validation_results | changed from boolean to an object. |
| validation_results.is_valid | validation_results.value | Changed from Bool to enum. valid, partially_valid, invalid |
| validation_results.messages | validation_results.reasons | Each reason is an object containing the code and the description. The code is the machine readable explanation to why the address is valid, partially valid, or invalid. And the description is the human friendly value for the same. |
| changed_attributes | list of fields changed in the recommended address from the original address. |
| V1 Address Field | V2 Address Field | Notes |
|---|---|---|
| ** geo ** | ||
| latitude | ||
| longitude |