Skip to main content
GET
Look up a postcode / ZIP code within a country and get back every matching record. Use this to confirm that a user-supplied postcode appears in the dataset.
Free on every plan, including Community. Exact lookup counts against your normal daily/monthly quota like any other request. Paginated listing and search use Get Postcodes by Country and require a Starter+ plan — exact lookup has no such gate.
This is informational postcode data, not an address verification or mail-deliverability service. A match confirms the code exists in the dataset — it does not confirm a delivery point, standardize an address, or guarantee mail will arrive.

Why the response is an array

A postcode is not always unique to one place. The same code can legitimately cover more than one locality, so this endpoint returns every matching record instead of picking one — an empty result is a 404, never an empty success.
Fields above Basic are stripped for lower plans, not just hidden — a Community or Starter key never receives country_id, state_id, city_id, latitude, or longitude in the response body. See Tier-based field availability below. id and every foreign-key field are returned as numeric strings rather than JSON numbers — parse them as strings in your client.
200 - Duplicate exact match, Basic tier (Community, Starter, Legacy)
200 - Duplicate exact match, Full tier (Supporter, Professional, Business)

Tier-based field availability

See Pricing for plan details.

Caching and conditional requests

Every response sets ETag, Cache-Control, and X-Cache (HIT/MISS), cached for 24 hours. Send the last ETag back as If-None-Match to get a bodyless 304 when nothing changed instead of re-downloading the result:

Errors

string
Distinguishes the three 404 cases below. Check this instead of parsing message.
404 - Unknown country
404 - No coverage for this country
404 - Code has no match
400 - Invalid code
code is also rejected as empty, or for containing a /, \, or control character. See Errors & Rate Limits for the 401/429 shapes and usage headers common to every endpoint.

Get Postcodes by Country

Page through or search a country’s postcodes. Requires Starter+.

Postcodes Reference

Coverage stats, postcode types, and self-hosted query examples.

Authorizations

X-CSCAPI-KEY
string
header
required

API key for authentication. Get your free key at app.countrystatecity.in.

Path Parameters

ciso
string
required

ISO 3166-1 alpha-2 country code, case-insensitive (e.g. LK). Numeric IDs and ISO3 codes are not accepted on postcode endpoints.

Required string length: 2
Example:

"LK"

code
string
required

Postcode to look up, 1 to 20 characters. Case-insensitive and tolerant of repeated internal spaces (gy1 1aa matches GY1 1AA). URL-encode spaces.

Required string length: 1 - 20
Example:

"11104"

Response

All records matching the code

data
object[]
required

Every record matching the code, ascending id. Never empty (no match is a 404).

meta
object
required