Rechat SDK
    Preparing search index...

    Web Components

    Embed a property search map on any website with HTML custom elements. No framework required. Load the script and stylesheet first. See Installation.

    <rechat-root brand_id="YOUR_BRAND_ID">
    <rechat-listings filter_listing_statuses="Active">
    <rechat-map-filter></rechat-map-filter>
    <div style="display:flex; height:100vh">
    <div style="flex:1">
    <rechat-map default_center="32.7767, -96.797"></rechat-map>
    </div>
    <div style="flex:1; overflow:auto">
    <rechat-listings-count></rechat-listings-count>
    <rechat-map-listings-grid></rechat-map-listings-grid>
    <rechat-listings-pagination></rechat-listings-pagination>
    </div>
    </div>
    </rechat-listings>
    </rechat-root>

    Or skip the hand-writing and generate this with the Widget Builder.

    <rechat-root>: outermost wrapper. Handles auth and brand config. One per page.

    <rechat-listings>: listing context. Owns filter state and API calls. All listing components must be inside it.

    Element Description
    <rechat-root> Brand and auth context
    <rechat-listings> Listing context (filter + map state)
    <rechat-map> MapLibre + OpenFreeMap map with listing pins
    <rechat-map-filter> All-in-one filter bar
    <rechat-map-listings-grid> Listing card grid
    <rechat-listings-list> Flat listing card list
    <rechat-listing-card> Single listing card
    <rechat-listing-details> Details modal, opened when a card is clicked
    <rechat-listings-sort> Sort dropdown
    <rechat-listings-count> Result count display
    <rechat-listings-pagination> Page navigation
    <rechat-listings-disclaimer> Optional manual position for the MLS disclaimers (shown automatically otherwise)
    <rechat-property-search-form> Standalone search form

    Add <rechat-listing-details> once inside <rechat-listings> to enable the details modal on card clicks.

    Search widgets (any embed with <rechat-map-filter> or a <rechat-filter-*> tag) show the MLS-required disclaimers automatically for the listings on screen: after the results in a map and list layout, below the pagination otherwise, and in the details modal footer. Listings-only embeds stay quiet. Override either default with disclaimer="full|modal|off" on <rechat-listings>; see the attribute reference.

    Use these instead of <rechat-map-filter> for custom layouts:

    <rechat-filter-search> <rechat-filter-property-type> <rechat-filter-price> <rechat-filter-beds> <rechat-filter-baths> <rechat-filter-advanced> <rechat-filter-reset> <rechat-filter-loading>

    These are independent of <rechat-listings>: they sit directly inside <rechat-root> and work on brokerage portal sites.

    Element Description
    <rechat-agents> Agent roster context; holds <rechat-agents-search>, <rechat-agents-count>, <rechat-agents-grid> and <rechat-agents-pagination>. See Agents
    <rechat-agent> A single roster member by user id. See Agents
    <rechat-testimonials> Client testimonials as cards with a "Load more" button, in one tag. See Testimonials