Vepler logo
v2.135.0

Advanced listing search: geographic, field-level and sorted queries over aggregated listings

New POST /v1/listings/query/advanced endpoint searches aggregated property listings with geographic area filters, a structured field query, sorting, pagination and sparse fieldsets.

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 area using a list of filters of type postcode, outcode, point (with a metre radius), polygon or multipolygon. Coordinates use GeoJSON [longitude, latitude] order; multiple areas are combined with OR logic.
  • The query field accepts a structured query-group DSL: each condition takes a field (e.g. roomDetails.beds, pricing.price, build.propertyType, tenure.type), a comparator (eq, ne, gt, gte, lt, lte, in, nin) and a value. Groups are joined by an AND/OR operator.
  • 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 an order of asc/desc and optional missing placement.
  • Page results with limit (1–100, default 25) and offset (0–10000, default 0), and reduce payload size with attributes (a comma-separated string or array of fields to return). Responses use the standard list envelope with total_count and has_more.
  • Each listing in the response is an aggregated document combining all available sources, with status drawn from the live market-state set (live, sstc, under_offer, reserved, sold, removed) and including pricing, roomDetails, build, tenure, energyRating, address, spatial and history fields. Monetary values are in GBP pounds.
  • Invalid input returns 400 with a specific code: invalid_query_structure, invalid_query_field or invalid_sort_config.