Search Homejourney listings
search_listingsPrimary listing-discovery tool for homes in Singapore. Use this when the user asks what properties are available, or describes a home to buy or rent by area, MRT station, school, budget, bedrooms, flat type or other criteria. Omit query for a broad availability request; query is full-text search over project, title, address and description. pagination.total is the exact number of matching listings; the listings one agent has at one address or in one development on a page come back as one result whose listingCluster names the others. Returns summaries of active, published Homejourney listings that may be shown in AI assistants: price, size, address, nearest MRT, nearby schools, a Homejourney link and a link to book a viewing, but never the owner or agent contact details.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort | No | newest is the recommended order; listed_newest is strictly by listing date. | newest |
| limit | No | ||
| query | No | ||
| towns | No | HDB towns, URA planning areas or URA regions the listing lies in, such as "Tampines", "Bukit Timah" or "East". A region (Central, East, North, North-East, West) covers all its planning areas. | |
| school | No | A school's full MOE name, such as "Tao Nan School". Matches homes that list it among their nearby schools; each result's searchedSchool gives its distance. Use for "near a school" or Primary 1 searches. | |
| tenure | No | ||
| psf_max | No | Price per square foot in SGD. | |
| psf_min | No | Price per square foot in SGD. | |
| bedrooms | No | ||
| district | No | ||
| size_max | No | Floor area in square feet. | |
| size_min | No | Floor area in square feet. | |
| districts | No | Singapore postal districts, such as "D09" or "15". | |
| listed_by | No | Who lists the home. owner keeps homes their owners list: on Homejourney, or on HDB Flat Portal without an agent. agent keeps every other home. pagination.total counts only these homes. | |
| mrt_lines | No | MRT or LRT lines; a listing matches when its nearest station is on one. Combines with mrt_stations as 'near any'. | |
| price_max | No | ||
| price_min | No | ||
| furnishing | No | The furnishing the renter wants. Matches homes stated as this, and homes that state no furnishing. | |
| bedrooms_min | No | ||
| listing_type | No | ||
| mrt_stations | No | Nearest MRT station names, such as "Orchard" or "Tanjong Pagar". | |
| pets_allowed | No | true for a renter with a pet. Leaves out homes that say no pets; homes that state no pet policy still match, so confirm it with the lister. | |
| project_name | No | Exact condominium or development name. | |
| bathrooms_min | No | ||
| property_type | No | One of HDB, Condominium, Executive Condominium, Landed. Common words such as Condo, EC, Apartment, HDB flat or Bungalow are read as these. | |
| available_from | No | The renter's move-in date. Matches homes available on or before it, and homes that state no date. | |
| bedroom_counts | No | Exact bedroom counts to match, such as [2, 3]; 0 is a studio. Combines with bedrooms_min, so [0] plus bedrooms_min 5 means studio or 5+. | |
| foreign_tenant | No | true for a renter who is a foreigner, expat or PR. Searches rentals, rooms included, since no listing turns non-citizens away. An HDB whole flat comes back with checkHdbQuota true: it can go to a non-citizen other than a Malaysian only while HDB's quota for its block has room, which only HDB's quota checker can say, so tell the user to check it. The query words "expat" and "foreigner" set this too. | |
| hdb_flat_types | No | HDB flat types, such as "4-room" or "executive". | |
| reachable_only | No | Only homes whose owner or agent can be reached now: a viewing request reaches the owner or a Homejourney agent, or the lister takes WhatsApp. Leaves out homes whose agent is not on Homejourney yet and has no verified WhatsApp number. pagination.total counts only these homes. | |
| bathroom_counts | No | Exact bathroom counts to match; combines with bathrooms_min. | |
| subletting_type | No | ||
| landed_house_types | No | Landed house types, such as "semi_detached" or "terrace"; detached is a bungalow, and strata_landed a landed house in a condominium development. Corner and intermediate houses both match their type. A landed listing that does not state its house type is left out, so pagination.total counts only listings that say. | |
| listed_within_days | No | ||
| utilities_included | No | true for a renter who wants utilities in the rent. Leaves out homes that say utilities are extra; homes that do not say still match, so confirm it with the lister. | |
| lease_duration_months | No | The renter's lease length in months. Matches homes whose minimum lease is at most this, and homes that state no minimum. | |
| max_school_distance_km | No | Keeps homes within this many km of a school, such as 1 or 2 for the Primary 1 bands. With school, the limit applies to that school, and each result's searchedSchool.distanceKm gives its distance. | |
| messages_on_homejourney | No | Only homes whose host reads Homejourney messages: start_listing_conversation reaches the listing's Homejourney agent, else its owner, so the user's viewing can be arranged in a Homejourney thread. Leaves out homes reached only by a viewing request or WhatsApp. pagination.total counts only these homes. | |
| min_remaining_lease_years | No | Fewest whole years of lease that must remain, as compare_listings reads it: an HDB flat's block lease, or a condo, EC or landed home's land lease. Freehold and 999-year homes always match, and so does an HDB flat whose block's year completed alone leaves enough (lease.minRemainingYears); homes whose lease left is not known are left out, and leaseFilter.leaseUnknown counts them. pagination.total counts only the matches. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| featured | No | Labelled Pro listings matching the search, on page 1 only. | |
| nextSteps | No | Suggestions for what the user usually does next, best first. Each names the tool to call or the page to open; none is taken without the user asking, and a tool that writes still needs their confirmation. | |
| pagination | Yes | ||
| leaseFilter | No | How min_remaining_lease_years narrowed the search. | |
| matchedTerm | No | ||
| roomMatches | No | Rooms that match when no whole unit does. | |
| featuredNote | No | ||
| resultReason | No | Why the search found no listing, or that it searched a corrected term. | |
| unappliedIntent | No | Words in query that an explicit filter replaced; those words were not searched. | |
| continuedClusters | No | This page's listings in a listingCluster that the previous page already shows, which data leaves out: listingId is one of its listings on that page, listingIds are this page's listings in it. |