Sales
Get sale by ID
Authorization
Path parameters
idstringrequiredSale document ID
Responses
200objectSale detailShow attributesHide attributes
dataobjectrequiredShow child attributesHide child attributes
apnstring | nullbathsnumber | nullNumber of full bathrooms
bedsnumber | nullNumber of bedrooms
buyerNamestring | nullcitystring | nullcoListAgentIdstring | nullModelMatch agent ID for the co-listing agent, same rule
coListAgentNamestring | nullCo-listing agent's name as the recorded it
coordinatesobject | nullShow child attributesHide child attributes
latnumberrequiredlonnumberrequiredcumulativeDaysOnMarketnumber | nullCumulative days on market across relists, as the states it.
daysOnMarketnumber | nullfipsstring | nullidstringrequiredDocument ID
lastPriceChangeDatestring | nullDate of the most recent list-price change (YYYY-MM-DD). Roughly 60% filled on active listings.
listDatestring | nulllist date (YYYY-MM-DD)
listPricenumber | nullList price in dollars
listingAgentIdstring | nullModelMatch agent ID for the listing agent — the agent the keys resolve to (the agentSales / loans rule), else the sale's linked agent id
listingAgentNamestring | nullmediaobject | nullListing photos found on the open web and stored by a partner app: links to images hosted by the source (no image bytes are stored here), plus where they came from. Present only while a non-expired found record exists for THIS listing (a relist gets its own), so it is null for most listings. Not data and not necessarily the listing broker's photos: attribute them to source.host and link to source.pageUrl; they can stop resolving at any time.
Show child attributesHide child attributes
foundAtstringrequiredWhen the photos were found (ISO-8601)
photosobject[]requiredsourceobjectrequiredmlsDaysOnMarketnumber | nullDays on market as the states it for this listing. Distinct from daysOnMarket, which is only filled on some sold rows.
mlsStatusenum | nullListing status code
SLDACTPNDCancelledWDNEXPCNTOFFUNKRNTDRNTLSERNT-SLDRNT-ACTRNT-PNDRNT-WDNRNT-EXPRNT-LSERNT-RNTDnullmmPropertyIdstring | nullProperty id of the parcel this listing was matched to — the same id the propertyId filter takes. May not resolve to a parcel in some counties: in Travis, Williamson (TX), Hillsborough (FL) and Wake (NC) the id on a listing is built from the account number and usually does NOT exist as a property record, while in e.g. Maricopa, Denver and Davidson it usually does. Do not treat it as a guaranteed join key to /v1/properties.
originalListDatestring | nullDate the property was first listed (YYYY-MM-DD), which can precede listDate when it was relisted.
originalListPricenumber | nullOriginal list price in dollars
pendingDatestring | nullDate the listing went pending (YYYY-MM-DD). Filled on about half of sold listings and few active ones.
previousListPricenumber | nullList price before the most recent change, in dollars. Can equal listPrice (a change recorded on the list date) and is not guaranteed to be consistent with lastPriceChangeDate — verify before presenting a price-history timeline. Roughly 60% filled on active listings, about a third on sold.
propertyTypestring | nullListing property type (e.g. Residential, Condo)
recordingDatestring | nullsalePricenumber | nullTransaction price in dollars
sellerNamestring | nullsoldAgentIdstring | nullModelMatch agent ID for the sold/buying agent, same rule
soldAgentNamestring | nullsoldDatestring | nullsold date (YYYY-MM-DD) — the close, which can differ from transactionDate (the recorded deed)
soldPricenumber | nullSold price in dollars
sqftnumber | nullLiving area in square feet
statestring | nullstreetAddressstring | nulltransactionDatestring | nullyearBuiltnumber | nullYear the property was built
zipCodestring | nullbuyerNamesnulldescriptionstring | nullListing description (the public remarks) as supplied with the listing, typically lower-cased. Subject to the display and attribution rules that apply to listing content.
documentTypestring | nullfeaturesobject | nullProperty facts from the listing. Every field is nullable and filled far more densely on active listings (60-99%) than on sold ones (about half, and HOA fee / tax far less). Feature lists are RESO tokens, not display text.
Show child attributesHide child attributes
appliancesstring[] | nullIncluded appliance tokens
conditionstring | nullResale or NewConstruction
coolingstring[] | nullCooling feature tokens (e.g. CentralAir)
exteriorFeaturesstring[] | nullExterior feature tokens
fireplaceboolean | nullgarageSpacesnumber | nullheatingstring[] | nullHeating feature tokens (e.g. Central)
hoaFeenumber | nullPrimary association fee in dollars, per hoaFeeFrequency
hoaFeeFrequencystring | nullHow often hoaFee is charged (e.g. Monthly, Annually)
interiorFeaturesstring[] | nullInterior feature tokens
lotSizeAcresnumber | nulllotSizeSqftnumber | nullparkingFeaturesstring[] | nullParking feature tokens (e.g. Attached)
parkingTotalnumber | nullTotal parking spaces
poolFeaturesstring[] | nullPool feature tokens. The bare None token is dropped.
poolPrivateboolean | nullWhether the property has a private pool
propertySubTypestring | nullListing sub-type (e.g. SingleFamilyResidence, Condominium). More reliably filled than propertyType.
storiesnumber | nullsubdivisionstring | nulltaxAnnualAmountnumber | nullAnnual property tax in dollars as listed
taxAssessedValuenumber | nulltaxAssessedYearnumber | nullviewstring[] | nullView tokens. The bare None token is dropped.
waterfrontboolean | nulllistAgentnulllistingContactobject | nullListing agent and office contact as stored on the sale record. Personal data about a licensee: confirm you may display it before showing it to consumers.
Show child attributesHide child attributes
agentEmailstring | nullagentNamestring | nullagentPhonestring | nullofficeNamestring | nullofficePhonestring | nullmlsBoardsnullmlsListDatenullmlsPendingDatenullmlsSoldDatenullmmSaleIdstring | nullrentalobject | nullLease-listing terms as supplied with the listing; null unless the listing carries any. There is no furnished, availability-date or security-deposit field in the index.
Show child attributesHide child attributes
laundrystring[] | nullleaseIncludesstring[] | nullWhat the rent includes. Rarely filled (under 1% of active leases in the counties checked).
leaseTermstring[] | nullLease term tokens, e.g. TwelveMonths, Negotiable.
petsstring[] | nullPet policy as RESO tokens, e.g. CatsOk, DogsOk, SizeLimit, BreedRestrictions, PetDeposit, Yes, No, Negotiable (spelling varies by feed: Cats OK). Filter with petsAllowed / catsAllowed / dogsAllowed.
utilitiesstring[] | nullschoolsobject | nullSchools assigned to the listing, as named on the listing record. These are not ratings and not a boundary lookup; label them as listed.
Show child attributesHide child attributes
elementarystring | nullelementaryDistrictstring | nullhighstring | nullhighDistrictstring | nullmiddlestring | nullmiddleDistrictstring | nullsellerNamesnullsoldAgentnulltourUrlstring | nullLink to the listing's tour or marketing page (Matterport, a photographer's site, etc.), verbatim. A third-party URL that may carry the sender's tracking parameters; link out, do not embed. Filled on roughly 40% of active listings.
404objectSale not found413objectResponse payload too large