postcodes: Query Postcodes

API: postcodes.io:postcodes.io
Endpoint: /postcodes
Response format: application/json
Auth: unknown
Method: GET
Last Status: 200
Latency: 173ms

Description

Search for postcodes. Can query by partial postcode, or perform reverse geocoding by latitude/longitude.

Parameters (5)

lat (number, query, optional)

Latitude for reverse geocoding

limit (integer, query, optional, default: 10)

Maximum number of results to return (default 10, max 100)

Constraints: {'maximum': 100}

lon (number, query, optional)

Longitude for reverse geocoding

query (string, query, optional)

Partial postcode to search for

radius (number, query, optional, default: 10000)

Search radius in meters for reverse geocoding (default 10000m, max 20000m)

Constraints: {'maximum': 20000}

Examples (1)

Reverse geocoding openapi-spec
curl 'https://api.postcodes.io/postcodes?lon=-0.141563&lat=51.50101'
import requests

resp = requests.get(
    "https://api.postcodes.io/postcodes",
    params={
        'lon': '-0.141563',
        'lat': '51.50101',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("postcodes")
result = api.fetch("postcodes", lon=-0.141563, lat=51.50101)

for item in result:
    print(item)
const resp = await fetch("https://api.postcodes.io/postcodes?lon=-0.141563&lat=51.50101");
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 16:47:33.781658 200 173ms
2026-04-16 01:29:27.520814 200 161ms
2026-04-15 02:22:25.022847 200 183ms
2026-04-14 04:02:45.826781 200 184ms
2026-04-12 12:37:44.895079 200 240ms
2026-04-10 02:49:46.664565 200 212ms
2026-04-09 01:40:54.451931 200 233ms