Rechat SDK
    Preparing search index...

    Listings

    sdk.Listings searches Rechat's listing inventory from code. On a portal site the search routes through the portal (which scopes results to the brokerage); on any other site it falls back to the public API.

    const sdk = new Rechat.Sdk()

    const result = await sdk.Listings.search({
    filters: {
    listing_statuses: ['Active'],
    minimum_price: 500000,
    maximum_price: 900000,
    minimum_bedrooms: 3,
    property_types: ['Residential'],
    },
    sortBy: '-price',
    limit: 20,
    offset: 0,
    })

    console.log(result.info.total, 'matches')
    result.data.forEach(listing => console.log(listing))
    Param Default Description
    filters required The filter object — see below. listing_statuses is required.
    sortBy "-price" Sort field; - prefix = descending
    limit 20 Listings per page
    offset 0 Pagination offset

    Resolves with { data, info } where data is the listings array and info is { count, total }count for this page, total across all pages.

    Same parameters as search, but only returns the total:

    const { total } = await sdk.Listings.count({
    filters: { listing_statuses: ['Active'], pool: true },
    })

    All optional except listing_statuses.

    Generallisting_statuses (e.g. ['Active', 'Sold']), brand.

    Rangesminimum_price / maximum_price, minimum_bedrooms / maximum_bedrooms, minimum_bathrooms, minimum_parking_spaces, minimum_square_meters / maximum_square_meters, minimum_lot_square_meters / maximum_lot_square_meters, minimum_year_built / maximum_year_built, minimum_sold_date (Unix epoch seconds).

    Flagspool, open_house, office_exclusive.

    Classificationproperty_types, property_subtypes, architectural_styles, agents, list_agents, list_offices, mls_number, mlses (brokerage-side MLS scope: restricts every search to these MLSes regardless of other filters).

    Free textcontent matches listing descriptions rather than the address index. In the web components this is what the Keywords input in More filters sets; it is independent of the address search box. Expect it to be considerably slower than a status-only query.

    Geopostal_codes, mls_areas, school_districts, subdivisions, counties, boundaries, points (an array of { latitude, longitude } polygon vertices).

    Note the JavaScript filters use square meters, unlike the web-component attributes, which take square feet.

    Looking for a ready-made UI instead? The Web Components render a full search experience on top of this same API.