MENU navbar-image

Introduction

This is the postal code service for the Netherlands and Belgium.

Welcome to the official Postcode Service API documentation!

The most up to date postcode service for the Netherlands and Belgium. Our clients have saved yearly over 1 million euro in RMA (Return Material Authorization).

Questions?

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

Plugins & extensions

There is a ready-to-use Magento 2 extension on github: tig-nl/postcode-magento2. For installation support you can contact our experts support@postcodeservice.com or call our office in Amsterdam +31 20 218 1024.

Base URL

https://api.postcodeservice.com

Authenticating requests

Authenticate requests to this API's endpoints by sending a X-SecureCode header with the value "9SRLYBCALURPE2B".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

And header X-ClientId with {YOUR_CLIENT_ID}. You can retrieve your credentials by visiting our https://postcodeservice.com.

Try it yourself, right now!

You can use these test credentials. Keep in mind there is a daily maximum.

X-ClientId1177
X-SecureCode9SRLYBCALURPE2B
X-Domain (optional)https://postcodeservice.com/

Rate limited

If a response code 429 (429 Too Many Requests is visible in the browser) is returned, you have reached the maximum number of requests per second specified in your contract. The default is 10 requests/seconds. As soon as the number of requests falls below the maximum number again (standard <10 requests/s) you will receive the usual responses again. You can contact your account manager on telephone number +31 20 218 1024 if you want to increase the number of requests.

🇳🇱 Netherlands API

getAddress - Get address for specified postcode 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   

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

a valid Dutch zip code, example: 1014BA.

🇧🇪 Belgium API

Version 3 of the Belgium zip code validation has more features over Version 2.

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   

Part of a street name to complete, example: Koningin Maria.

postcode-find - Completes a zip code 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 zip code 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 zip codes, by default off, example: 0.

zipcode-find - Completes a zipcode or city name

requires authentication

Same as postcode-find. 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/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, 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 zip codes, by default off, example: 0.

street-find - Completes the street name based on zip code 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   

a zip code, example: 1040.

city   string   

a city name, example: Brussel.

street   string   

a partial street name, example: Rue de C.

houseno-find - Find house numbers and addons for a given street name

requires authentication

This endpoint expects a zip code, 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   

a zip code, example: 9000.

city   string   

a city name, example: Gent.

street   string   

a street name, example: Vliegtuiglaan.

streetid   string  optional  

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

houseno-match - Exactly match a house number

requires authentication

This endpoint expects a zip code, 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 housenumber 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   

a zip code, example: 9700.

city   string   

a city name, example: Oudenaarde.

street   string   

a street name, example: Aalststraat.

streetid   string  optional  

Alternative for zipcode, city and street parameters, Can be retrieved with 'street-find' call, example: 970098157329689625.

houseno   string   

The house number, example: 2.

addon   string  optional  

The addon, example: A.

strict   string  optional  

Default this is turned off and it returns results when houseno is found. When activated it only returns results when houseno + addon combination is met, example 0.

only_status   string  optional  

Default this is turned off. When active returns no content body only HTTP STATUS 204 when matched, example: 0.

🇩🇪 Germany API

Version 1 of the Germany zip code 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):


{
    "0": {
        "city": "Amt Wachsenburg",
        "label": "Marbacher Berg - Amt Wachsenburg (99334)",
        "street": "Marbacher Berg",
        "streetlang": "de",
        "type": "Street",
        "zipcode": "99334"
    },
    "1": {
        "city": "Erfurt",
        "label": "Marbacher Chaussee - Erfurt (99092)",
        "street": "Marbacher Chaussee",
        "streetlang": "de",
        "type": "Street",
        "zipcode": "99092"
    },
    "10": {
        "city": "Düsseldorf",
        "label": "Marbacher Straße - Düsseldorf (40597)",
        "street": "Marbacher Straße",
        "streetlang": "de",
        "type": "Street",
        "zipcode": "40597"
    }
}
 

Request   

GET de/v1/find

Query Parameters

street   string   

Part of a street name to complete, example: Marbacher.

postcode-find - Completes a zip code 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):


[
    {
        "city": "Hilden",
        "zipcode": "40721"
    },
    {
        "city": "Hilden",
        "zipcode": "40723"
    },
    {
        "city": "Hilden",
        "zipcode": "40724"
    }
]
 

Request   

GET de/v1/postcode-find

Query Parameters

zipcodezone   string   

Part of a zip code or city name to complete, example: 4072 or Hilden.

zipcode-find - Completes a zip code 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/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):


[
    {
        "city": "Hilden",
        "zipcode": "40721"
    },
    {
        "city": "Hilden",
        "zipcode": "40723"
    },
    {
        "city": "Hilden",
        "zipcode": "40724"
    }
]
 

Request   

GET de/v1/zipcode-find

Query Parameters

zipcodezone   string   

Part of a zip code or city name to complete, example: 4072 or Hilden.

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/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",
        "streetlang": "de"
    },
    {
        "street": "Käthe-Kollwitz-Weg",
        "streetlang": "de"
    }
]
 

Request   

GET de/v1/street-find

Query Parameters

zipcode   string   

a zip code, example: 40724.

city   string   

a city name, example: Hilden.

street   string   

a partial street name, example: Ka.

houseno-find - Find house numbers and addons for a given street name

requires authentication

This endpoint expects a zip code, 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):


{
     "1": {
         "zipcode": 40724,
         "city": "Hilden",
         "street": "Kalstert",
         "houseno": "88",
         "addon": "",
         "box": "",
         "streetlang": "de"
     },
     "2": {
         "zipcode": 40724,
         "city": "Hilden",
         "street": "Kalstert",
         "houseno": "88",
         "addon": "A",
         "box": "",
         "streetlang": "de"
     },
     "3": {
         "zipcode": 40724,
         "city": "Hilden",
         "street": "Kalstert",
         "houseno": "88",
         "addon": "B",
         "box": "",
         "streetlang": "de"
     },
     ...
 }
 

Request   

GET de/v1/houseno-find

Query Parameters

zipcode   string   

a zip code, example: 40724.

city   string   

a city name, example: Hilden.

street   string   

a street name, example: Kalstert.

houseno-match - Exactly match a house number

requires authentication

This endpoint expects a zip code, 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):


{
    "0": {
        "street": "Tucherweg",
        "city": "Hilden",
        "zipcode": 40724,
        "houseno": "48",
        "addon": "A",
        "box": "",
        "streetlang": "de"
    }
}
 

Example response (200, houseno=48, addon=, strict=0):


{
    "0": {
        "street": "Tucherweg",
        "city": "Hilden",
        "zipcode": 40724,
        "houseno": "48",
        "addon": "",
        "box": "",
        "streetlang": "de"
    },
    "2": {
        "street": "Tucherweg",
        "city": "Hilden",
        "zipcode": 40724,
        "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   

a zip code, example: 40724.

city   string   

a city name, example: Hilden.

street   string   

a street name, example: Tucherweg.

houseno   string   

The house number, example: 48.

addon   string  optional  

The addon, example: A.

strict   string  optional  

Default this is turned off and it returns results when houseno is found. When activated it only returns results when houseno + addon combination is met, example 0.

only_status   string  optional  

Default this is turned off. When active returns no content body only HTTP STATUS 204 when matched, example: 0.

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