MENU navbar-image

Address Autocomplete and Verification API

With the Postcode Service API you can auto complete a partly given address and check its validity.

Since 2009, our API offers vendor-agnostic solutions that help clients save millions by ensuring that their packages are delivered to the correct addresses, preventing fraudulent deliveries, and calculating driver routes based on precise addresses. Additionally, our API can streamline address form filling on various websites, making the process faster and more accurate. We take pride in our commitment to delivering high-quality API services that provide the freedom and flexibility our clients need to succeed.

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 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.

Questions and support

You can contact our experts via support@postcodeservice.com or call our office in Amsterdam +31 20 218 1024.

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.

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.

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

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   string   

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

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   string   

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

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

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

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   number   

Returns a number 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 languages.

Example request:
curl --request GET \
    --get "https://api.postcodeservice.com/be/v3/zipcode-find?zipcodezone=1050+or+Brussel&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 or Brussel',
            '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 or Brussel',
  '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 or Brussel",
    "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
    },
    {
        "city": "Ixelles",
        "zipcode": 1050,
        "latitude": 50.8222854,
        "longitude": 4.3815707
    },
    {
        "city": "Saint-Gillis",
        "zipcode": 1050,
        "latitude": 50.8222854,
        "longitude": 4.3815707
    }
]
 

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: 1050 or Brussel

language   string  optional  

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

multiresults   string  optional  

Enable support for bilingual results in bilingual municipalities. By default, this feature is disabled (set to 0), but you can turn it on (set to 1). Example: 0

Response

Response Fields

zipcode   number   

Returns a number 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+or+Brussel&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 or Brussel',
            '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 or Brussel',
  '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 or Brussel",
    "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
    },
    {
        "city": "Ixelles",
        "zipcode": 1050,
        "latitude": 50.8222854,
        "longitude": 4.3815707
    },
    {
        "city": "Saint-Gillis",
        "zipcode": 1050,
        "latitude": 50.8222854,
        "longitude": 4.3815707
    }
]
 

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: 1050 or Brussel

language   string  optional  

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

multiresults   string  optional  

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

Response

Response Fields

zipcode   number   

Returns a number 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"
    }
]
 

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   string   

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

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   string   

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   number   

Returns a number or null when unknown

city   string   

Returns a string or null when unknown

street   string   

Returns a string or null when unknown

houseno   string   

Returns a string 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, houseno=2, addon=, strict=1, no match):


{}
 

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


{
 <Empty response>
}
 

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   string   

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   string   

Provide a house number. Example: 2

addon   string  optional  

Provide the addon. Example: A

strict   string  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   string  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   number   

Returns a number or null when unknown

houseno   string   

Returns a string 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"
},
...
]
 

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   number   

Returns a number 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+or+Hilden" \
    --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 or Hilden',
        ],
    ]
);
$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 or Hilden',
}
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 or Hilden",
};
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"
    }
]
 

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: 4072 or Hilden

Response

Response Fields

zipcode   number   
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+or+Hilden" \
    --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 or Hilden',
        ],
    ]
);
$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 or Hilden',
}
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 or Hilden",
};
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"
    }
]
 

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: 4072 or Hilden

Response

Response Fields

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

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   string   

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

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   string   

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   number   

Returns a number or null when unknown

city   string   

Returns a string or null when unknown

street   string   

Returns a string or null when unknown

houseno   number   

Returns a number 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, 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):


"
 <Empty response>
"
 

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   string   

Provide a zipcode. Example: 40724

city   string   

Provide a city name. Example: Hilden

street   string   

Provide a street name. Example: Tucherweg

houseno   string   

Provide the house number. Example: 48

addon   string  optional  

Provide the addon. Example: A

strict   string  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   string  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   number   

Returns a number or null when unknown

houseno   number   

Returns a number 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   string   

a house number. Example: 37

client_id   string   

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

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   string   

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+or+Brussel" \
    --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 or Brussel',
        ],
    ]
);
$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 or Brussel',
}
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 or Brussel",
};
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   string   

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

🇧🇪 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   string   

a zip code. Example: 1040

city   string   

a city name. Example: Brussel

street   string   

a partial street name. Example: Rue de la