UK address lookup API
Verify UK postcodes and return structured address details. Request access and choose your initial prepaid PAF pack here or from the Playground. Use general credit first and pay any shortfall, or fund the full amount with a new payment. Provero operations sets up the account, enables access and activates your initial PAF credit together. Live checks use your dedicated PAF credit, not general credit. For subsequent funding, select a prepaid PAF pack in Billing: use general credit or pay the required amount, then wait for operations activation. Only the listed fixed packs are available; custom PAF amounts are not supported. Insufficient PAF credit returns HTTP 402 with balance_pool=paf.
Endpoint
POST
https://api.provero.io/api/validate/uk-postcode
Headers
Authorization:
Content-Type: application/json
Accept: application/json
Request Body
Request Payload Example (JSON)
{
"postcode": "string"
}
Request Examples
Choose language Bash (cURL) 5 examples
postcode="LS18 5SB"
curl -X POST https://api.provero.io/api/validate/uk-postcode \
-H "Authorization: Bearer REPLACE_WITH_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d "{\"postcode\": \"$postcode\"}"
import requests
postcode = "LS18 5SB"
url = "https://api.provero.io/api/validate/uk-postcode"
payload = {"postcode": postcode}
headers = {
"Authorization": "Bearer REPLACE_WITH_API_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
}
response = requests.post(url, headers=headers, json=payload)
print(response.status_code)
print(response.text)
<?php
$postcode = "LS18 5SB";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.provero.io/api/validate/uk-postcode",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode([
"postcode" => $postcode
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer REPLACE_WITH_API_TOKEN",
"Content-Type: application/json",
"Accept: application/json"
],
]);
$response = curl_exec($curl);
if (curl_errno($curl)) {
echo 'Error:' . curl_error($curl);
}
curl_close($curl);
echo $response;
$postcode = "LS18 5SB";
$response = Http::withToken('REPLACE_WITH_API_TOKEN')
->acceptJson()
->post('https://api.provero.io/api/validate/uk-postcode', [
'postcode' => $postcode,
]);
return $response->json();
const postcode = "LS18 5SB";
fetch("https://api.provero.io/api/validate/uk-postcode", {
method: "POST",
headers: {
"Authorization": "Bearer REPLACE_WITH_API_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
},
body: JSON.stringify({ postcode })
})
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.error("Error:", error));
Response Examples
Choose response example Success 4 examples
{
"valid": true,
"postcode": "LS18 5SB",
"address": {
"Address1": "Brownberrie Lane",
"Address2": "Horsforth",
"Address3": "",
"Address4": "",
"Town": "Leeds",
"County": "West Yorkshire",
"Postcode": "LS18 5SB",
"PremiseData": "Old Ball||;||2;||4;||6;||8;||10;||12;||14;||16;||18;||20;||22;||24;||26;||28;||30;||32;||34;||36;||38;||40;||42;||44;||46;||48;||50;||52;||54;"
}
}
{
"requestError": {
"serviceException": {
"messageId": "Error message",
"code": "400"
}
}
}
{
"message": "Insufficient balance for validation request.",
"service": "address",
"required_amount": "0.0060000000",
"current_balance": "0.0000000000"
}
{
"message": "The postcode field is required.",
"errors": {
"postcode": [
"The postcode field is required."
]
}
}