The RESTful funnelpostcode / funneladdress / funnelcompl endpoints power a guided, postcode-first autocomplete: narrow down to a city, list its streets, then fetch sub-building details for the chosen address.
City selection (funnelpostcode)
First step of the funnel approach. Returns matching cities
and postal codes from a partial postal code or city name
input. The CityId from each result feeds
the next step: funneladdress.
Request
funnelpostcode 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 |
| PostalCode |
{POSTAL_CODE}
|
Postal code or city name input. | Mandatory |
| Country |
{COUNTRY_CODE}
|
ISO 3166-1 alpha-3 country code for the address
search scope. Example: FRA or
GBR.
|
Mandatory |
| Extended |
Y or N
|
Enables search from just 2 characters in
the postal code input. Default: N.
|
Optional |
| Limit |
{NB}
|
Maximum number of locality suggestions returned. | Optional |
| Length |
{LENGTH}
|
Maximum character length for address fields
returned. Applies to Latin-character addresses
only. Default: 38. Recommended
minimum: 32.
|
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 containing
a Found count and a PostalCodes
array.
Extended=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.
Top-level
| Key | Description | Type |
|---|---|---|
| Found | Number of locality suggestion objects returned. | Integer |
| PostalCodes | Array of locality suggestion objects. | Array |
Locality suggestion object - PostalCodes[n]
| Key | Description | France | International |
|---|---|---|---|
| PostalCode | Postal code of the address. | String (10) | String (10) |
| City | City name. | String (38) | String (50) |
| Hamlet | Named locality or hamlet (France) or equivalent district-level field (international). Availability varies by country. | String (38) | String (50) |
| SpecialDistribution |
CEDEX indicator: 1 = CEDEX address,
0 = not CEDEX.
|
String (1) | String (1) |
| Country | ISO 3166-1 alpha-3 country code. | String (3) | String (3) |
| AdministrativeArea | County or equivalent administrative level. | Empty | String (50) |
| StateLabel |
State or administrative region ISO label
(e.g. ISHIKAWA for Japan).
|
Not available | String (50) |
| StateCode |
State or administrative region ISO code (e.g.
17 for Japan).
|
String (50) | String (50) |
| SubLocality | Sub-locality (district, borough, suburb). | Empty | String (50) |
| CityId | Unique city identifier (INSEE code for France). | String (20) | String (20) |
| 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 |
Informations object - PostalCodes[n].Informations
Populated only when the postal code maps directly to a specific address (e.g. CEDEX codes in France). Otherwise all fields are empty.
| Key | Description | France | International |
|---|---|---|---|
| AdditionalAddress | Additional address line. | Empty | String (50) |
| AdditionalAddress_2 | Second additional address line. | Empty | String (50) |
| StreetNumberList |
Semicolon-separated list of valid street
numbers for the matched street. Always contains
all numbers when present; empty when StreetId
is absent.
|
String (1024) | String (1024) |
| StreetType |
Street type (e.g., RUE, AVENUE,
BOULEVARD). Not returned for
all international datasets.
|
String (20) | String (20) |
| Street | Street name. | String (38) | String (150) |
| Suburb | Suburb or district. | Empty | String (50) |
| StreetId |
Unique street identifier. Populated only
when the postal code maps to a specific street.
When present, you can skip funneladdress
and pass StreetId directly to
funnelcompl.
|
String (20) | String (20) |
| Company | Company name. | String (38) | String (38) |
Response example
Response example - France (75008 Paris)
Response example - Japan (108-6390)
Errors
The RESTful endpoint returns a structured JSON error body with an HTTP status code, a message, and an error identifier.
| HTTP | Error type | Response body |
|---|---|---|
| 400 | Missing a mandatory parameter |
{"status":400,"message":"Missing parameters","details":"PostalCode,Licence","error":"bad
request"}
|
| 400 | Country code is not valid ISO 3166-1 alpha-3 |
{"status":400,"message":"Country doesn't
exist","details":"INVALID","error":"bad
request"}
details echoes back the value
you
sent in Country - it will show
your actual input, not always the literal
INVALID shown here.
|
| 401 | Incorrect or unauthorized licence number |
{"status":401,"message":"Your licence
is not allowed to cover this functionnality","details":"WRONG","error":"unauthorized_client"}
|
Test the API
Click the button below to test this endpoint live in your browser.
Open console
Address search (funneladdress)
Second step of the funnel approach. Given a CityId
from funnelpostcode and a partial street name, returns
matching streets. The StreetId from each
result feeds the final step: funnelcompl.
Request
funneladdress supports both GET and POST.
l'église
→ l%27%C3%A9glise.
cURL example
France - CityId from previous funnelpostcode 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 |
| CityId |
{CITY_ID}
|
City identifier returned by funnelpostcode
in the CityId field. Scopes
the street search to the selected city.
|
Mandatory |
| Country |
{COUNTRY_CODE}
|
ISO 3166-1 alpha-3 country code for the address
search scope. Example: FRA or
GBR.
|
Mandatory |
| Street |
{INPUT}
|
Partial street name entered by the user. | Mandatory |
| Limit |
{NB}
|
Maximum number of address suggestions returned. | Optional |
| Length |
{LENGTH}
|
Maximum character length for address fields
returned. Applies to Latin-character addresses
only. Default: 38. Recommended
minimum: 32.
|
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 |
| Version |
1.1
|
When set to 1.1, populates the
Hamlet field for small towns.
Without it, small town names appear in the
City field in brackets instead.
|
Optional |
Response
On success, the response is a JSON object with two top-level
keys: Found (integer) and Addresses
(array of address suggestion objects).
Top-level
| Key | Description | Type |
|---|---|---|
| Found | Number of address suggestion objects returned. | Integer |
| Addresses | Array of address suggestion objects. | Array |
Address suggestion object - Addresses[n]
| Key | Description | France | International |
|---|---|---|---|
| PostalCode | Postal code of the address. | String (10) | String (10) |
| City | City name. | String (38) | String (50) |
| Hamlet |
Named locality or hamlet (France) or equivalent
district-level field (international). Populated
when Version=1.1 is set. Availability
varies by country.
|
String (38) | String (50) |
| SpecialDistribution |
CEDEX indicator: 1 = CEDEX address,
0 = not CEDEX.
|
String (1) | String (1) |
| Country | ISO 3166-1 alpha-3 country code. | String (3) | String (3) |
| StateCode |
State or administrative region ISO code (e.g.
17 for Japan).
|
Empty | String (50) |
| StateLabel |
State or administrative region ISO label
(e.g. ISHIKAWA for Japan).
|
Not available | String (50) |
| AdministrativeArea | County or equivalent administrative level. | Empty | String (50) |
| SubLocality | Sub-locality (district, borough, suburb). | Empty | String (50) |
| Suburb | Suburb or district. | Empty | String (50) |
| CityId | Unique city identifier (INSEE code for France). | String (20) | String (20) |
| Input | Normalised form of the submitted street input. May differ from the original input in casing or formatting. | String (255) | String (255) |
| 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 →
|
Empty | String (255) |
| Street | Street name. | String (38) | String (150) |
| StreetId | Unique street identifier. Used as input to funnelcompl. | String (20) | String (20) |
| StreetType |
Street type (e.g., RUE, AVENUE,
BOULEVARD). Not returned for
all international datasets.
|
String (20) | String (20) |
| StreetNumber | Full street number including any complement (bis, ter, etc.). | String (38) | String (38) |
| StreetNumberOnly | Street number only, without any complement (bis, ter, etc.). | Empty | String (4) |
| StreetNumberList | 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) |
| StreetNumberListCount | When the queried number is not found or missing, returns the total count of valid street numbers for this street. | Empty | String |
| IsValidStreetNumber |
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 |
| AdditionalAddress | Additional address information (building name, floor, etc.). Availability varies by country - see integration guide. | Empty | String (50) |
| Company | Company name associated with the address. | String (38) | String (38) |
| 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 |
Populated
when Version=1.1
Response example
Response example - France (Rue de la Bienfaisance, 75008 Paris)
Response example - Japan (三田, 108-6390)
Japan - CityId 402573_1086390, Langue=JP (Kanji)
Errors
The RESTful endpoint returns a structured JSON error body with an HTTP status code, a message, and an error identifier.
| HTTP | Error type | Response body |
|---|---|---|
| 400 | Missing a mandatory parameter |
{"status":400,"message":"Missing parameters","details":"CityID","error":"bad
request"}
|
| 400 | Country code is not valid ISO 3166-1 alpha-3 |
{"status":400,"message":"Country doesn't
exist","details":"JPNde","error":"bad
request"}
details echoes back the value
you
sent in Country - it will show
your actual input, not always the literal
JPNde shown here.
|
| 401 | Incorrect or unauthorized licence number |
{"status":401,"message":"Your licence
is not allowed to cover this functionnality","details":"WRONG
LICENSE","error":"unauthorized_client"}
|
Test the API
Click the button below to test this endpoint live in your browser.
Open console
Building (funnelcompl)
Final step of the funnel approach. Given a StreetId
and StreetNumber from funneladdress, returns
a list of sub-building suggestions: building names, floor
numbers, company names, apartment numbers.
Request
funnelcompl supports both GET and POST.
StreetId field of the
funneladdress response when the user selects a street.
Contact your DQE account manager to obtain these credentials.
cURL example
France - StreetId from previous funneladdress step
When the user has not entered a street number,
pass an empty StreetNumber parameter:
&StreetNumber=
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 |
| StreetId |
{STREET_ID}
|
Unique street identifier returned by funneladdress
in the StreetId field.
|
Mandatory |
| Country |
{COUNTRY_CODE}
|
ISO 3166-1 alpha-3 country code for the address
search scope. Example: FRA or
GBR.
|
Mandatory |
| StreetNumber |
{NUMBER}
|
Street number selected by the user - corresponds
to the StreetNumber field from
the funneladdress response.
|
Mandatory |
| Length |
{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 |
Response
On success, the response is a JSON object with three
top-level keys: Found,
AdditionalAddresses (array), and a
Geolocalisation geocoordinates object.
Top-level
| Key | Description | Type |
|---|---|---|
| Found | Number of address complement objects returned. | Integer |
| AdditionalAddresses | Array of address complement objects. | Array |
| Geolocalisation | Geocoordinates of the matched address. Empty when not available for this address type. | Object |
AdditionalAddress object - AdditionalAddresses[n]
| Key | Description | France | International |
|---|---|---|---|
| AdditionalAddress | Building or apartment complement label. | String (38) | String (150) |
| PostalCode | Postal code associated with the complement. | String | String |
Geocoordinates - Geolocalisation
| Key | Description | France | International |
|---|---|---|---|
| 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 |
Response example
Response example - France (1 Rue de la Louisiane, 31200 Toulouse)
Errors
The RESTful endpoint returns a structured JSON error body with an HTTP status code, a message, and an error identifier.
| HTTP | Error type | Response body |
|---|---|---|
| 400 | Missing a mandatory parameter |
{"status":400,"message":"Missing parameters","details":"StreetId","error":"bad
request"}
|
| 400 | Country code is not valid ISO 3166-1 alpha-3 |
{"status":400,"message":"Country doesn't
exist","details":"JPNde","error":"bad
request"}
details echoes back the value
you
sent in Country - it will show
your actual input, not always the literal
JPNde shown here.
|
| 401 | Incorrect or unauthorized licence number |
{"status":401,"message":"Your licence
is not allowed to cover this functionnality","details":"WRONG
LICENSE","error":"unauthorized_client"}
|
Test the API
Click the button below to test this endpoint live in your browser.
Open console
See also
Related to