Search Compass listings
compass_search_propertiesSearch real estate listings on Compass by city, ZIP, or neighborhood with filters for price, beds, and property type. Returns addresses, prices, photos, and URLs for each match.
Instructions
Search Compass listings by location (city, ZIP, neighborhood) and optional filters. Resolves free-text via slugification into Compass's URL routing, then fetches the SSR search-results page and extracts the embedded listings array. Compass server-renders ~41 listings into that page (its num), and total_items reports the full market count. PAGINATION (issue #87): Compass no longer paginates the SSR search via any URL — /page-N/, ?page=N, and ?start=N all canonicalize back to page 1 and return the identical listings, so only the first SSR page (~41 listings) is reachable through this primitive. offset is honored WITHIN that page, and next_offset is emitted only when more listings remain within it — it is never a false cursor that re-fetches page 1. TO REACH BEYOND THE FIRST PAGE, narrow with price_min / price_max / beds_min/beds_max to bucket the result set into <~41-listing bands (price-banding), then search each band. Returns each matching listing's address, price, beds/baths, sqft, primary photo URL, lat/lng, the Compass homedetails URL (_lid/ form, content-addressed by listing_id_sha), and the stable _pid/ URL via property_url and the surfaced pid field. USE pid/_pid/ FOR LONG-LIVED REFERENCES (trackers, sheets, bookmarks) — sha-based _lid/ URLs change when a property is delisted and relisted. Use the sha-based URL to fetch the current listing record. Read-only; safe to call repeatedly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max listings to return (default 40). Only the first SSR page (~41 listings) is reachable (#87), so a limit above that is capped by the page; use price/beds banding to reach more. | |
| offset | No | Zero-based offset into the reachable first SSR page. Honored only within that page (#87); use the `next_offset` value from a previous response to continue within it. An offset at or beyond the page returns no results — narrow with price/beds bands to reach more. Default 0. | |
| beds_max | No | ||
| beds_min | No | ||
| location | Yes | Free-text location: city, ZIP, neighborhood (e.g. "Brooklyn, NY", "94110", "Park Slope") | |
| home_type | No | Restrict to a single property type. | |
| price_max | No | ||
| price_min | No |