Build a postcode-first address form with the classic CP/ADR/COMPL endpoints: look up the city from a postal code or name, list its streets, then surface sub-building options once a street is chosen.
City search (CP)
First step of the funnel approach. Returns matching cities
and postal codes from a partial postal code or city name
input. The IDLocalite from each result feeds
the next step: ADR.
Request
CP supports both GET and POST.
cURL example
France - Search by postal code
Send all parameters in the request body using
Content-Type: application/x-www-form-urlencoded.
The server address remains in the URL.
cURL example
Parameters
| Parameter | Value | Description | Mand / Opt |
|---|---|---|---|
| Licence |
{LICENCE_CODE}
|
Your DQE licence key or OAuth2 token. Contact support if you do not yet have one. | Mandatory |
| CodePostal |
{POSTAL_CODE}
|
Postal code or city name input. | Mandatory |
| Pays |
{COUNTRY_CODE}
|
ISO 3166-1 alpha-3 country code for the address
search scope. Example: FRA or
GBR.
|
Mandatory |
| Alpha |
True
|
Always send True. Required parameter.
|
Mandatory |
| Instance |
{INSTANCE}
|
Not echoed back in results for this endpoint - safe to omit. | Optional |
| Etendue |
Y or N
|
Enables search from just 2 characters in
the postal code input. Default: N.
|
Optional |
| NbMax |
{NB}
|
Maximum number of locality suggestions returned. | Optional |
| Filter |
{FILTER}
|
Controls the type of results returned. When
omitted, the response includes postal codes,
streets (where available) and CEDEX entries.1 = postal code & CEDEX
only · 2 = postal code &
street (no CEDEX) · 3 = postal
code only · 4 = one suggestion
per postal code & city (Malaysia only)
|
Optional |
| Langue |
{LANGUAGE}
|
Filters results by language/script. JPN:
JP = Kanji · JK
= Katakana · EN = Romanized.
HKG: EN · ZH. THA:
EN · TH. See
Language guide.
|
Optional |
Response
On success, the API returns a JSON object. Keys are rank
numbers from "1" to "n", each
mapping to a dictionary of address fields.
IDVoie is populated, Voie appears
in the JSON. When only a city is returned, Voie
is absent. Use a non-empty IDVoie to detect
which schema applies.
Etendue=Y, results are ordered by population
density (largest city first). When a city name is entered
(exact or partial), exact matches appear first, followed
by keyword-relevance ranking.
| Field | Description | France | International |
|---|---|---|---|
| Province |
State or administrative region ISO code (e.g.
17 for Japan).
|
String (50) | String (50) |
| IDLocalite | Unique city identifier (INSEE code for France). | String (20) | String (20) |
| Pays | ISO 3166-1 alpha-3 country code. | String (3) | String (3) |
| Instance | Internal field. | String | String |
| CodePostal | Postal code of the address. | String (10) | String (10) |
| SousLocalite | Sub-locality (district, borough, suburb). | Empty | String (50) |
| LieuDit | Named locality or hamlet (France) or equivalent district-level field (international). Availability varies by country. | String (38) | String (50) |
| Localite | City name. | String (38) | String (50) |
| Latitude | Geocoordinates of the matched locality. Not available for all countries - see coverage. | String | String |
| Longitude | Geocoordinates of the matched locality. Not available for all countries - see coverage. | String | String |
| IDVoie |
Unique street identifier. Populated only
when the postal code maps to a specific street.
When present, you can skip ADR and pass IDVoie
directly to COMPL.
|
String (20) | String (20) |
| Voie |
Street name. Only present in the response
when IDVoie is populated.
|
String (38) | String (150) |
|
NbNumero also: Nbnumero |
Total number of house numbers on the matched
street. Populated only when IDVoie
is present; empty otherwise. Both keys
(NbNumero / Nbnumero)
refer to the same value.
|
String | String |
| ListeNumero |
Semicolon-separated list of valid street
numbers for the matched street. Always contains
all numbers when present; empty when IDVoie
is absent.
|
String (1024) | String (1024) |
| Numero | Full street number including any complement (bis, ter, etc.). | String (38) | String (38) |
| TypeVoie |
Street type (e.g., RUE, AVENUE,
BOULEVARD). Not returned for
all international datasets.
|
String (20) | String (20) |
| Complement | Additional address information. | Empty | String (50) |
| Entreprise | Company name associated with the address. | String (38) | String (38) |
| Cedex |
CEDEX indicator: 1 = CEDEX address,
0 = not CEDEX.
|
String (1) | String (1) |
| Region1 |
State or administrative region ISO label
(e.g. ISHIKAWA for Japan).
|
Not available | String (50) |
| Region2 | County or equivalent administrative level. | Not available | String (50) |
| Region3 | County or equivalent (alternate level). | Not available | String (50) |
| Region4 | Additional regional or administrative information. | Not available | String (50) |
Response example
Response example - France (75008 Paris)
Response example - Japan (108-6390)
Errors
| HTTP | Error type | Response body |
|---|---|---|
| 200 |
Missing or empty Licence
|
{} - empty result, no error
raised
|
| 401 |
Incorrect or expired Licence
|
unauthorized_client
|
| 400 |
Missing CodePostal parameter
|
Bad Request Parameters * not allowed
|
| 400 |
Parameter name typo (e.g. codepostal
instead of CodePostal)
|
Bad Request Parameters * not allowed
|
| 200 |
Unrecognised Pays ISO code (e.g.
AAA)
|
{} - empty result, no error
raised
|
| 401 |
Invalid country format (e.g. FRAN
instead of FRA)
|
unauthorized_country
|
Test the API
Click the button below to test this endpoint live in your browser.
Open console
Street search (ADR)
Second step of the funnel approach. Given an
IDLocalite from CP and a partial street
name, returns matching streets. The IDVoie
from each result feeds the final step: COMPL.
Request
ADR supports both GET and POST.
IDLocalite field of the CP response
when the user selects a city. Contact your DQE account
manager to obtain these credentials.
Adresse value must be URL-encoded -
e.g. l'église → l%27%C3%A9glise.
cURL example
France - IDLocalite from previous CP step
Send all parameters in the request body using
Content-Type: application/x-www-form-urlencoded.
The server address remains in the URL.
cURL example
Parameters
| Parameter | Value | Description | Mand / Opt |
|---|---|---|---|
| Licence |
{LICENCE_CODE}
|
Your DQE licence key or OAuth2 token. Contact support if you do not yet have one. | Mandatory |
| IDLocalite |
{CITY_ID}
|
City identifier returned by CP in the
IDLocalite field. Scopes the
street search to the selected city.
|
Mandatory |
| Adresse |
{INPUT}
|
Partial street name entered by the user. | Mandatory |
| Pays |
{COUNTRY_CODE}
|
ISO 3166-1 alpha-3 country code for the address
search scope. Example: FRA or
GBR.
|
Mandatory |
| Taille |
{LENGTH}
|
Maximum character length for address fields
returned. Applies to Latin-character addresses
only. Default: 38. Recommended
minimum: 32.
|
Optional |
| Instance |
{INSTANCE}
|
Not echoed back in results for this endpoint - safe to omit. | Optional |
| Version=1.1 |
1.1
|
When set to 1.1, populates the
LieuDit field for small towns.
Without it, small town names appear in the
Localite field in brackets instead.
|
Optional |
| Langue |
{LANGUAGE}
|
Filters results by language/script. JPN:
JP = Kanji · JK
= Katakana · EN = Romanized.
HKG: EN · ZH. THA:
EN · TH. See
Language guide.
|
Optional |
Response
On success, the API returns a JSON object. Keys are rank
numbers from "1" to "n", each
mapping to a dictionary of street fields.
| Field | Description | France | International |
|---|---|---|---|
| label |
Ready-to-display string for an autocomplete
dropdown. Numbers in [brackets]
indicate the number was not found in the
reference data. See
Label field - display only
for usage notes.
Only use
label to populate the suggestion dropdown - never to store the address.See integration guide →
|
Not available | String (255) |
|
IDVoie also: CodeVoie |
Unique street identifier. Used as input to COMPL. | String (20) | String (20) |
| Voie | Street name. | String (38) | String (150) |
| Saisie | Normalised form of the submitted street input. May differ from the original input in casing or formatting. | String (255) | String (255) |
| TypeVoie |
Street type (e.g., RUE, AVENUE,
BOULEVARD). Not returned for
all international datasets.
|
String (20) | String (20) |
|
Numero also: Num |
Full street number including any complement (bis, ter, etc.). | String (38) | String (38) |
| NumSeul | Street number only, without any complement (bis, ter, etc.). | Not available | String (4) |
|
NbNumero also: Nbnumero |
When the queried number is not found or missing,
returns the total count of valid street numbers
for this street. Both keys (NbNumero
/ Nbnumero) refer to the same
value. Can be an empty string when not applicable.
|
String | String |
| ListeNumero | Semicolon-separated list of valid street numbers. Contains all numbers when no number was entered or when the entered number is not found; contains only the matched number otherwise. | String (1024) | String (1024) |
| valid_num |
Street number validity indicator. 1
if the number exists in the reference data,
0 otherwise. Returns an empty
string for some international addresses where
number-level validation is not available.
|
Not available | Integer |
| CodePostal | Postal code of the address. | String (10) | String (10) |
| Localite | City name. | String (38) | String (50) |
| IDLocalite | Unique city identifier (INSEE code for France). | String (20) | String (20) |
| SousLocalite | Sub-locality (district, borough, suburb). | Not available | String (50) |
| LieuDit |
Named locality. Populated when Version=1.1
is set in the request. May be populated for
international addresses.
|
String (38) | String (50) |
| Province |
State or administrative region ISO code (e.g.
17 for Japan).
|
Not available | String (50) |
| Region1 |
State or administrative region ISO label
(e.g. ISHIKAWA for Japan).
|
Not available | String (50) |
| Region2 | County or equivalent administrative level. | Not available | String (50) |
| Region3 | County or equivalent (alternate level). | Not available | String (50) |
| Region4 | Additional regional or administrative information. | Not available | String (50) |
| Suburb | Suburb or district. | Not available | String (50) |
| Thoroughfare | Dependent street. | Not available | UK only |
| Complement | Additional address information (building name, floor, etc.). Availability varies by country - see integration guide. | Empty | String (50) |
| Complement2 | Second sub-building line. Populated for certain international addresses when both a building identifier and a sub-building identifier (floor, apartment, suite) are available as separate entries, and for certain organisational CEDEX addresses. | Not available | String (50) |
| Entreprise | Company name associated with the address. | String (38) | String (38) |
| Cedex |
CEDEX indicator: 1 = CEDEX address,
0 = not CEDEX.
|
String (1) | String (1) |
| Latitude | Geocoordinates of the matched address. Not available for all countries - see coverage. | String | String |
| Longitude | Geocoordinates of the matched address. Not available for all countries - see coverage. | String | String |
| Roudis | Roudis code. | String | Not available |
| Pays | ISO 3166-1 alpha-3 country code. | String (3) | String (3) |
| Instance | Internal field. | String | String |
Returned
with Version=1.1
Response example
Response example - France (Rue de la Bienfaisance, 75008 Paris)
Response example - Japan (三田, 108-6390)
Errors
| HTTP | Error type | Response body |
|---|---|---|
| 200 |
Missing or empty Licence
|
{} - empty result, no error
raised
|
| 401 |
Incorrect or expired Licence
|
unauthorized_client
|
| 400 |
Missing IDLocalite
|
Bad Request Parameters * not allowed
|
| 400 |
Missing Adresse
|
Bad Request Parameters * not allowed
|
| 400 |
Missing Pays
|
Bad Request Parameters * not allowed
|
| 400 |
Parameter name typo (e.g. misspelling of
Adresse or IDLocalite)
|
Bad Request Parameters * not allowed
|
Test the API
Click the button below to test this endpoint live in your browser.
Open console
Building (COMPL)
Final step of the funnel approach. Given an IDVoie and Numero from ADR, returns a list of sub-building suggestions: building names, floor numbers, company names, apartment numbers.
Request
COMPL supports both GET and POST.
IDVoie field of the ADR response
when the user selects a street. Contact your DQE account
manager to obtain these credentials.
cURL example
France - IDVoie from previous ADR step
When the user has not entered a street number,
pass an empty IDNum parameter:
&IDNum=
Send all parameters in the request body using
Content-Type: application/x-www-form-urlencoded.
The server address remains in the URL.
cURL example
Parameters
| Parameter | Value | Description | Mand / Opt |
|---|---|---|---|
| Licence |
{LICENCE_CODE}
|
Your DQE licence key or OAuth2 token. Contact support if you do not yet have one. | Mandatory |
| IDVoie |
{STREETID}
|
Unique street identifier returned by ADR
in the IDVoie field.
|
Mandatory |
| IDNum |
{STREETNUMBER}
|
Street number selected by the user - corresponds
to the Numero field from the
ADR response.
|
Mandatory |
| Pays |
{COUNTRY_CODE}
|
ISO 3166-1 alpha-3 country code for the address
search scope. Example: FRA or
GBR.
|
Mandatory |
| Taille |
{LENGTH}
|
Maximum character length for address fields
returned. Applies to Latin-character addresses
only. Setting this too low may truncate results.
Default: 38. Recommended minimum:
32.
|
Optional |
| Instance |
{INSTANCE}
|
Not echoed back in results for this endpoint - safe to omit. | Optional |
Response
The JSON response is a dictionary whose keys are numbered
from "1" to "n". Each entry
contains one address complement.
| Field | Description | France | International |
|---|---|---|---|
| Batiment | Building or apartment complement label. | String (38) | String (150) |
| CodePostal | Postal code associated with the complement. | Not available | String (10) |
Response example
Response example - France (1 Rue de la Louisiane, 31200 Toulouse)
Response example - International (GBR)
Errors
| HTTP | Error type | Response body |
|---|---|---|
| 401 |
Missing or empty Licence parameter
|
unauthorized_client
|
| 401 | Incorrect or expired licence key |
unauthorized_client
|
| 400 |
Missing IDVoie parameter
|
Bad Request Parameters empty fields
|
| 400 |
Missing IDNum parameter
|
Bad Request Parameters empty fields
|
| 400 |
Missing Pays parameter
|
Bad Request Parameters empty fields
|
| 400 |
Parameter name typo (e.g. IdVoie
instead of IDVoie)
|
Bad Request Parameters empty fields
|
Test the API
Click the button below to test this endpoint live in your browser.
Open console
See also
Related to