Property Lookup
Search for one or more properties using structured filters, free-text address matching, or a combination of both. Designed for fast discovery, address resolution and bulk property exploration.
Overview
The Property Lookup endpoint supports two complementary search modes:
- Filter-based search — query the property dataset using structured conditions (for example, postcode patterns). Returns multiple properties, paginated.
- Address-based search — resolve a free-text address to the single best-matching property, with a confidence score.
Both modes can be combined to narrow results further.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
filter | string | Optional | JSON filter object with a where clause. Example: {"where": {"postcode": {"ilike": "EX%"}}}. |
address | string | Optional | Address string for the address-matching service. Returns the single best-matching property. Must include a postcode. Can be combined with filter. Example: 123 Main Street, London, SW1A 1AA. |
page | integer | Optional | Page number (1-based). Default 1. Minimum 1. |
page_size | integer | Optional | Number of results per page (max 100). Default 100. Minimum 1, maximum 100. |
1. Filter-based search
Use the filter query parameter to apply structured constraints. The filter is a JSON object with a where clause containing field conditions. Operators such as ilike support SQL-style wildcards (%).
{
"where": {
"postcode": { "ilike": "EX%" }
}
}curl 'https://property-api.k8s.outra.co.uk/api/v2/property-lookup?filter={"where":{"postcode":{"ilike":"EX%"}}}&page=1&page_size=100' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key {api_key}'Pagination
Page through results with the page and page_size query parameters — a maximum of 100 results per page.
2. Address-based search
Provide a free-text address string via the address parameter.
- The address must include a postcode (for example,
88 Chantry Meadow EX2 8FR). - Returns the single best-matching property.
- The match includes a confidence score.
- Can be combined with
filterfor post-matching refinement.
curl 'https://property-api.k8s.outra.co.uk/api/v2/property-lookup?address=88 Chantry Meadow EX2 8FR' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key {api_key}'Combine both modes
Pass address and filter together to resolve a free-text address and then constrain the matches — useful for disambiguating within a known postcode or locality.
Response
Address-based search returns the single matched property with its confidence score in metadata:
{
"success": true,
"data": [
{
"building_name": null,
"building_number": "88",
"dependent_locality": null,
"dependent_thoroughfare": null,
"double_dependent_locality": null,
"latitude": 50.6963103,
"longitude": -3.5303529,
"post_town": "Exeter",
"postcode": "EX2 8FR",
"sub_building_name": null,
"thoroughfare": "Chantry Meadow",
"udprn": 8763773,
"uprn": 100040206758,
"x_coordinate": 292013,
"y_coordinate": 89637
}
],
"metadata": {
"count": 1,
"has_filter": true,
"address_search": true,
"address_matches_found": 1,
"address_confidence_scores": [
{ "uprn": "100040206758", "confidence": 1 }
],
"timestamp": "2026-01-07T20:25:37.618004Z"
},
"version": "2.0"
}Filter-based (paginated) results follow the PaginatedResponse shape: { "data": [ … ], "page": 1, "page_size": 100, "total_items": 0, "total_pages": 0 }.
Status codes
| Code | Description |
|---|---|
200 | Search completed successfully |
401 | Authentication failed or API key invalid |
422 | Request validation failed |
429 | Rate limit exceeded |
Typical use cases
Address resolution
Turn a free-text address into its single best UPRN-backed match with a confidence score.
Bulk discovery
Query the dataset by postcode pattern to enumerate properties for enrichment.
Onboarding & search
Power search and confirmation flows where users select from likely matches.