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.

Start Free Trial Contact Support