Model MatchHelp

Sales

Get sale by ID

getapi.modelmatch.com/v1/sales/{id}

Authorization

x-api-keystringrequired

API key or OAuth token. See Authentication.

Path parameters

idstringrequired

Sale document ID

Responses

200objectSale detail
Show attributes
dataobjectrequired
Show child attributes
apnstring | null
bathsnumber | null

Number of full bathrooms

bedsnumber | null

Number of bedrooms

buyerNamestring | null
citystring | null
coListAgentIdstring | null

ModelMatch agent ID for the co-listing agent, same rule

coListAgentNamestring | null

Co-listing agent's name as the recorded it

coordinatesobject | null
Show child attributes
latnumberrequired
lonnumberrequired
cumulativeDaysOnMarketnumber | null

Cumulative days on market across relists, as the states it.

daysOnMarketnumber | null
fipsstring | null
idstringrequired

Document ID

lastPriceChangeDatestring | null

Date of the most recent list-price change (YYYY-MM-DD). Roughly 60% filled on active listings.

listDatestring | null

list date (YYYY-MM-DD)

listPricenumber | null

List price in dollars

listingAgentIdstring | null

ModelMatch agent ID for the listing agent — the agent the keys resolve to (the agentSales / loans rule), else the sale's linked agent id

listingAgentNamestring | null
mediaobject | null

Listing 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 attributes
foundAtstringrequired

When the photos were found (ISO-8601)

photosobject[]required
sourceobjectrequired
mlsDaysOnMarketnumber | null

Days on market as the states it for this listing. Distinct from daysOnMarket, which is only filled on some sold rows.

mlsStatusenum | null

Listing status code

Options:SLDACTPNDCancelledWDNEXPCNTOFFUNKRNTDRNTLSERNT-SLDRNT-ACTRNT-PNDRNT-WDNRNT-EXPRNT-LSERNT-RNTDnull
mmPropertyIdstring | null

Property 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 | null

Date the property was first listed (YYYY-MM-DD), which can precede listDate when it was relisted.

originalListPricenumber | null

Original list price in dollars

pendingDatestring | null

Date the listing went pending (YYYY-MM-DD). Filled on about half of sold listings and few active ones.

previousListPricenumber | null

List 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 | null

Listing property type (e.g. Residential, Condo)

recordingDatestring | null
salePricenumber | null

Transaction price in dollars

sellerNamestring | null
soldAgentIdstring | null

ModelMatch agent ID for the sold/buying agent, same rule

soldAgentNamestring | null
soldDatestring | null

sold date (YYYY-MM-DD) — the close, which can differ from transactionDate (the recorded deed)

soldPricenumber | null

Sold price in dollars

sqftnumber | null

Living area in square feet

statestring | null
streetAddressstring | null
transactionDatestring | null
yearBuiltnumber | null

Year the property was built

zipCodestring | null
buyerNamesnull
descriptionstring | null

Listing 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 | null
featuresobject | null

Property 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 attributes
appliancesstring[] | null

Included appliance tokens

conditionstring | null

Resale or NewConstruction

coolingstring[] | null

Cooling feature tokens (e.g. CentralAir)

exteriorFeaturesstring[] | null

Exterior feature tokens

fireplaceboolean | null
garageSpacesnumber | null
heatingstring[] | null

Heating feature tokens (e.g. Central)

hoaFeenumber | null

Primary association fee in dollars, per hoaFeeFrequency

hoaFeeFrequencystring | null

How often hoaFee is charged (e.g. Monthly, Annually)

interiorFeaturesstring[] | null

Interior feature tokens

lotSizeAcresnumber | null
lotSizeSqftnumber | null
parkingFeaturesstring[] | null

Parking feature tokens (e.g. Attached)

parkingTotalnumber | null

Total parking spaces

poolFeaturesstring[] | null

Pool feature tokens. The bare None token is dropped.

poolPrivateboolean | null

Whether the property has a private pool

propertySubTypestring | null

Listing sub-type (e.g. SingleFamilyResidence, Condominium). More reliably filled than propertyType.

storiesnumber | null
subdivisionstring | null
taxAnnualAmountnumber | null

Annual property tax in dollars as listed

taxAssessedValuenumber | null
taxAssessedYearnumber | null
viewstring[] | null

View tokens. The bare None token is dropped.

waterfrontboolean | null
listAgentnull
listingContactobject | null

Listing 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 attributes
agentEmailstring | null
agentNamestring | null
agentPhonestring | null
officeNamestring | null
officePhonestring | null
mlsBoardsnull
mlsListDatenull
mlsPendingDatenull
mlsSoldDatenull
mmSaleIdstring | null
rentalobject | null

Lease-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 attributes
laundrystring[] | null
leaseIncludesstring[] | null

What the rent includes. Rarely filled (under 1% of active leases in the counties checked).

leaseTermstring[] | null

Lease term tokens, e.g. TwelveMonths, Negotiable.

petsstring[] | null

Pet 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[] | null
schoolsobject | null

Schools 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 attributes
elementarystring | null
elementaryDistrictstring | null
highstring | null
highDistrictstring | null
middlestring | null
middleDistrictstring | null
sellerNamesnull
soldAgentnull
tourUrlstring | null

Link 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 found
413objectResponse payload too large