API VERSION 1

EuroPostcode API documentation

The REST API returns JSON over HTTPS. Production endpoints require an API key in the Authorization header.

Base URL

https://europostcode.com/api/v1

Authentication

Authorization: Bearer ep_live_your_key

Keep API keys on your server. Do not embed a production key in browser JavaScript, a mobile binary or a public repository.

Exact postcode lookup

GET /postcodes/{country}/{postcode}

Country uses an ISO 3166-1 alpha-2 code. Spaces and punctuation in the postcode are normalized before matching.

{
  "query": { "postcode": "10115", "country": "DE" },
  "valid": true,
  "matches": [{
    "postcode": "10115",
    "normalizedPostcode": "10115",
    "countryCode": "DE",
    "zone": "10",
    "locality": "Berlin",
    "longitude": 13.3846,
    "latitude": 52.5323,
    "precision": "postcode-reference-point",
    "confidence": 0.95,
    "source": "geonames+gisco",
    "dataVersion": "2025-2026.06",
    "regions": { "nuts3": "DE300", "urbanisation": "city" }
  }]
}

Normalize and autocomplete

GET /postcodes/normalize?country=NL&postcode=1012js
GET /postcodes/autocomplete?country=DE&q=101&limit=10

Normalization returns the canonical display format when known. Autocomplete accepts a postcode prefix of at least two characters.

Nearby and reverse lookup

GET /postcodes/nearby?lat=52.52&lng=13.405&radiusKm=25&limit=20
GET /postcodes/reverse?lat=52.52&lng=13.405&country=DE

Nearby results include distance in kilometres. Reverse lookup returns the closest known postcode reference point; it does not prove that the coordinate is a deliverable address.

Coverage metadata

GET /coverage

This public endpoint reports record counts, generation date, source combinations and licences for all 44 supported countries.

Batch validation

POST /postcodes/batch
Content-Type: application/json

{"items":[{"country":"DE","postcode":"10115"},{"country":"FR","postcode":"75001"}]}

Batch size depends on the plan: Test 10, Starter 100, Business 1,000 and Enterprise 5,000 items.

Usage headers

X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 9974
X-API-Version: 2026-09-07
X-Request-Id: ...

Errors

400Invalid input or batch size
401Missing, invalid or revoked API key
429Per-minute or monthly allowance exceeded
500Temporary server error

Data notes

Returned coordinates are reference locations, not verified delivery points. Confidence describes our source agreement and coverage—not address deliverability. Source coverage and postal systems differ by country. See data methodology before using results for routing or pricing.