Logistics engineer · eCommerce ops
Rural or urban? Know before you route.
Last-mile delivery costs for a remote Highland hamlet are nothing like those for a Manchester city centre flat — but without a structured classification, your system treats every UK postcode identically until the carrier exceptions list tells you otherwise. Zyfy returns a five-tier rural/urban classification, precise coordinates, and full administrative context from a single postcode lookup, so you can apply the right routing logic before checkout completes.
Relevant signals
These fields are returned on every response and are ready to wire into your application logic.
| Signal | Relevance | What it tells you |
|---|---|---|
| ruralUrbanClassification | Critical | Five-tier ONS classification: urban, urban_fringe, rural_town, rural_village, rural_hamlet. The primary signal for last-mile cost modelling and delivery eligibility. |
| latitude | Critical | WGS84 latitude for the postcode centroid. Use directly in routing algorithms or distance calculations without a secondary geocode call. |
| longitude | Critical | WGS84 longitude for the postcode centroid. Pair with latitude for haversine distance, zone assignment, or carrier API calls. |
| country | High | England, Scotland, or Wales. Critical for carrier zone assignment, VAT treatment, and regional routing rules. Northern Ireland postcodes (BT) are not currently supported. |
| region | High | ONS region (e.g. Highlands and Islands, North West). Used for carrier depot assignment and regional surcharge zones. |
| adminDistrict | Medium | Local authority district. Useful for fine-grained zone logic where carrier surcharges operate at district level. |
| signals.demographics.percNoCarVan | Medium | Percentage of households with no car or van. High values signal areas with higher demand for delivery services — residents without cars rely more on home delivery. Useful for demand forecasting and route density modelling. |
Live example
A real-world request and the response it returns.
Request
curl https://zyfy.uk/v1/postcode/IV408JD \
-H "X-API-Key: your_api_key"Response
{
"postcode": "IV40 8JD",
"outwardCode": "IV40",
"inwardCode": "8JD",
"latitude": 57.284,
"longitude": -5.716,
"eastings": 179832,
"northings": 823741,
"country": "Scotland",
"region": "Highlands and Islands",
"adminDistrict": "Highland",
"adminWard": "Lochalsh and Skye",
"parliamentaryConstituency": "Skye, Lochaber and Badenoch",
"ruralUrbanClassification": "rural_hamlet",
"signals": {
"broadband": { "superfast": false, "gigabit": false },
"environment": { "isNationalPark": false, "isAonb": false }
}
} Example data is illustrative only. Responses shown include a subset of signals for clarity — the full response contains additional fields. See the signal reference for the complete list.
What you get
- ✓ Five-tier rural classification — urban through rural_hamlet gives you meaningful differentiation — not just urban/rural — so you can apply carrier surcharges and routing logic at the right granularity.
- ✓ Coordinates without a geocoding call — latitude and longitude come back on every postcode response. No secondary geocoding API, no extra quota spend, no added latency in your checkout flow.
- ✓ Country and region in one lookup — England, Scotland, and Wales classification is included, along with ONS region. One call replaces a postcode-prefix lookup table and a geocoding service.
- ✓ Validate before dispatch, not on return — Catch undeliverable or surcharge-attracting postcodes at checkout submission — before an order is placed — rather than discovering the problem at the carrier portal.
- ✓ Delivery catchment in one call — Use GET /v1/postcode/within to retrieve every enriched postcode within a radius of a depot or store — check rural/urban classification, flood risk, and demographics across your entire delivery zone without a postcode list.
Classify delivery complexity before the order lands.
Free tier includes 100 requests per month. No credit card, no sales call.