Address Autocomplete and Verification API
With the Postcode Service API you can autocomplete a partly given address and check its validity.
Since 2009, our API has been providing vendor-neutral solutions for accurate package delivery and fraud prevention, saving clients millions. It also streamlines address form filling on websites for speed and accuracy. We're committed to delivering high-quality, flexible API services that empower our clients' success.
Premium API
Test credentials are provided below for initial usage. However, a subscription plan is necessary for continued access to this API. Visit postcodeservice.com/#compare-packages to view pricing details and to purchase a subscription.
Additional plugins
For Adobe Magento users, we offer an out-of-the-box solution: the Postcode Service Magento extension. This extension, utilizing the same API, allows for easy and accurate address verification at checkout when using the Magento platform. It's available for download from our GitHub repository at github.com/postcodeservice/postcode-magento2. Our team of experts in Amsterdam develop, support, and maintain this extension to provide seamless integration with the Postcode Service API.
The Dutch company JustBetter has developed an alternative for the default Adobe Magento PWA frontend and integrated the Postcode Service with this frontend. This integration is available for download from their GitHub repository at github.com/rapidez/postcodeservice.
Technical support
You can contact our technical support team via postcodeservice.com/support.
About us
Postcode Service is a trademark of the Total Internet Group B.V.
Authenticating requests
Our API uses authenticated requests. In order to make an authenticated request, add the follow headers along with your API call:
-
One header should contain
X-ClientId
with the value{YOUR_CLIENT_ID}
. -
The second header should contain
X-SecureCode
with the value{YOUR_SECURE_CODE}
. -
For optimal performance, we recommend adding the
X-Domain
header with the value{YOUR_DOMAIN_URL}
to your API requests. This header helps distribute your requests evenly across our load balancers, which can improve response times and enhance overall API performance. Although this header is optional, we highly recommend using it to ensure the best possible user experience.
You can replace {YOUR_CLIENT_ID}
and
{YOUR_SECURE_CODE}
with the credentials in the table below for testing.
Visit
postcodeservice.com to obtain your unique
ClientId
and SecureCode
.
Failed authentication responses are JSON objects with these properties:
Status | HTTP code | JSON Response |
---|---|---|
Authentication failure | 401 |
{
"success": false,
"error_code": 401,
"error": "Unauthorized access"
}
|
Reached contract usage limit | 402 |
{
"success": false,
"error_code": 402,
"error": "Reached usage limit"
}
|
Contract expired | 403 |
{
"success": false,
"error_code": 403,
"error": "Contract expired"
}
|
Test credentials
Try it yourself with the provided credentials below.
X-ClientId | 1177 |
X-SecureCode | 9SRLYBCALURPE2B |
X-Domain (optional) | your-domain-name.com |
Please note that these test credentials have limitations, including daily usage limits and added delays.
Rate Limiting Policies
If you receive a
429
HTTP server response code (429 Too Many Requests) when making API calls, it indicates that you have sent too many requests in a given amount of time.
By default, the maximum number of requests allowed is 10 requests per second.
Once your requests fall below this limit, you will receive the usual API responses again.
Status | HTTP code | JSON Response |
---|---|---|
Exceeded request rate | 429 |
{
"success": false,
"error_code": 429,
"error": "Exceeded request rate limit"
}
|
If you require a higher rate limit than the default, please contact your account manager at +31 20 218 1024. They will be able to assist you in increasing your rate limit to meet your needs.
🇳🇱 Netherlands API
🇳🇱 find - Get address for specified zipcode and house number
requires authentication
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/nl/v5/find?zipcode=1014BA&houseno=37" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/nl/v5/find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '1014BA',
'houseno' => '37',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/nl/v5/find'
params = {
'zipcode': '1014BA',
'houseno': '37',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/nl/v5/find"
);
const params = {
"zipcode": "1014BA",
"houseno": "37",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"street": "Kabelweg",
"city": "Amsterdam",
"region": "Noord-Holland",
"residential": "no",
"latitude": 52.39267104872,
"longitude": 4.8465930696013
}
Example response (200, Not found, no match):
{
"success": false,
"error": "Postcode not found"
}
Example response (422, Houseno contains non-integer characters):
{
"houseno": [
"The houseno must be an integer."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
street
string
Returns a string or null when unknown
city
string
Returns a string or null when unknown
region
string
Returns a string or null when unknown
residential
string
Returns "yes", "no" or "unknown". Says whether the address is residential or not.
latitude
number
Returns a float or null when unknown
longitude
number
Returns a float or null when unknown
🇳🇱 getAddress - Get address for specified zipcode and house number
requires authentication
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/nl/v5/getAddress?zipcode=1014BA&houseno=37" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/nl/v5/getAddress',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '1014BA',
'houseno' => '37',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/nl/v5/getAddress'
params = {
'zipcode': '1014BA',
'houseno': '37',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/nl/v5/getAddress"
);
const params = {
"zipcode": "1014BA",
"houseno": "37",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"street": "Kabelweg",
"city": "Amsterdam",
"region": "Noord-Holland",
"residential": "no",
"latitude": 52.39267104872,
"longitude": 4.8465930696013
}
Example response (200, Not found, no match):
{
"success": false,
"error": "Postcode not found"
}
Example response (422, Houseno contains non-integer characters):
{
"houseno": [
"The houseno must be an integer."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
street
string
Returns a string or null when unknown
city
string
Returns a string or null when unknown
region
string
Returns a string or null when unknown
residential
string
Returns "yes", "no" or "unknown". Says whether the address is residential or not.
latitude
number
Returns a float or null when unknown
longitude
number
Returns a float or null when unknown
🇳🇱 zipcode-location - Get location information for specified zipcode
requires authentication
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/nl/v5/zipcode-location?zipcode=1014BA" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/nl/v5/zipcode-location',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '1014BA',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/nl/v5/zipcode-location'
params = {
'zipcode': '1014BA',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/nl/v5/zipcode-location"
);
const params = {
"zipcode": "1014BA",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"latitude": 52.395421328766,
"longitude": 4.8463096822221
}
Example response (200, Not found, no match):
{
"success": false,
"error": "Postcode not found"
}
Example response (422, Zipcode is not valid):
{
"zipcode": [
"zipcode must follow the Netherlands standard of four digits, should be in the range of 1000 - 9999, followed by two letters"
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
latitude
number
Returns a float or null when unknown
longitude
number
Returns a float or null when unknown
🇳🇱 getPostcode - Get location information for specified zipcode
requires authentication
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/nl/v5/getPostcode?zipcode=1014BA" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/nl/v5/getPostcode',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '1014BA',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/nl/v5/getPostcode'
params = {
'zipcode': '1014BA',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/nl/v5/getPostcode"
);
const params = {
"zipcode": "1014BA",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"latitude": 52.395421328766,
"longitude": 4.8463096822221
}
Example response (200, Not found, no match):
{
"success": false,
"error": "Postcode not found"
}
Example response (422, Zipcode is not valid):
{
"zipcode": [
"zipcode must follow the Netherlands standard of four digits, should be in the range of 1000 - 9999, followed by two letters"
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
latitude
number
Returns a float or null when unknown
longitude
number
Returns a float or null when unknown
🇧🇪 Belgium API
🇧🇪 find - Completes a street name
requires authentication
This endpoint expects a part of a street name and will return a list of all street names which start with the given string.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/be/v3/find?street=Koningin+Maria" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/be/v3/find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'street' => 'Koningin Maria',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/be/v3/find'
params = {
'street': 'Koningin Maria',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/be/v3/find"
);
const params = {
"street": "Koningin Maria",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"0": {
"city": "Gent",
"label": "Koningin Maria Hendrikaplein - Gent (9000)",
"street": "Koningin Maria Hendrikaplein",
"streetid": "90003232576176359",
"streetlang": "nl",
"type": "Street",
"zipcode": 9000
},
"1": {
"city": "Vorst",
"label": "Koningin Maria-Hendrikalaan - Vorst (1190)",
"street": "Koningin Maria-Hendrikalaan",
"streetid": "11905652175755593",
"streetlang": "nl",
"type": "Street",
"zipcode": 1190
},
"2": {
"city": "Leopoldsburg",
"label": "Koningin Maria-Henriettelaan - Leopoldsburg (3970)",
"street": "Koningin Maria-Henriettelaan",
"streetid": "39702545161554421",
"streetlang": "nl",
"type": "Street",
"zipcode": 3970
}
}
Example response (200, No results are found for given street name):
{}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
city
string
Returns a string or null when unknown
label
string
Returns a string or null when unknown. Format: street - city (zipcode)
street
string
Returns a string or null when unknown
streetid
string
Returns a string, consisting of a unique street id (maximum length 13-characters)
streetlang
string
Returns "fr" or "nl" or null when unknown
type
string
Returns "Street" or null when unknown
zipcode
integer
Returns an integer or null when unknown
🇧🇪 zipcode-find - Completes a zipcode or city name
requires authentication
This endpoint expects a part of zipcode or city name and will return a list of matches. Optional settings are available to retrieve city names in one or more specific languages.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/be/v3/zipcode-find?zipcodezone=1050&language=fr&multiresults=0" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/be/v3/zipcode-find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcodezone' => '1050',
'language' => 'fr',
'multiresults' => '0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/be/v3/zipcode-find'
params = {
'zipcodezone': '1050',
'language': 'fr',
'multiresults': '0',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/be/v3/zipcode-find"
);
const params = {
"zipcodezone": "1050",
"language": "fr",
"multiresults": "0",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"zipcode": 1050,
"city": "Bruxelles",
"latitude": 50.8222854,
"longitude": 4.3815707
},
{
"zipcode": 1050,
"city": "Ixelles",
"latitude": 50.8222854,
"longitude": 4.3815707
},
{
"zipcode": 1050,
"city": "Saint-Gilles",
"latitude": 50.8222854,
"longitude": 4.3815707
}
]
Example response (200, multiresults=1):
[
{
"city": "Brussel",
"zipcode": 1050,
"latitude": 50.8222854,
"longitude": 4.3815707
},
{
"city": "Bruxelles",
"zipcode": 1050,
"latitude": 50.8222854,
"longitude": 4.3815707
},
{
"city": "Ixelles",
"zipcode": 1050,
"latitude": 50.8222854,
"longitude": 4.3815707
},
...
]
Example response (200, No results are found for given zipcode or city name):
{}
Example response (422, The multiresult parameter is not valid):
{
"multiresults": [
"The selected multiresults is invalid."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
zipcode
integer
Returns an integer or null when unknown
city
string
Returns a string or null when unknown
latitude
number
Returns a float or null when unknown
longitude
number
Returns a float or null when unknown
🇧🇪 postcode-find - Completes a zipcode or city name (same as zipcode-find)
requires authentication
This endpoint expects a part of zipcode or city name and will return a list of matches. There are optional settings to get city names in specific or multiple language facilities.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/be/v3/postcode-find?zipcodezone=1050&language=fr&multiresults=0" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/be/v3/postcode-find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcodezone' => '1050',
'language' => 'fr',
'multiresults' => '0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/be/v3/postcode-find'
params = {
'zipcodezone': '1050',
'language': 'fr',
'multiresults': '0',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/be/v3/postcode-find"
);
const params = {
"zipcodezone": "1050",
"language": "fr",
"multiresults": "0",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"zipcode": 1050,
"city": "Bruxelles",
"latitude": 50.8222854,
"longitude": 4.3815707
},
{
"zipcode": 1050,
"city": "Ixelles",
"latitude": 50.8222854,
"longitude": 4.3815707
},
{
"zipcode": 1050,
"city": "Saint-Gilles",
"latitude": 50.8222854,
"longitude": 4.3815707
}
]
Example response (200, multiresults=1):
[
{
"city": "Brussel",
"zipcode": 1050,
"latitude": 50.8222854,
"longitude": 4.3815707
},
{
"city": "Elsene",
"zipcode": 1050,
"latitude": 50.8222854,
"longitude": 4.3815707
},
{
"city": "Sint-Gillis",
"zipcode": 1050,
"latitude": 50.8222854,
"longitude": 4.3815707
},
{
"city": "Bruxelles",
"zipcode": 1050,
"latitude": 50.8222854,
"longitude": 4.3815707
},
...
]
Example response (200, No results are found for given zipcode):
{}
Example response (422, The language parameter is not valid):
{
"language": [
"The selected language is invalid."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
zipcode
integer
Returns an integer or null when unknown
city
string
Returns a string or null when unknown
latitude
number
Returns a float or null when unknown
longitude
number
Returns a float or null when unknown
🇧🇪 street-find - Completes the street name based on zipcode and city name
requires authentication
This endpoint expects a correct zipcode and city name and a part of a street name. It will return matches street names.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/be/v3/street-find?zipcode=1040&city=Brussel&street=Rue+de+C" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/be/v3/street-find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '1040',
'city' => 'Brussel',
'street' => 'Rue de C',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/be/v3/street-find'
params = {
'zipcode': '1040',
'city': 'Brussel',
'street': 'Rue de C',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/be/v3/street-find"
);
const params = {
"zipcode": "1040",
"city": "Brussel",
"street": "Rue de C",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"street": "Rue de Chambéry",
"streetid": "10407791515129598",
"streetlang": "fr"
},
{
"street": "Rue de Comines",
"streetid": "10403749237592666",
"streetlang": "fr"
}
]
Example response (200, No results are found for given zipcode, city name and street name):
{}
Example response (422, The given zipcode is not valid):
{
"zipcode": [
"The zipcode must be an integer."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
street
string
Returns a string or null when unknown
streetid
string
Returns a string, consisting of a unique 13-character street id
streetlang
string
Returns "fr" or "nl" or null when unknown
🇧🇪 houseno-find - Find house numbers and addons for a given street name
requires authentication
This endpoint expects a zipcode, city name and street name and will return all house numbers and addons for the street.
Alternatively, you can use the streetid, then this endpoint expects a streetid and will return all the house numbers and addons for the street.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/be/v3/houseno-find?zipcode=9000&city=Gent&street=Vliegtuiglaan&streetid=90009326765993242" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/be/v3/houseno-find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '9000',
'city' => 'Gent',
'street' => 'Vliegtuiglaan',
'streetid' => '90009326765993242',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/be/v3/houseno-find'
params = {
'zipcode': '9000',
'city': 'Gent',
'street': 'Vliegtuiglaan',
'streetid': '90009326765993242',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/be/v3/houseno-find"
);
const params = {
"zipcode": "9000",
"city": "Gent",
"street": "Vliegtuiglaan",
"streetid": "90009326765993242",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"1": {
"zipcode": 9000,
"city": "Gent",
"street": "Vliegtuiglaan",
"houseno": 5,
"addon": "",
"box": "",
"latitude": 51.0762139660024,
"longitude": 3.743976319518731,
"streetlang": "nl"
},
"2": {
"zipcode": 9000,
"city": "Gent",
"street": "Vliegtuiglaan",
"houseno": 5,
"addon": "A",
"box": "",
"latitude": 51.076442728654754,
"longitude": 3.743193577395459,
"streetlang": "nl"
},
...
}
Example response (200, No results are found for given zipcode, street and city name):
{}
Example response (422, The zipcode is not valid):
{
"zipcode": [
"The zipcode must be an integer."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
zipcode
integer
Returns an integer or null when unknown
city
string
Returns a string or null when unknown
street
string
Returns a string or null when unknown
houseno
integer
Returns an integer or null when unknown
addon
string
Returns a string or null when unknown
box
string
Returns a string or null when unknown
latitude
number
Returns a float or null when unknown
longitude
number
Returns a float or null when unknown
streetlang
string
Returns "fr" or "nl" or null when unknown
🇧🇪 houseno-match - Exactly match a house number
requires authentication
This endpoint expects a zipcode, city name and street name, house number and will return if the house number exists.
Alternatively, you can use the streetid, then this endpoint expects a streetid and house number and will return if the house number exists.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/be/v3/houseno-match?zipcode=9700&city=Oudenaarde&street=Aalststraat&streetid=97009815732968962&houseno=2&addon=A&strict=0&only_status=0" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/be/v3/houseno-match',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '9700',
'city' => 'Oudenaarde',
'street' => 'Aalststraat',
'streetid' => '97009815732968962',
'houseno' => '2',
'addon' => 'A',
'strict' => '0',
'only_status' => '0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/be/v3/houseno-match'
params = {
'zipcode': '9700',
'city': 'Oudenaarde',
'street': 'Aalststraat',
'streetid': '97009815732968962',
'houseno': '2',
'addon': 'A',
'strict': '0',
'only_status': '0',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/be/v3/houseno-match"
);
const params = {
"zipcode": "9700",
"city": "Oudenaarde",
"street": "Aalststraat",
"streetid": "97009815732968962",
"houseno": "2",
"addon": "A",
"strict": "0",
"only_status": "0",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200, houseno=2, addon=A, strict=0):
{
"0": {
"street": "Aalststraat",
"city": "Oudenaarde",
"zipcode": 9700,
"houseno": 2,
"addon": "A",
"box": "",
"latitude": 50.836103462329454,
"longitude": 3.609555401482935,
"streetlang": "nl"
}
}
Example response (200, houseno=2, addon=, strict=0):
{
"0": {
"street": "Aalststraat",
"city": "Oudenaarde",
"zipcode": 9700,
"houseno": 2,
"addon": "A",
"box": "",
"latitude": 50.836103462329454,
"longitude": 3.609555401482935,
"streetlang": "nl"
},
"2": {
"street": "Aalststraat",
"city": "Oudenaarde",
"zipcode": 9700,
"houseno": 2,
"addon": "B",
"box": "",
"latitude": 50.83624399941114,
"longitude": 3.609739681774569,
"streetlang": "nl"
},
"3": {
"street": "Aalststraat",
"city": "Oudenaarde",
"zipcode": 9700,
"houseno": 2,
"addon": "C",
"box": "",
"latitude": 50.83639258854224,
"longitude": 3.6098762734984335,
"streetlang": "nl"
},
}
Example response (200, No results are found for given zipcode, street, houseno and city name):
{}
Example response (204, houseno=2, addon=, strict=0, only_status=1, matched):
Empty response
Example response (418, houseno=2, addon=F, strict=1, only_status=1, no match):
{}
Example response (422, The zipcode is not valid):
{
"zipcode": [
"The zipcode must be an integer."
]
}
Example response (422, The strict parameter is not valid):
{
"strict": [
"The selected strict is invalid."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
street
string
Returns a string or null when unknown
city
string
Returns a string or null when unknown
zipcode
integer
Returns an integer or null when unknown
houseno
integer
Returns an integer or null when unknown
addon
string
Returns a string or null when unknown
box
string
Returns a string or null when unknown
latitude
number
Returns a float or null when unknown
longitude
number
Returns a float or null when unknown
streetlang
string
Returns "fr" or "nl" or null when unknown
🇩🇪 Germany API
Version 1 of the Germany zipcode validation.
🇩🇪 find - Completes a street name
requires authentication
This endpoint expects a part of a street name and will return a list of all street names which start with the given string.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/de/v1/find?street=Marbacher" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/de/v1/find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'street' => 'Marbacher',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/de/v1/find'
params = {
'street': 'Marbacher',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/de/v1/find"
);
const params = {
"street": "Marbacher",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"label": "Marbacher Berg - Amt Wachsenburg (99334)",
"type": "Street",
"zipcode": 99334,
"city": "Amt Wachsenburg",
"street": "Marbacher Berg",
"streetlang": "de",
"streetid": "993342231655576189"
},
{
"label": "Marbacher Chaussee - Erfurt (99092)",
"type": "Street",
"zipcode": 99092,
"city": "Erfurt",
"street": "Marbacher Chaussee",
"streetlang": "de",
"streetid": "990928511797344426"
},
...
]
Example response (200, No results are found for given street):
{}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
city
string
Returns a string or null when unknown
label
string
Returns a string or null when unknown. Format: street - city (zipcode)
street
string
Returns a string or null when unknown
streetid
string
Returns a string, consisting of a unique 13-character street id
streetlang
string
Returns "de" or null when unknown
type
string
Returns "Street" or null when unknown
zipcode
integer
Returns an integer or null when unknown
🇩🇪 zipcode-find - Completes a zipcode or city name
requires authentication
This endpoint expects a part of zipcode or city name and will return a list of matches. There are optional settings to get city names in specific or multiple language facilities.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/de/v1/zipcode-find?zipcodezone=4072" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/de/v1/zipcode-find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcodezone' => '4072',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/de/v1/zipcode-find'
params = {
'zipcodezone': '4072',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/de/v1/zipcode-find"
);
const params = {
"zipcodezone": "4072",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"zipcode": 40721,
"city": "Hilden"
},
{
"zipcode": 40723,
"city": "Hilden"
},
{
"zipcode": 40724,
"city": "Hilden"
}
]
Example response (200, No results are found for given zipcode or city name):
{}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
zipcode
integer
city
string
🇩🇪 postcode-find - Completes a zipcode or city name (same as zipcode-find)
requires authentication
This endpoint expects a part of zipcode or city name and will return a list of matches. There are optional settings to get city names in specific or multiple language facilities.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/de/v1/postcode-find?zipcodezone=4072" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/de/v1/postcode-find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcodezone' => '4072',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/de/v1/postcode-find'
params = {
'zipcodezone': '4072',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/de/v1/postcode-find"
);
const params = {
"zipcodezone": "4072",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"zipcode": 40721,
"city": "Hilden"
},
{
"zipcode": 40723,
"city": "Hilden"
},
{
"zipcode": 40724,
"city": "Hilden"
}
]
Example response (200, No results are found for given zipcode or city name):
{}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
zipcode
integer
city
string
🇩🇪 street-find - Completes the street name based on zipcode and city name
requires authentication
This endpoint needs a correct zipcode, city name and part of a street name. It will return all found matches.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/de/v1/street-find?zipcode=40724&city=Hilden&street=Ka" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/de/v1/street-find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '40724',
'city' => 'Hilden',
'street' => 'Ka',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/de/v1/street-find'
params = {
'zipcode': '40724',
'city': 'Hilden',
'street': 'Ka',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/de/v1/street-find"
);
const params = {
"zipcode": "40724",
"city": "Hilden",
"street": "Ka",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"street": "Kalstert",
"streetid": "407247266946847986",
"streetlang": "de"
},
{
"street": "Karlrobert-Kreiten-Straße",
"streetid": "407248987927323392",
"streetlang": "de"
},
{
"street": "Käthe-Kollwitz-Weg",
"streetid": "407249782892152973",
"streetlang": "de"
}
]
Example response (200, No results are found for given zipcode, city name and street name):
{}
Example response (422, The given zipcode is not valid):
{
"zipcode": [
"The zipcode must be an integer."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
street
string
Returns a string or null when unknown
streetid
string
Returns a string, consisting of a unique 13-character street id
streetlang
string
Returns "de" or null when unknown
🇩🇪 houseno-find - Find house numbers and addons for a given street name
requires authentication
This endpoint expects a zipcode, city name and street name and will return all house numbers and addons for the street.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/de/v1/houseno-find?zipcode=40724&city=Hilden&street=Kalstert" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/de/v1/houseno-find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '40724',
'city' => 'Hilden',
'street' => 'Kalstert',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/de/v1/houseno-find'
params = {
'zipcode': '40724',
'city': 'Hilden',
'street': 'Kalstert',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/de/v1/houseno-find"
);
const params = {
"zipcode": "40724",
"city": "Hilden",
"street": "Kalstert",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"zipcode": 40724,
"city": "Hilden",
"street": "Kalstert",
"houseno": 1,
"addon": "",
"box": "",
"streetlang": "de"
},
{
"zipcode": 40724,
"city": "Hilden",
"street": "Kalstert",
"houseno": 104,
"addon": "",
"box": "",
"streetlang": "de"
},
...
]
Example response (200, No results are found for given zipcode, city name and street name):
{}
Example response (422, The given zipcode is not valid):
{
"zipcode": [
"The zipcode must be an integer."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
zipcode
integer
Returns an integer or null when unknown
city
string
Returns a string or null when unknown
street
string
Returns a string or null when unknown
houseno
integer
Returns an integer or null when unknown
addon
string
Returns a string or null when unknown
box
string
Returns a string or null when unknown
streetlang
string
Returns "de" or null when unknown
🇩🇪 houseno-match - Exactly match a house number
requires authentication
This endpoint expects a zipcode, city name and street name, house number and will return if the house number exists.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/de/v1/houseno-match?zipcode=40724&city=Hilden&street=Tucherweg&houseno=48&addon=A&strict=0&only_status=0" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/de/v1/houseno-match',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '40724',
'city' => 'Hilden',
'street' => 'Tucherweg',
'houseno' => '48',
'addon' => 'A',
'strict' => '0',
'only_status' => '0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/de/v1/houseno-match'
params = {
'zipcode': '40724',
'city': 'Hilden',
'street': 'Tucherweg',
'houseno': '48',
'addon': 'A',
'strict': '0',
'only_status': '0',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/de/v1/houseno-match"
);
const params = {
"zipcode": "40724",
"city": "Hilden",
"street": "Tucherweg",
"houseno": "48",
"addon": "A",
"strict": "0",
"only_status": "0",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200, houseno=48, addon=A, strict=0):
[
{
"zipcode": 40724,
"city": "Hilden",
"street": "Tucherweg",
"houseno": 48,
"addon": "A",
"box": "",
"streetlang": "de"
}
]
Example response (200, houseno=48, addon=, strict=0):
[
{
"zipcode": 40724,
"city": "Hilden",
"street": "Tucherweg",
"houseno": 48,
"addon": "",
"box": "",
"streetlang": "de"
},
{
"zipcode": 40724,
"city": "Hilden",
"street": "Tucherweg",
"houseno": 48,
"addon": "A",
"box": "",
"streetlang": "de"
}
]
Example response (200, No results are found for given zipcode, city name and street name):
{}
Example response (200, houseno=48, addon=B, strict=1, no match):
[
]
Example response (204, houseno=48, addon=, strict=0, only_status=1, matched):
Empty response
Example response (418, houseno=48, addon=B, strict=1, only_status=1, no match):
"
"
Example response (422, The given zipcode is not valid):
{
"zipcode": [
"The zipcode must be an integer."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
street
string
Returns a string or null when unknown
city
string
Returns a string or null when unknown
zipcode
integer
Returns an integer or null when unknown
houseno
integer
Returns an integer or null when unknown
addon
string
Returns a string or null when unknown
box
string
Returns a string or null when unknown
streetlang
string
Returns "de" or null when unknown
🗄️ Archive
🗄️ Netherlands API v3
🇳🇱 getAddress - Completes a street name
requires authentication
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/nl/v3/json/getAddress?postcode=1014BA&huisnummer=37&client_id=1177&secure_code=9SRLYBCALURPE2B" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/nl/v3/json/getAddress',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'postcode' => '1014BA',
'huisnummer' => '37',
'client_id' => '1177',
'secure_code' => '9SRLYBCALURPE2B',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/nl/v3/json/getAddress'
params = {
'postcode': '1014BA',
'huisnummer': '37',
'client_id': '1177',
'secure_code': '9SRLYBCALURPE2B',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/nl/v3/json/getAddress"
);
const params = {
"postcode": "1014BA",
"huisnummer": "37",
"client_id": "1177",
"secure_code": "9SRLYBCALURPE2B",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"success": true,
"straatnaam": "Kabelweg",
"woonplaats": "Amsterdam"
}
Example response (200, Not found, no match):
{
"success": false,
"error": "Postcode niet gevonden"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
🗄️ Netherlands API v4
🇳🇱 getAddress - Get address for specified postcode and housenumber
requires authentication
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/nl/v4/getAddress?zipcode=1014BA&houseno=37" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/nl/v4/getAddress',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '1014BA',
'houseno' => '37',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/nl/v4/getAddress'
params = {
'zipcode': '1014BA',
'houseno': '37',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/nl/v4/getAddress"
);
const params = {
"zipcode": "1014BA",
"houseno": "37",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"straat": "Kabelweg",
"city": "Amsterdam",
"provincie": "Noord-Holland",
"latitude": 52.39267104872,
"longitude": 4.8465930696013
}
Example response (200, Not found, no match):
{
"success": false,
"error": "Postcode niet gevonden"
}
Example response (422, The given houseno is not valid):
{
"houseno": [
"The houseno must be an integer."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
🇳🇱 getPostcode - Get postcode information for specified postcode
requires authentication
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/nl/v4/getPostcode?zipcode=1014BA" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/nl/v4/getPostcode',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '1014BA',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/nl/v4/getPostcode'
params = {
'zipcode': '1014BA',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/nl/v4/getPostcode"
);
const params = {
"zipcode": "1014BA",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"latitude": 52.395421328766,
"longitude": 4.8463096822221
}
Example response (200, Not found, no match):
{
"success": false,
"error": "Postcode niet gevonden"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
🗄️ Belgium API v2
🇧🇪 find - Completes a street name
requires authentication
This endpoint expects a part of a street name and will return a list of all street names which start with the given string.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/be/v2/find?street=Koningin+Maria" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/be/v2/find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'street' => 'Koningin Maria',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/be/v2/find'
params = {
'street': 'Koningin Maria',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/be/v2/find"
);
const params = {
"street": "Koningin Maria",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"0": {
"label": "Koningin Maria Hendrikaplein - Gent",
"type": "Street",
"postcode": 9000,
"city": "Gent",
"street": "Koningin Maria Hendrikaplein"
},
"1": {
"label": "Koningin Maria-Henriettelaan - Leopoldsburg",
"type": "Street",
"postcode": 3970,
"city": "Leopoldsburg",
"street": "Koningin Maria-Henriettelaan"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
🇧🇪 postcode-find - Completes a zip code or city name
requires authentication
This endpoint expects a part of zipcode or city name and will return a list of matches.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/be/v2/postcode-find?zipcodezone=1040" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/be/v2/postcode-find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcodezone' => '1040',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/be/v2/postcode-find'
params = {
'zipcodezone': '1040',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/be/v2/postcode-find"
);
const params = {
"zipcodezone": "1040",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"postcode": 1040,
"plaats": "Brussel"
},
{
"postcode": 1040,
"plaats": "Etterbeek"
}
]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
🇧🇪 street-find - Completes the street name based on zip code and city name
requires authentication
This endpoint needs a correct zip code, city name and part of a street name. It will return all found matches.
Example request:
curl --request GET \
--get "https://api.postcodeservice.com/be/v2/street-find?zipcode=1040&city=Brussel&street=Rue+de+la" \
--header "X-SecureCode: 9SRLYBCALURPE2B" \
--header "X-ClientId: 1177" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.postcodeservice.com/be/v2/street-find',
[
'headers' => [
'X-SecureCode' => '9SRLYBCALURPE2B',
'X-ClientId' => '1177',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'zipcode' => '1040',
'city' => 'Brussel',
'street' => 'Rue de la',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.postcodeservice.com/be/v2/street-find'
params = {
'zipcode': '1040',
'city': 'Brussel',
'street': 'Rue de la',
}
headers = {
'X-SecureCode': '9SRLYBCALURPE2B',
'X-ClientId': '1177',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.postcodeservice.com/be/v2/street-find"
);
const params = {
"zipcode": "1040",
"city": "Brussel",
"street": "Rue de la",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"X-SecureCode": "9SRLYBCALURPE2B",
"X-ClientId": "1177",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"straat": "Rue de la Loi",
},
{
"straat": "Rue de la Science",
},
{
"straat": "Rue de la Verveine",
}
]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.