Search properties
spur_search_propertiesSearch live listings (Zillow data) in Spur with plain English and/or structured filters, including event filters. Results show as cards and a map.
Uses 1 property-search credit per call from the user's Spur plan, or 2 credits when the search makes more than 3 ZHomes calls (e.g. several event types, tax/sale-history events, or description-based filters). To check how a sentence will be interpreted before spending a credit, call spur_parse_search_query first.
Examples:
"3 bed houses under $2,500/mo in Austin owned 10+ years" -> location="Austin, TX", listing_status="forRent", home_type="singleFamily", min_beds=3, max_price=2500, min_ownership_years=10
"duplexes for sale in 78704 built before 1980 with absentee owners" -> location="78704", listing_status="forSale", home_type="multiFamily", max_year_built=1979, only_absentee=true
"new pre-foreclosures or price drops of 10%+ in Dallas this week" -> location="Dallas, TX", events=["preforeclosure","price_drop"], event_within_days=7, event_min_change_pct=10
"motivated sellers in Houston: stale, back on market, or fired their agent" -> location="Houston, TX", events=["stale_listing","back_on_market","agent_to_fsbo"]
Events (pass in events; a listing matches when ANY selected event fired, and is tagged with each):
Listing lifecycle: new_listing, coming_soon, coming_soon_active, price_drop, price_increase, pending, sold, back_on_market, delisted (automations only), open_house, rental_listed, rent_change, move_in_moved_up
Distress & motivation: preforeclosure, foreclosure, auction, bank_owned, distress_escalated, fsbo, agent_to_fsbo, stale_listing, new_construction
Valuation & tax: tax_assessment_posted, assessed_value_jump, tax_paid_dropped (weak), sale_recorded, zestimate_moved, equity_gap, price_below_assessed Direct events (price_drop, pending, sold, preforeclosure, fsbo, new_listing, …) work on the first search. Change events (price_increase, back_on_market, distress_escalated, agent_to_fsbo, rent_change, zestimate_moved, …) compare against what Spur saw on an earlier search of the same area, so the first search only records a baseline. Motivated-seller research usually combines price_drop, back_on_market, stale_listing, agent_to_fsbo and the distress stages.
Structured filters always win over what Spur infers from query; use query for qualitative intent (condition, style, "brick", "needs work") that only listing descriptions can match. Unset filters are left to the query.
Follow up with spur_save_properties to save listings the user likes (pass the cards' listing objects), or spur_create_search_automation to run the same filters on a schedule.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results to show | |
| query | No | Free-text intent; Spur's AI turns it into filters and re-ranks by description | |
| views | No | Only listings with any of these view types | |
| events | No | Only listings where any of these events happened; see the tool description | |
| max_age | No | At most this many years since built | |
| max_zip | No | Highest ZIP code in a numeric ZIP range (with min_zip) | |
| min_age | No | Years since built | |
| min_zip | No | Lowest ZIP code in a numeric ZIP range (with max_zip); prefer zip_list for specific ZIPs | |
| has_pool | No | true = only listings with a pool | |
| has_view | No | true = only listings with any view (use views on live search for a specific kind) | |
| keywords | No | Comma-separated listing keywords, e.g. "pool, granite" | |
| location | No | City and state ("Dallas, TX") or ZIP code | |
| max_beds | No | Maximum bedrooms | |
| max_sqft | No | Maximum living area in square feet | |
| min_beds | No | Minimum bedrooms | |
| min_sqft | No | Minimum living area in square feet | |
| zip_list | No | Keep only these ZIPs; set location to the city that contains them | |
| home_type | No | Zillow home type code | |
| max_baths | No | Maximum bathrooms | |
| max_price | No | Maximum price (monthly rent for rentals), USD | |
| min_baths | No | Minimum bathrooms (half baths count as 0.5) | |
| min_price | No | Minimum price (monthly rent for rentals), USD | |
| center_lat | No | Radius search centre (with center_lng and radius_miles) | |
| center_lng | No | Radius search centre longitude (with center_lat and radius_miles) | |
| has_garage | No | true = only listings with a garage | |
| min_equity | No | Estimated equity in USD (Zestimate or price minus assessed value; rough) | |
| days_posted | No | Only listings posted within this many days | |
| has_3d_tour | No | true = only listings with a 3D virtual tour | |
| only_vacant | No | Likely vacant (heuristic: description keywords + long days on market) | |
| listing_type | No | Seller / listing kind; for catching NEW entries into a distress stage prefer events | |
| max_lot_size | No | Square feet | |
| min_lot_size | No | Square feet (1 acre = 43,560) | |
| radius_miles | No | Keep only listings within this many miles of center_lat / center_lng | |
| is_waterfront | No | true = only waterfront listings | |
| neighborhoods | No | Neighborhood / area names matched against address and description | |
| only_absentee | No | Absentee-owned (owner mails elsewhere) | |
| has_open_house | No | true = only listings with an upcoming open house | |
| listing_status | No | Defaults to forRent when omitted and the query doesn't imply one | |
| max_year_built | No | Built in or before this year | |
| min_year_built | No | Built in or after this year | |
| ownership_type | No | business = LLC / corp / trust owners (heuristic) | |
| is_single_story | No | true = only single-story homes | |
| event_stale_days | No | Days on market that counts as stale (default 90) | |
| is_price_reduced | No | true = only listings whose asking price has been cut | |
| event_within_days | No | Lookback window for events, in days (default 7) | |
| max_days_on_market | No | Listed at most this many days | |
| min_days_on_market | No | Listed at least this many days (higher suggests a motivated seller) | |
| max_ownership_years | No | Owner has held the property at most this long | |
| min_ownership_years | No | Owner has held the property at least this long | |
| event_min_change_pct | No | Minimum % move for price / rent / Zestimate / assessment events | |
| has_air_conditioning | No | true = only listings with air conditioning | |
| only_pre_foreclosure | No | Distressed / pre-foreclosure (heuristic, includes description keywords) | |
| event_min_equity_gap_pct | No | Minimum % Zestimate above last sale price for equity_gap (default 30) |