Use this when the user wants to find, browse, or compare specific real estate properties for sale or recently sold in Canada (primarily British Columbia). Do NOT use this for price range questions, price distribution analysis, or "what do prices look like" queries — use get_price_distribution instead. Do not use this for mortgage calculations, property tax lookups, or general real estate advice unrelated to specific listings.
LOCATION (cityOrRegion field). Use specific mapping codes for best results:
- SUNSHINE COAST - SEA-TO-SKY: "sunshine-coast" (Sunshine Coast), "powell-river" (Powell River), "squamish" (Squamish), "whistler" (Whistler & Area)
- NORTH SHORE: "mapbd" (Bowen Island), "mapwv" (West Vancouver), "mapnv" (North Vancouver)
- METRO VANCOUVER: "metro" (Metro Vancouver RD), "vancouver-city" (City of Vancouver), "vancouver-downtown" (→ Vancouver Downtown), "vancouver-westside" (→ Vancouver Westside), "vancouver-eastside" (→ Vancouver Eastside), "mapby" (Burnaby), "mapnw" (New Westminster), "mappm" (Port Moody & Area), "coquitlam" (Coquitlam), "port-coquitlam" (Port Coquitlam), "pitt-meadows" (Pitt Meadows), "maple-ridge" (Maple Ridge), "mapri" (Richmond), "ladner" (Ladner), "tsawwassen" (Tsawwassen & Area), "delta" (North Delta), "surrey-city" (City of Surrey), "north-surrey" (→ North Surrey), "central-surrey" (→ Central Surrey), "cloverdale" (→ Cloverdale), "south-surrey" (→ South Surrey), "white-rock" (White Rock), "langley" (Langley)
- FRASER VALLEY: "mapfv-mission" (Mission), "mapfv-abbotsford" (Abbotsford), "chilliwack" (Chilliwack), "chilliwack-rural" (Chilliwack Rural), "sardis" (Sardis), "hope" (Hope & Area)
- VANCOUVER ISLAND: "north-island" (North Island), "campbell-river" (Campbell River), "comox-valley" (Comox Valley), "parksville-qualicum" (Parksville, Qualicum Beach), "port-alberni" (Port Alberni, West Coast), "nanaimo" (Nanaimo), "cowichan-valley" (Cowichan Valley)
- VICTORIA & AREA: "malahat" (Malahat & Area), "sidney" (Sidney), "saanich-north" (North Saanich), "saanich-central" (Central Saanich), "saanich-west" (Saanich West), "saanich-east" (Saanich East), "oak-bay" (Oak Bay), "sooke" (Sooke), "metchosin" (Metchosin), "langford" (Langford), "colwood" (Colwood), "highlands" (Highlands), "view-royal" (View Royal), "esquimalt" (Esquimalt), "victoria-west" (Victoria West), "victoria-city" (City of Victoria)
- ISLANDS: "gulf-islands" (Gulf Islands), "islands-vi" (Islands (VI))
- NORTHERN INTERIOR: "south-peace" (Dawson Creek | Chetwynd | Tumbler Ridge), "prince-george" (Prince George & Area)
- CENTRAL INTERIOR: "kamloops" (Kamloops & Area), "shuswap" (Shuswap | Revelstoke), "vernon" (Vernon & Area), "kelowna" (Kelowna & Area), "south-okanagan" (Penticton & Area | Similkameen), "kootenays" (Kootenays)
- BC BOARD REGIONS: "rebgv" (Vancouver & Region (GVR)), "fvreb" (Fraser Valley Region (FVREB)), "cadreb" (Chilliwack & Region (CADREB)), "vireb" (Vancouver Island (VREB & VIREB)), "prscreb" (Powell River & Area (PRSCREB)), "bcnreb" (BC Northern (BCNREB)), "air" (Association of Interior REALTORS (AIR))
To search ALL of British Columbia, omit cityOrRegion entirely.
If a location is not in the list above, use its full proper name (e.g., "North Vancouver").
NEIGHBORHOODS (areaName field): "yaletown", "coal-harbour", "kitsilano", "metrotown", "steveston-village".
If you need to find valid neighborhood names for a city or region, call the "get_neighborhoods" tool.
PRICE: price.min and price.max in CAD dollars (e.g., 500000 = $500K, 1000000 = $1M).
PROPERTY TYPE (propertyTypes array):
- HSE = House (detached)
- APT = Apartment/Condo (also APT-GroundLevelUnit, APT-Penthouse)
- TWN = Townhouse (also TWN-OnlyDuplexes, TWN-NoDuplexes)
- PAD = Manufactured home on pad
- MUF = Multi-family
- LND = Vacant land
- COM = Commercial
BEDROOMS/BATHROOMS: Use "beds" and "baths" with range {min, max} or array of exact counts. Use 0 for studio apartments. Example: beds: {min: 2} for 2+, beds: [0] for studios only.
PAGINATION: Use "page" and "limit" to navigate results.
FILTERS: Use "daysBack" (number of days, e.g. "30"), "orPriceChanged", "buildingAge", "leaseFilter", "resaleYearsBack", "priceChangedDaysBack", "landFrontage" for advanced filtering.
Returns: Properties with address, price, beds, baths, and Zealty URL.
RESPONSE STYLE:
- Be conversational and helpful. Write like a knowledgeable realtor, not a database.
- Never mention tool names, API calls, function names, or technical identifiers (e.g. "search_listings", "api_tool.call_tool"). Present information naturally as if you found it yourself.
- Never expose internal field names or raw JSON structures in your response.
LISTING PRESENTATION:
- Use the markdown-formatted listing text provided in results as-is. Do not reformat listings or display URLs separately — they are already embedded as clickable markdown links.
- Keep responses concise. Avoid repeating data that's already in the listing line.
- Use "$1,250,000" format for prices (CAD).
- Every tool result that contains MLS data — listings, market stats, or price distributions — ends with a required MLS® data disclosure note (starting with "NOTE: This representation is based in whole or in part on data generated by…"). You MUST reproduce this note verbatim at the end of any response that presents data from these tools, regardless of how you summarise or paraphrase the data. Never omit, shorten, or paraphrase the note itself. Include it exactly once per response, even when combining results from multiple tools or searches.
PAGINATION:
- Never mention page numbers, pagination, offsets, or limits.
- Instead say "here are the top N results out of X total" or "showing N more results out of X total".
- If more results are available, offer to show more without referencing pages (e.g. "Would you like to see more listings?").
CAPABILITIES:
- You can search ACTIVE (for-sale), SOLD, and EXPIRED listings.
- Sold and expired searches require authentication and the "daysBack" parameter to specify a time period (number of days, e.g. "30" for 30 days).
- If a user asks about sold prices or market history and is not authenticated, let them know they need to sign in first.
- Searches are limited to Canadian real estate, primarily British Columbia.
DISCLOSURE: The result text ends with a required MLS® data disclosure note (starting with "NOTE: This representation is based in whole or in part on data generated by…"). You MUST reproduce that note verbatim at the end of any response built from this data. Never omit, shorten, or paraphrase it — include it exactly once, even when combining results from multiple tools or searches.
search_listings