MENU navbar-image

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

Questions and support

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

Adobe Magento Extension

We're pleased to offer an out-of-the-box solution for Adobe Magento 2 users: the Postcode Service Magento 2 extension. With this extension, you can easily and accurately verify addresses at checkout, saving you time and reducing the risk of costly delivery errors. This extension is available for download from our GitHub repository at https://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. We're committed to providing our clients with the best possible service, and this extension is just one example of that.

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.

Go to postcodeservice.com to get a paid account for continues access.

Test credentials

You can use the following test credentials and try it yourself, right now! Keep in mind there is a daily maximum.

X-ClientId 1177
X-SecureCode 9SRLYBCALURPE2B
X-Domain (optional) examplewebsite.eu

Rate limited

If you receive a response code of 429 (429 Too Many Requests) in your browser, it means that you have exceeded the maximum number of requests per second specified in your contract. 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

Query Parameters

zipcode   string   

Provide a Dutch formatted zipcode, for example 1014BA.

houseno   string   

Provide a house number, for 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

Query Parameters

zipcode   string   

Provide a Dutch formatted zipcode, for example 1014BA.

houseno   string   

Provide a house number, for 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

Query Parameters

zipcode   string   

Provide a Dutch formatted zipcode, for 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

Query Parameters

zipcode   string   

Provide a Dutch formatted zipcode, for 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": "900032325761763596",
        "streetlang": "nl",
        "type": "Street",
        "zipcode": 9000
    },
    "1": {
        "city": "Vorst",
        "label": "Koningin Maria-Hendrikalaan - Vorst (1190)",
        "street": "Koningin Maria-Hendrikalaan",
        "streetid": "119056521757555936",
        "streetlang": "nl",
        "type": "Street",
        "zipcode": 1190
    },
    "2": {
        "city": "Leopoldsburg",
        "label": "Koningin Maria-Henriettelaan - Leopoldsburg (3970)",
        "street": "Koningin Maria-Henriettelaan",
        "streetid": "397025451615544216",
        "streetlang": "nl",
        "type": "Street",
        "zipcode": 3970
    }
}
 

Request   

GET be/v3/find

Query Parameters

street   string   

Provide part of a street name to complete, for 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 unique street id. This is returned as a string instead of a number since JavaScript may encounter issues when handling excessively large numbers

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&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": "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

Query Parameters

zipcodezone   string   

Part of a zipcode or city name to complete, for example 1050 or Brussel.

language   string  optional  

You can specify the preferred language for the results in bilingual municipalities, for 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).

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&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
    },
    {
        "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

Query Parameters

zipcodezone   string   

Part of a zipcode or city name to complete, for example 1050 or Brussel.

language   string  optional  

Can contain the preferred language you want the results in for municipalities with language facilities, for example fr.

multiresults   string  optional  

Allow multiple results for municipalities with language facilities, works for zipcodes, by default off, for 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": "104077915151295985",
        "streetlang": "fr"
    },
    {
        "street": "Rue de Comines",
        "streetid": "104037492375926662",
        "streetlang": "fr"
    }
]
 

Request   

GET be/v3/street-find

Query Parameters

zipcode   string   

Provide a zipcode, for example 1040.

city   string   

Provide a city name, for example Brussel.

street   string   

Provide a partial street name, for example Rue de C.

Response

Response Fields

street   string   

Returns a string or null when unknown

streetid   string   

Returns a unique street id. This is returned as a string instead of a number since JavaScript may encounter issues when handling excessively large numbers

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: 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=900093267659932423" \
    --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'=> '900093267659932423',
        ],
    ]
);
$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': '900093267659932423',
}
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": "900093267659932423",
};
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

Query Parameters

zipcode   string   

Provide a zipcode, for example 9000.

city   string   

Provide a city name, for example Gent.

street   string   

Provide a street name, for example Vliegtuiglaan.

streetid   string  optional  

Can be retrieved with 'street-find' call, for example: 900093267659932423.

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: 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=970098157329689625&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'=> '970098157329689625',
            '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': '970098157329689625',
  '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": "970098157329689625",
    "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

Query Parameters

zipcode   string   

Provide a zipcode, for example 9700.

city   string   

Provide a city name, for example Oudenaarde.

street   string   

Provide a street name, for 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. Here's an example of a streetid: 970098157329689625.

houseno   string   

Provide a house number, for example 2.

addon   string  optional  

Provide the addon, for 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.

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.

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": "99334223165557618"
},
{
     "label": "Marbacher Chaussee - Erfurt (99092)",
     "type": "Street",
     "zipcode": 99092,
     "city": "Erfurt",
     "street": "Marbacher Chaussee",
     "streetlang": "de",
     "streetid": "99092851179734442"
},
...
]
 

Request   

GET de/v1/find

Query Parameters

street   string   

Provide part of a street name to complete, for 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 or null when unknown. This is returned as a string instead of a number since JavaScript may encounter issues when handling excessively large numbers

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

Request   

GET de/v1/zipcode-find

Query Parameters

zipcodezone   string   

Provide part of a zipcode or city name to complete, for 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" \
    --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"
    }
]
 

Request   

GET de/v1/postcode-find

Query Parameters

zipcodezone   string   

Provide part of a zipcode or city name to complete, for 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": "40724726694684798",
        "streetlang": "de"
    },
    {
        "street": "Karlrobert-Kreiten-Straße",
        "streetid": "40724898792732339",
        "streetlang": "de"
    },
    {
        "street": "Käthe-Kollwitz-Weg",
        "streetid": "40724978289215297",
        "streetlang": "de"
    }
]
 

Request   

GET de/v1/street-find

Query Parameters

zipcode   string   

Provide a zipcode, for example 40724.

city   string   

Provide a city name, for example Hilden.

street   string   

Provide a partial street name, for example Ka.

Response

Response Fields

street   string   

Returns a string or null when unknown

streetid   string   

Returns a string or null when unknown. This is returned as a string instead of a number since JavaScript may encounter issues when handling excessively large numbers

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

Query Parameters

zipcode   string   

Provide a zipcode, for example 40724.

city   string   

Provide a city name, for example Hilden.

street   string   

Provide a street name, for 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

Query Parameters

zipcode   string   

Provide a zipcode, for example 40724.

city   string   

Provide a city name, for example Hilden.

street   string   

Provide a street name, for example Tucherweg.

houseno   string   

Provide the house number, for example 48.

addon   string  optional  

Provide the addon, for 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.

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.

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

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

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

secure_code   string   

your secure code {YOUR_AUTH_KEY}.

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

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

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

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

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

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.