Developer Documentation
Integrate UK postcode lookup, autocomplete, address retrieval, and usage reporting into your website, app, or backend.
Base URL
https://ukpostcodeapi.co.uk/api/v1/
Authentication
Header
X-API-Key: your_api_key_here
Endpoints
GET https://ukpostcodeapi.co.uk/api/v1/find.php?postcode=SW1A1AA
GET https://ukpostcodeapi.co.uk/api/v1/autocomplete.php?q=Downing
GET https://ukpostcodeapi.co.uk/api/v1/get.php?id=123
GET https://ukpostcodeapi.co.uk/api/v1/usage.php
PHP Example
<?php
$ch = curl_init("https://ukpostcodeapi.co.uk/api/v1/find.php?postcode=SW1A1AA");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"X-API-Key: your_api_key_here"
]);
$response = curl_exec($ch);
if ($response === false) {
die("cURL Error: " . curl_error($ch));
}
curl_close($ch);
$data = json_decode($response, true);
print_r($data);
Python Example
import requests
response = requests.get(
"https://ukpostcodeapi.co.uk/api/v1/find.php",
params={"postcode": "SW1A1AA"},
headers={"X-API-Key": "your_api_key_here"},
timeout=20
)
print(response.json())
JavaScript Example
fetch("https://ukpostcodeapi.co.uk/api/v1/find.php?postcode=SW1A1AA", {
headers: {
"X-API-Key": "your_api_key_here"
}
})
.then(r => r.json())
.then(data => console.log(data))
.catch(err => console.error(err));
Node.js Example
const axios = require("axios");
axios.get("https://ukpostcodeapi.co.uk/api/v1/find.php", {
params: { postcode: "SW1A1AA" },
headers: { "X-API-Key": "your_api_key_here" }
}).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error.message);
});
cURL Example
curl -H "X-API-Key: your_api_key_here" "https://ukpostcodeapi.co.uk/api/v1/find.php?postcode=SW1A1AA"
Laravel Example
use Illuminate\Support\Facades\Http;
$response = Http::withHeaders([
"X-API-Key" => "your_api_key_here",
])->get("https://ukpostcodeapi.co.uk/api/v1/find.php", [
"postcode" => "SW1A1AA",
]);
dd($response->json());
React Example
import React, { useState } from "react";
export default function AddressLookup() {
const [postcode, setPostcode] = useState("");
const [results, setResults] = useState([]);
const lookup = async () => {
const res = await fetch("https://ukpostcodeapi.co.uk/api/v1/find.php?postcode=" + encodeURIComponent(postcode), {
headers: { "X-API-Key": "your_api_key_here" }
});
const data = await res.json();
setResults(data.addresses || []);
};
return (
<div>
<input value={postcode} onChange={(e) => setPostcode(e.target.value)} />
<button onClick={lookup}>Lookup</button>
<ul>
{results.map(item => <li key={item.id}>{item.formatted_address}</li>)}
</ul>
</div>
);
}
Vue Example
<template>
<div>
<input v-model="postcode" />
<button @click="lookup">Lookup</button>
<ul>
<li v-for="item in results" :key="item.id">{{ item.formatted_address }}</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return { postcode: "", results: [] };
},
methods: {
async lookup() {
const res = await fetch("https://ukpostcodeapi.co.uk/api/v1/find.php?postcode=" + encodeURIComponent(this.postcode), {
headers: { "X-API-Key": "your_api_key_here" }
});
const data = await res.json();
this.results = data.addresses || [];
}
}
};
</script>
WordPress Example
function ukaddr_lookup_shortcode() {
ob_start();
if (!empty($_POST["ukaddr_postcode"])) {
$postcode = sanitize_text_field($_POST["ukaddr_postcode"]);
$response = wp_remote_get(
"https://ukpostcodeapi.co.uk/api/v1/find.php?postcode=" . urlencode($postcode),
[
"headers" => [
"X-API-Key" => "your_api_key_here",
],
"timeout" => 20,
]
);
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
if (!empty($data["addresses"])) {
echo "<ul>";
foreach ($data["addresses"] as $address) {
echo "<li>" . esc_html($address["formatted_address"]) . "</li>";
}
echo "</ul>";
}
}
return ob_get_clean();
}
add_shortcode("uk_address_lookup", "ukaddr_lookup_shortcode");
Example Response
{
"success": true,
"endpoint": "find",
"postcode": "SW1A 1AA",
"count": 1,
"addresses": [
{
"id": 1,
"formatted_address": "10 Downing Street, London, SW1A 1AA",
"post_town": "London",
"country": "United Kingdom"
}
]
}
Error Handling
{
"success": false,
"error": "Invalid API key."
}
Support
Use the API playground in your dashboard to test requests and confirm your key is working.