Use the /checkaddress/ endpoint to verify and normalise an existing address. The API checks whether the address is valid, corrects formatting, and returns a quality score. Unlike the autocomplete endpoints, /checkaddress/ takes a complete address as input and returns the normalised result.
GET request
Endpoint
https://{SERVER_ADDRESS}/{VERSION}/checkaddress/?Address={INPUT}&Length={LENGTH}&Country={COUNTRY_CODE}&Suggestion={PROP}&Modification=O&Version={VERSION_JSON}&Licence={LICENCE_CODE}&Segmentation={Segmentation}The Address parameter must follow this pipe-separated format:
additional address|address|dependent locality or state|zip code|cityAll pipes are mandatory even when a section is empty. Examples:
||75008|Paris|12 rue de la Paix||75001|Paris
Replace the values in braces with your own information.
| Parameter | Value | Description | Mandatory/Optional |
|---|---|---|---|
| SERVER_ADDRESS | {SERVER_ADDRESS} | Address of the DQE server that will process the data. | Mandatory |
| VERSION | {VERSION} | Version of the API (e.g. v1). | Mandatory |
| Licence | {LICENCE_CODE} | Licence code assigned to your account or token generated by oauth2. | Mandatory |
| Address | {INPUT} | Address to verify. Pipe-separated format: additional address|address|dependent locality or state|zip code|city. | Mandatory |
| Country | {COUNTRY_CODE} | ISO 3-letter country code. | Mandatory |
| Length | {LENGTH} | Character limit for the address. | Optional. Default: 38. Recommended minimum: 32. |
| Suggestion | {PROP} | France only. O: returns multiple address options. S: returns state and suggestions. | Optional |
| Modification | O | When set to O, indicates which address fields were adjusted in the response. | Optional |
| Version | {VERSION_JSON} | 1.1: returns geocoding precision (LatLonLabel, LatLonCode). 2: adds complement list. | Optional |
| Segmentation | {Segmentation} | When set to O, adds Sprofil, Sportrait, and Ssegment to the response. Default: N. | Optional |
POST request
Endpoint
https://{SERVER_ADDRESS}/{VERSION}/checkaddress/Add the parameters below in the request body using x-www-form-urlencoded. The Address parameter must use the same pipe-separated format as the GET request.
| Parameter | Value | Description | Mandatory/Optional |
|---|---|---|---|
| Licence | {LICENCE_CODE} | Licence code assigned to your account or token generated by oauth2. | Mandatory |
| Address | {INPUT} | Address to verify. Pipe-separated format. | Mandatory |
| Country | {COUNTRY_CODE} | ISO 3-letter country code. | Mandatory |
| Length | {LENGTH} | Character limit for the address. | Optional. Default: 38. Recommended minimum: 32. |
| Suggestion | {PROP} | France only. O: multiple options. S: state + suggestions. | Optional |
| Modification | O | When set to O, indicates which fields were adjusted. | Optional |
| Version | {VERSION_JSON} | 1.1: geocoding precision. 2: adds complement list. | Optional |
| Segmentation | {Segmentation} | O: adds Sprofil, Sportrait, Ssegment. Default: N. | Optional |
Response
Success response
The JSON response contains a Found count and an Addresses array. When Suggestion is not set, only one element is returned.
{
"Found": 3,
"Addresses": [
{
"Address": "8 VICTOR HUGO",
"PostalCode": "92300",
"City": "LEVALLOIS PERRET",
"Hamlet": "",
"SpecialDistribution": "",
"Country": "FRA",
"StateCode": "*",
"SubLocality": "",
"CityId": "92044",
"Input": "",
"Label": "",
"AdditionalAddress": "",
"StreetNumber": "",
"StreetType": "",
"Street": "VICTOR HUGO",
"StreetId": "",
"IsValidStreetNumber": "",
"StreetNumberListCount": "",
"StreetNumberList": "",
"StreetNumberOnly": "8",
"StateLabel": "",
"AdministrativeArea": "",
"Suburb": "",
"Company": "",
"Latitude": "48.8927685421544",
"Longitude": "2.28767174943166",
"Informations": {
"AdditionalAddressComp": "",
"StreetNumberComp": "",
"DQEDetailCode": "50",
"DQEErrorAddressLabel": "KO",
"StreetNumberId": "",
"PostalCityId": "37847",
"IrisCode": "",
"RoudisCode": "",
"LatLonLabel": "",
"LatLonCode": "",
"IsAddressChanged": "1",
"ChangedAddressTag": ""
}
},
{
"Address": "8 SQUARE VICTOR HUGO",
"PostalCode": "92300",
"City": "LEVALLOIS PERRET",
"Hamlet": "",
"SpecialDistribution": "",
"Country": "FRA",
"StateCode": "*",
"SubLocality": "",
"CityId": "92044",
"Input": "",
"Label": "",
"AdditionalAddress": "",
"StreetNumber": "",
"StreetType": "SQUARE",
"Street": "VICTOR HUGO",
"StreetId": "1749909",
"IsValidStreetNumber": "",
"StreetNumberListCount": "",
"StreetNumberList": "8",
"StreetNumberOnly": "8",
"StateLabel": "",
"AdministrativeArea": "",
"Suburb": "",
"Company": "",
"Latitude": "48.894735",
"Longitude": "2.298562",
"Informations": {
"AdditionalAddressComp": "",
"StreetNumberComp": "",
"DQEDetailCode": "10",
"DQEErrorAddressLabel": "OK",
"StreetNumberId": "92044227P2",
"PostalCityId": "37847",
"IrisCode": "0122",
"RoudisCode": "",
"LatLonLabel": "",
"LatLonCode": "",
"IsAddressChanged": "1",
"ChangedAddressTag": ""
}
},
{
"Address": "8 RUE VICTOR HUGO",
"PostalCode": "92300",
"City": "LEVALLOIS PERRET",
"Hamlet": "",
"SpecialDistribution": "",
"Country": "FRA",
"StateCode": "*",
"SubLocality": "",
"CityId": "92044",
"Input": "",
"Label": "",
"AdditionalAddress": "",
"StreetNumber": "",
"StreetType": "RUE",
"Street": "VICTOR HUGO",
"StreetId": "1749869",
"IsValidStreetNumber": "",
"StreetNumberListCount": "",
"StreetNumberList": "8",
"StreetNumberOnly": "8",
"StateLabel": "",
"AdministrativeArea": "",
"Suburb": "",
"Company": "",
"Latitude": "48.893157",
"Longitude": "2.300094",
"Informations": {
"AdditionalAddressComp": "",
"StreetNumberComp": "",
"DQEDetailCode": "10",
"DQEErrorAddressLabel": "OK",
"StreetNumberId": "920442292P",
"PostalCityId": "37847",
"IrisCode": "0122",
"RoudisCode": "",
"LatLonLabel": "",
"LatLonCode": "",
"IsAddressChanged": "1",
"ChangedAddressTag": ""
}
}
]
}| Key | Description |
|---|---|
| Found | Number of address results returned. |
| Address | Full normalised address line. |
| PostalCode | Postal code. |
| City | City name. |
| Hamlet | Dependent locality or hamlet. |
| SpecialDistribution | Cedex or special distribution indicator. |
| Country | ISO country code. |
| StateCode | State or region code. |
| SubLocality | Sub-locality. |
| CityId | Unique city identifier. |
| Input | Input text used for the search. |
| Label | Normalised address label. |
| AdditionalAddress | Additional address information. |
| StreetNumber | Street number with complement. |
| StreetType | Street type. |
| Street | Street name. |
| StreetId | Street identifier. |
| IsValidStreetNumber | true: the street number exists. false: the street number does not exist. |
| StreetNumberListCount | Number of available street numbers. |
| StreetNumberList | List of available street numbers. |
| StreetNumberOnly | Street number without complement. |
| StateLabel | State or region label. |
| AdministrativeArea | Administrative area. |
| Suburb | Suburb. |
| Company | Company name. |
| Latitude | Latitude of the address. |
| Longitude | Longitude of the address. |
| Informations.AdditionalAddressComp | Additional address complement. |
| Informations.StreetNumberComp | Street number complement. |
| Informations.DQEDetailCode | Detailed quality code. See schema below. |
| Informations.DQEErrorAddressLabel | Quality label. |
| Informations.StreetNumberId | Street number identifier. |
| Informations.PostalCityId | Postal city identifier. |
| Informations.IrisCode | Iris code. |
| Informations.RoudisCode | Roudis code. |
| Informations.LatLonLabel | Geocoding precision label (when Version=1.1). See table below. |
| Informations.LatLonCode | Geocoding precision code (when Version=1.1). See table below. |
| Informations.IsAddressChanged | true: the address was modified. false: no modification. |
| Informations.ChangedAddressTag | 5-character code indicating which fields were modified (same structure as CodeModification in Classic API). |
DQEDetailCode schema
The DQEDetailCode field returns one of the following quality codes:
| Code | Description | Internal Description | UI Display |
| 10 | Correct address | Valid address | Valid address |
| 20 | Correct address (street not recognized, but it is a CEDEX or P.O. box) | Valid address | Valid address |
| 21 | Small town, street number out of range | Please confirm the address with the client (street number does not exist) | Please check your postal address |
| 22 | Small town, street number missing (the rest of the address is correct) | Please confirm the address with the client (street number missing) | Please check your postal address |
| 23 | Large city, street number out of range | Please confirm the address with the client (street number does not exist) | Please check your postal address |
| 24 | Large city, street number missing (the rest of the address is correct) | Please confirm the address with the client (street number missing) | Please check your postal address |
| 25 | CEDEX address unknown to CEDEXA (if CEDEXA is active) | Valid address | Valid address |
| 30 | Small town, street not recognized | Please confirm the address with the client (street name not found) | Please check your postal address |
| 31 | Small town, street not recognized | Please confirm the address with the client (street name not found) | Please check your postal address |
| 40 | Small town, street missing (district information recognized, but not enough to deduce the street) | Please confirm the address with the client (street name not found) | Please check your postal address |
| 41 | Small town, street missing | Please confirm the address with the client (street name missing) | Please check your postal address |
| 50 | Large city, street not recognized | Please confirm the address with the client (street name not found) | Please check your postal address |
| 51 (France only) | Large city, street not recognized (district information recognized, but not enough to deduce the street) | Please confirm the address with the client (street name not found) | Please check your postal address |
| 60 | Large city, street missing (district information recognized, but not enough to deduce the street) | Please confirm the address with the client (street name not found) | Please check your postal address |
| 61 | Large city, street missing | Please confirm the address with the client (street name missing) | Please check your postal address |
| 70 | Postal code/City not correctable (street present) | Address is incorrect. The postal code/city do not match. | Please check your postal address |
| 71 | Postal code/City not correctable (street missing) | Address is incorrect. The postal code/city do not match. | Please check your postal address |
| 80 | Input “address” block empty | Address not filled in | Please check your postal address |
| 81 | Input “address” block empty | Address not filled in | Please check your postal address |
| 90 | International address detected | Valid address | Valid address |
| 95 | Missing or incorrect country code | Missing or incorrect country code | Please check your postal address |
LatLonLabel / LatLonCode (when Version=1.1)
These fields describe the geocoding precision level.
| LatLonLabel | LatLonCode | Description |
| 1 | ENTREE | Main access point to an open or closed enclosure, to a group of buildings or to a piece of land (address plate). |
| 2 | BATIMENT | Building or part of a building. |
| 3 | ESCALIERS | Stairwell, normally inside a building. |
| 4 | LOGEMENT | Housing or room inside a building. |
| 5 | PARCELLE CADASTRALE | Cadastral parcel. |
| 6 | SEGMENT DE VOIE | Position derived from the segment of the connecting street. Modification of some BAN data because located outside the city polygon, but on the same street. |
| 7 | POINT D ACCESS TECHNIQUE | Technical access point, for example room with water, electricity, gas shut offs, etc. |
| 8 | POINT DELIVRANCE POSTALE | Postal delivery point (mailbox). |
| 9 | ZONE D ADRESSAGE | Point placed in the dependent locality. |
| 10 | CENTRE VILLE | Center of the city. |
| 0 | CENTRE DE LA VOIE | Point in the center of the street. |
| 90 | A CONTROLER | To check. |
| 99 | NON PRESENTE | Not available. |
Error response
Errors are returned as JSON in the following format:
{
"status": 400,
"message": "...",
"details": "...",
"error": "..."
}| Status | Cause |
|---|---|
400 | Missing mandatory parameter (Address or Country), or invalid parameter value. |
401 | Missing, empty, or incorrect Licence parameter. |