re-site-kit: Types Types
Every type the package exports, with its fields. Data types come from the package root; each component's props type is exported next to the component.
Copy import type {
RealEstateListing,
SearchListingsOptions,
ListingSearchResult,
ListingPaginationInfo,
} from '@sonordev/re-site-kit'
import type { ListingGalleryProps } from '@sonordev/re-site-kit/client'
import type { RealEstateMcpOptions } from '@sonordev/re-site-kit/mcp'
One listing, in the same shape whichever serve mode your project uses. Most fields are nullable: feeds don't fill everything, and listings entered by hand fill only some of it.
Field Type What it is idstringSonor's id for the listing. Stable, so use it as a React key. sitestringThe sub-site host on a multi-site project. sourcestringWhere the listing came from: the MLS feed, or entered by hand. source_listing_idstring | nullThe MLS number. source_urlstring | nullThe listing's page at its source. slugstring | nullThe listing's URL slug on your site.
Field Type What it is statusListingStatusactive, pending, sold, expired or withdrawn.typeListingTypesale, rent or lease.listing_datestring | nullWhen it was listed. days_on_marketnumber | nullDays on market. featuredbooleanMarked as featured. tagsstring[] | nullTags.
Field Type addressstringunit_numberstring | nullcity, state, zip, county, countrystring | nullneighborhoodstring | nullbuilding_namestring | nulllatitude, longitudenumber | nullbuildingListingBuildingRef | null (optional): the building Sonor matched it to. See Buildings .
Field Type property_typePropertyType | nullyear_builtnumber | nullsquare_feet, lot_size_sqftnumber | nullbedrooms, bathrooms, full_bathrooms, half_bathroomsnumber | nullgarage_spaces, stories, floor_levelnumber | nullfeaturesstring[] | null
Field Type What it is pricenumber | nullList price. price_displaystring | nullThe feed's own formatted price, when it has one. formatPrice prefers it. price_per_sqftnumber | nullPrice per square foot. currencystring | nullCurrency code. Treated as USD when missing. hoa_feenumber | nullHOA fee, per hoa_frequency. hoa_frequencystring | nullHow often the fee is due, e.g. "Monthly" or "Quarterly". See monthlyHoa . hoa_includesstring[] | nullWhat the HOA fee covers. building_amenitiesstring[] | nullShared amenities. pets_allowedboolean | nullWhether pets are allowed, when the listing says. pet_restrictionsstring | nullPet rules.
Field Type imagesstring[] | nullvirtual_tour_url, video_url, floor_plan_urlstring | nulldescription, remarks_publicstring | nullseo_title, seo_descriptionstring | null (used by listingMetadata when set)
Field Type listing_agent_name, listing_agent_email, listing_agent_phonestring | nulllisting_office_namestring | null (the listing brokerage, for IDX credit)
Field Type What it is open_housesListingOpenHouse[] | null (optional)Upcoming open houses. Present on a single listing from a project in live serve mode. created_at, updated_atstringISO 8601 timestamps. IdxAttribution shows updated_at.
Copy type ListingStatus = 'active' | 'pending' | 'sold' | 'expired' | 'withdrawn'
type ListingType = 'sale' | 'rent' | 'lease'
type PropertyType =
| 'single_family'
| 'condo'
| 'townhouse'
| 'multi_family'
| 'land'
| 'commercial'
| 'other'
interface ListingOpenHouse {
date : string | null
start_time : string | null
end_time : string | null
comments : string | null
}
interface ListingBuildingRef {
slug : string
name : string
url : string | null
}
Type What it is SearchListingsOptionssearchListings' options: site, status, type, city, zip, neighborhood, minPrice, maxPrice, bedsMin, bathsMin, propertyType, building, q, sort ('price_asc' | 'price_desc' | 'newest' | 'updated'), page, limit. All optional. See Search and filters .ListingSearchResult{ listings: RealEstateListing[]; pagination: ListingPaginationInfo }ListingPaginationInfo{ page: number; page_size: number; total: number | null; total_pages: number | null }. It's named ListingPagination in the source; the root export renames it so it doesn't clash with the ListingPagination component.GetListingsOptionsgetListings' options: site, status, type, limit, offset. All optional.
Type What it is GetHotListingsOptions{ site?: string; window?: string; limit?: number }HotListingEntry{ listing: RealEstateListing; views: number; unique_viewers: number; prior_views: number; trend_pct: number | null; last_viewed_at: string | null }HotListingsResult{ window_hours: number; listings: HotListingEntry[] }, the API's raw response. getHotListings returns just the listings array.
See Hot properties .
Type What it is BuildingRegistryEntryOne building in your registry: slug and name required; id, aliases, addresses, city, state, zip, latitude, longitude, radius_m, url optional. See the registry . BuildingSummary{ slug: string; name: string; url: string | null; external_id: string | null; active_count: number; price_min: number | null; price_max: number | null }ListingStatsWhat summarizeListings returns: count, priceMin, priceMax, medianPrice, medianPricePerSqft, medianSqft, medianMonthlyHoa, medianDaysOnMarket, bedsMin, bedsMax, petFriendlyShare. See Market snapshot .
Type What it is ListingJsonLdOptions{ url?: string; siteName?: string }, for buildListingJsonLd and ListingSchema.
Type Import from What it is RealEstateMcpOptions@sonordev/re-site-kit/mcpThe options for realEstateMcpTools and realEstateMcpServerInfo. See MCP tools .
← Previous Formatting and JSON-LD re-site-kit Next → Subpath map re-site-kit