Backed by a search index, so this is the endpoint to build a website's listings page
and filter drawer on. Only listings currently live on the website channel are
returned; there is no status to filter on, because a delisted listing leaves the index.
One result per listing, not per property. A building marketed both for sale and to
let returns two results, each with its own price, status and covered units. Group them
by commercialPropertyId if you would rather show one card per building.
Prices and sizes describe what is actually transactable. A building-only listing
carries the building's own figures. A listing covering units carries the range across
those units, because such a building sells or lets only its units — so
price.min and price.max differ and render as "From £min" or a range.
Rents are always per annum, normalised so monthly and annual listings compare.
Price and size filters match on overlap, not on the headline figure: a listing
matches when any part of its range falls within yours, so a multi-let building appears
whenever one of its units suits your budget.
Amenities match all of those supplied. Every other multi-value filter matches any.
EPC is the raw score rather than a letter band, so convert bands to scores yourself —
this leaves range filtering available and avoids baking one band scheme into the API.
Sorting by price needs transactionType, because sale prices and rents are
separate fields and cannot be ordered as one.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
