Added
- New POST /v1/listings/query/advanced endpoint searches aggregated property listings, combining geographic area filters, a structured field query, sorting, pagination and sparse fieldsets. It returns nested aggregated listing documents and is distinct from the simpler POST /v1/listings/query.
- Filter by geographic
areausing a list of filters of typepostcode,outcode,point(with a metreradius),polygonormultipolygon. Coordinates use GeoJSON[longitude, latitude]order; multiple areas are combined with OR logic. - The
queryfield accepts a structured query-group DSL: each condition takes afield(e.g.roomDetails.beds,pricing.price,build.propertyType,tenure.type), acomparator(eq,ne,gt,gte,lt,lte,in,nin) and avalue. Groups are joined by anAND/ORoperator. - Sort by up to three whitelisted fields via
sort(publishedDate,removedDate,pricing.price,pricing.pricePerSqft,pricing.pricePerSqm,roomDetails.beds,roomDetails.baths,build.totalFloorArea,_score,_doc) with anorderofasc/descand optionalmissingplacement. - Page results with
limit(1–100, default 25) andoffset(0–10000, default 0), and reduce payload size withattributes(a comma-separated string or array of fields to return). Responses use the standard list envelope withtotal_countandhas_more. - Each listing in the response is an aggregated document combining all available sources, with
statusdrawn from the live market-state set (live,sstc,under_offer,reserved,sold,removed) and includingpricing,roomDetails,build,tenure,energyRating,address,spatialand history fields. Monetary values are in GBP pounds. - Invalid input returns
400with a specific code:invalid_query_structure,invalid_query_fieldorinvalid_sort_config.