MENU navbar-image

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:

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."
    ]
}
 

Request   

GET nl/v5/find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   string   

Provide a Dutch formatted zipcode. Example: 1014BA

houseno   integer   

Provide a house number. Example: 37

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."
    ]
}
 

Request   

GET nl/v5/getAddress

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   string   

Provide a Dutch formatted zipcode. Example: 1014BA

houseno   integer   

Provide a house number. Example: 37

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"
    ]
}
 

Request   

GET nl/v5/zipcode-location

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   string   

Provide a Dutch formatted zipcode. Example: 1014BA

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"
    ]
}
 

Request   

GET nl/v5/getPostcode

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   string   

Provide a Dutch formatted zipcode. Example: 1014BA

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):


{}
 

Request   

GET be/v3/find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

street   string   

Provide part of a street name to complete. Example: Koningin Maria

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."
    ]
}
 

Request   

GET be/v3/zipcode-find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcodezone   string   

Part of a zipcode or city name to complete. Example: Brussel or Example: 1050

language   string  optional  

You can specify the preferred language for the results in bilingual municipalities. Example: fr

multiresults   integer  optional  

Enable bilingual results in bilingual municipalities, for example Brussel/Bruxelles. Default: disabled (0). To enable, set to 1. Example: 0

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."
    ]
}
 

Request   

GET be/v3/postcode-find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcodezone   string   

Part of a zipcode or city name to complete. Example: Brussel or Example: 1050

language   string  optional  

Can contain the preferred language you want the results in for municipalities with language facilities. Example: fr

multiresults   integer  optional  

Allow multiple results for municipalities with language facilities, works for zipcodes, by default off. Example: 0

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."
    ]
}
 

Request   

GET be/v3/street-find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   integer   

Provide a zipcode. Example: 1040

city   string   

Provide a city name. Example: Brussel

street   string   

Provide a partial street name. Example: Rue de C

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."
    ]
}
 

Request   

GET be/v3/houseno-find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   integer   

Provide a zipcode. Example: 9000

city   string   

Provide a city name. Example: Gent

street   string   

Provide a street name. Example: Vliegtuiglaan

streetid   string  optional  

Can be retrieved with 'street-find' call. Example: 90009326765993242

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."
    ]
}
 

Request   

GET be/v3/houseno-match

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   integer   

Provide a zipcode. Example: 9700

city   string   

Provide a city name. Example: Oudenaarde

street   string   

Provide a street name. Example: Aalststraat

streetid   string  optional  

Provide a streetid. Instead of providing individual parameters like zip code, city, and street, you can use a streetid for a faster and more precise search result. The streetid can be obtained by making a 'street-find' API call. Example: 97009815732968962

houseno   integer   

Provide a house number. Example: 2

addon   string  optional  

Provide the addon. Example: A

strict   integer  optional  

Provide 0 or 1. By default, this is turned off (value 0) and it returns results when houseno is found. When set to 1, this strict mode is activated and the response will only return results when houseno and addon combination are met. Example: 0

only_status   integer  optional  

Provide 0 or 1. By default, this is turned off (value 0). When turned on, the response returns no body content, only HTTP STATUS 204 when matched. Example: 0

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):


{}
 

Request   

GET de/v1/find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

street   string   

Provide part of a street name to complete. Example: Marbacher

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):


{}
 

Request   

GET de/v1/zipcode-find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcodezone   string   

Provide part of a zipcode or city name to complete. Example: Hilden or Example: 4072

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):


{}
 

Request   

GET de/v1/postcode-find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcodezone   string   

Provide part of a zipcode or city name to complete. Example: Hilden or Example: 4072

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."
    ]
}
 

Request   

GET de/v1/street-find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   integer   

Provide a zipcode. Example: 40724

city   string   

Provide a city name. Example: Hilden

street   string   

Provide a partial street name. Example: Ka

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."
    ]
}
 

Request   

GET de/v1/houseno-find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   integer   

Provide a zipcode. Example: 40724

city   string   

Provide a city name. Example: Hilden

street   string   

Provide a street name. Example: Kalstert

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."
    ]
}
 

Request   

GET de/v1/houseno-match

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   integer   

Provide a zipcode. Example: 40724

city   string   

Provide a city name. Example: Hilden

street   string   

Provide a street name. Example: Tucherweg

houseno   integer   

Provide the house number. Example: 48

addon   string  optional  

Provide the addon. Example: A

strict   integer  optional  

Provide 0 or 1. By default this is turned off (value 0) and it returns results when houseno is found. When set to 1, this strict mode is activated and the response will only return results when houseno + addon combination is met. Example: 0

only_status   integer  optional  

Provide 0 or 1. By default this is turned off (value 0). When turned on, the response returns no body content, only HTTP STATUS 204 when matched. Example: 0

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"
}
 

Request   

GET nl/v3/json/getAddress

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

postcode   string   

a valid Dutch zip code. Example: 1014BA

huisnummer   integer   

a house number. Example: 37

client_id   integer   

your {YOUR_CLIENT_ID}. Example: 1177

secure_code   string   

your secure code {YOUR_AUTH_KEY}. Example: 9SRLYBCALURPE2B

🗄️ 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."
    ]
}
 

Request   

GET nl/v4/getAddress

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   string   

a valid Dutch zip code. Example: 1014BA

houseno   integer   

a house number. Example: 37

🇳🇱 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"
}
 

Request   

GET nl/v4/getPostcode

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   string   

a valid Dutch zip code. Example: 1014BA

🗄️ 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"
    }
}
 

Request   

GET be/v2/find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

street   string   

Part of a street name to complete. Example: Koningin Maria

🇧🇪 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"
    }
]
 

Request   

GET be/v2/postcode-find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcodezone   integer   

Part of a zip code or city name to complete. Example: Brussel or Example: 1040

🇧🇪 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",
  }
]
 

Request   

GET be/v2/street-find

Headers

X-SecureCode      

Example: 9SRLYBCALURPE2B

X-ClientId      

Example: 1177

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zipcode   integer   

a zip code. Example: 1040

city   string   

a city name. Example: Brussel

street   string   

a partial street name. Example: Rue de la