The Ideal Postcodes API provides address, postcode, place, and identifier lookup and autocomplete services (including UK and US addresses), as well as email and phone validation, together with API key/licensee management and usage/lookup reporting.
query(query) — Specifies the address you wish to query. Query can be shortened to `q=`
limit(query, limit)
page(query, page)
filter(query)
lon(query)
lat(query)
postcode_outward(query)
postcode(query)
postcode_area(query)
postcode_sector(query)
post_town(query)
uprn(query)
country(query)
postcode_type(query)
su_organisation_indicator(query)
box(query)
bias_postcode_outward(query)
bias_postcode(query)
bias_postcode_area(query)
bias_postcode_sector(query)
bias_post_town(query)
bias_thoroughfare(query)
bias_country(query)
bias_lonlat(query)
GET
/autocomplete/addresses
Find Address
api_key(query)
query(query) — Specifies the address you wish to query. Query can be shortened to `q=`
context(query)
limit(query, limit) — Limits number of address suggestions unless a postcode is detected. In this instance entire list of addreses for that postcode is returned.
postcode_outward(query)
postcode(query)
postcode_area(query)
postcode_sector(query)
post_town(query)
uprn(query)
country(query)
postcode_type(query)
su_organisation_indicator(query)
box(query)
bias_postcode_outward(query)
bias_postcode(query)
bias_postcode_area(query)
bias_postcode_sector(query)
bias_post_town(query)
bias_thoroughfare(query)
bias_country(query)
bias_lonlat(query)
bias_ip(query)
GET
/autocomplete/addresses/{address}/gbr
Resolve Address (GBR)
address(path, required) — ID of address suggestion
api_key(query)
GET
/autocomplete/addresses/{address}/usa
Resolve Address (USA)
address(path, required) — ID of address suggestion
api_key(query)
POST
/cleanse/addresses
Cleanse
api_key(query)
GET
/emails
Email Validation
api_key(query, required)
query(query, required) — Specifies the email address to validate
GET
/keys/{key}
Availability
key(path, required)
GET
/keys/{key}/configs
List
key(path, required)
user_token(query)
POST
/keys/{key}/configs
Create
key(path, required)
user_token(query)
DELETE
/keys/{key}/configs/{config}
Delete
key(path, required)
config(path, required)
user_token(query)
GET
/keys/{key}/configs/{config}
Retrieve
key(path, required)
config(path, required)
POST
/keys/{key}/configs/{config}
Update
key(path, required)
config(path, required)
user_token(query)
GET
/keys/{key}/licensees
List
key(path, required)
starting_after(query) — Specify ID of the licensee after which you would like to list results
user_token(query)
limit(query, limit) — Specify the maximum number of results to return per page. Default and maximum is `100`.
query(query) — Filter result by licensee name. Query can be shortened to `q=`
POST
/keys/{key}/licensees
Create
key(path, required)
user_token(query)
DELETE
/keys/{key}/licensees/{licensee}
Cancel
key(path, required)
licensee(path, required)
user_token(query)
GET
/keys/{key}/licensees/{licensee}
Retrieve
key(path, required)
licensee(path, required)
user_token(query)
PUT
/keys/{key}/licensees/{licensee}
Update
key(path, required)
licensee(path, required)
user_token(query)
GET
/keys/{key}/lookups
Logs (CSV)
key(path, required)
start(query) — An start date/time in the form of a UNIX Timestamp in milliseconds, e.g. `1418556452651`. If no start time is provided, the start time will be assigned to a time 21 days prior to the end time.
end(query) — An end date/time in the form of a UNIX Timestamp in milliseconds, e.g. `1418556452651`. If no end time is provided, the current time will be used.
licensee(query) — Sublicensed keys only. This will restrict the analysed dataset to a specific licensee.
GET
/keys/{key}/usage
Usage Stats
key(path, required)
start(query) — A start date/time in the form of a UNIX Timestamp in milliseconds, e.g. `1418556452651`. If no start time is provided, the start time will be assigned to a time 21 days prior to the end time.
end(query) — An end date/time in the form of a UNIX Timestamp in milliseconds, e.g. `1418556452651`. If no end time is provided, the current time will be used.
tags(query)
licensee(query) — Sublicensed keys only. This will restrict the analysed dataset to a specific licensee.
GET
/phone_numbers
Phone Number Validation
api_key(query, required)
query(query, required) — Specifies the phone number to validate. Phone number must include a country code in acceptable format. For instance, UK phone numbers should be suffixed `+44`, `44` or `0044`.
GET
/places
Find Place
api_key(query, required)
query(query) — Specifies the place you wish to query. Query can be shortened to `q=`
country_iso(query)
bias_country_iso(query)
bias_lonlat(query)
bias_ip(query)
GET
/places/${place}
Resolve Place
place(path, required) — ID of place suggestion
api_key(query)
GET
/postcodes/{postcode}
Lookup Postcode
postcode(path, required) — Postcode to retrieve
api_key(query)
filter(query)
page(query, page)
GET
/udprn/{udprn}
Retrieve by UDPRN
udprn(path, required) — UDPRN to be retrieved
api_key(query)
filter(query)
GET
/umprn/{umprn}
Retrieve by UMPRN
umprn(path, required) — UMPRN to be retrieved
api_key(query)
filter(query)
26 endpoints auto-detected
curl -X GET \
"https://api.ideal-postcodes.co.uk/v1/keys/{key}/details"