Model MatchHelp

Properties

Get property by ID (with mm_property_id fallback)

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

Authorization

x-api-keystringrequired

API key or OAuth token. See Authentication.

Path parameters

idstringrequired

Property document ID

Responses

200objectProperty detail
Show attributes
alternatesstring[]

Sibling document ids when ambiguousRef is true — pass one back as /{id} to fetch that exact unit. Absent on an unambiguous lookup.

ambiguousRefboolean

true only when the id you passed resolved to more than one parcel (a non-unique mm_property_id colliding across units). data is a deterministic pick (the base parcel); use alternates to re-request a specific sibling by its exact id. Absent on an unambiguous lookup.

dataobjectrequired
Show child attributes
absenteeOwnerboolean | null

true when the owner's mailing address (street + 5-digit zip, case/punctuation-insensitive) differs from the property's site address — a non-owner-occupied/investor signal; false when the owner mails to the property; null when either address is missing. Filterable.

activeLoanCountnumber | null

Mortgages believed to still be outstanding. IMPORTANT: 0 does not always mean the parcel is paid off — on a recently-sold parcel it usually means the buyer's new mortgage has not reached the public record yet, so the honest reading is UNKNOWN. Check activeLoanCountKnown before treating a 0 as fact, and do not infer 100% equity from it.

activeLoanCountKnownboolean

false when activeLoanCount reflects a gap in the record rather than a measurement — the parcel sold, its prior mortgage was excluded, and no replacement has been recorded yet. On those parcels activeLoanCount: 0, mortgageBalance: 0 and an equity of 100% are all consequences of the same missing document, not independent findings. To exclude them, filter preSaleLoanCount: {lte: 0} alongside activeLoanCount: {lte: 0}.

addressstring | null
apnstring | null

Assessor parcel number (cleaned)

avmobject | null
Show child attributes
confidencenumber | nullrequired

0–100

highnumber | nullrequired
lownumber | nullrequired
midnumber | nullrequired
bathsnumber | null
bedsnumber | null
borrowerStatusstring | null
borrowersobject[]

Borrowers on the current mortgage (up to two); not the owner of record.

Show child attributes
firstNamestring | nullrequired
lastNamestring | nullrequired
citystring | null
coordinatesobject | null
Show child attributes
latnumberrequired
lonnumberrequired
countyNamestring | null

County name, lowercase ("catawba county").

currentOwnerNamestring | null

The assessor's owner-of-record line as recorded — every owner on title.

equityobject | null
Show child attributes
pctnumber | nullrequired

Equity as a FRACTION of the value estimate — 1 is the whole value, 0.5 is half. A 1 alongside activeLoanCountKnown: false is arithmetic on a missing mortgage, not a free-and-clear parcel.

valuenumber | nullrequired

Estimated equity in whole dollars — the value estimate minus the outstanding balance of the mortgages we know about. It inherits their completeness: when activeLoanCountKnown is false there is no known balance to subtract, so this equals the full value estimate and should NOT be read as equity.

equityPlausibleboolean

false when equity is outside the range our equity metrics treat as possible, so aggregate equity figures exclude this parcel while this row still shows it — both are correct, they are answering different questions. Applies to pct as well, since that is value divided by the value estimate. Read alongside activeLoanCountKnown, which is the opposite failure: that one flags equity computed against a MISSING mortgage (so equity looks too GOOD), where this one flags equity distorted by an oversized one (equity looks too BAD).

fipsstring | null

FIPS county code

foreclosureobject
Show child attributes
datestring | nullrequired

Recording date of the most recent foreclosure notice (ISO 8601) — the value the foreclosureDate filter matches. Null when the parcel has no notice.

matchedbooleanrequired
scheduledAuctionDatestring | nullrequired
stagestring | nullrequired

Stage code of the most recent recorded foreclosure notice (e.g. "ND", "NS") — the value the foreclosureStage filter matches. Null when the parcel has no notice.

statusstring | nullrequired

e.g. "in_foreclosure" or "unknown"

idstringrequired

Document ID

loanCountnumber | null

Every mortgage on record for this parcel, current or not. Splits into activeLoanCount + preSaleLoanCount + the paid-off and released counts on the detail position block.

loanTypestring | null
loansobject[]

The parcel's cached top-5 loans (may be fewer than loanCount; full history is on the loans index).

Show child attributes
amountnumber | nullrequired
amountPlausibleboolean

false when amount is outside the range our mortgage metrics treat as possible, so aggregate totals exclude this loan while this row still shows it. Usually an institutional blanket loan — one note recorded against every parcel in a pool — which is a real record but not this property's debt. This judges SIZE only, so true means the amount is a believable one, not that it is the right one.

borrowerStatusstring | nullrequired
brokerNmlsstring | nullrequired
companyNamestring | null

Funding-company name as recorded on the loan.

companyNmlsstring | nullrequired
currentBalancenumber | nullrequired
interestRatenumber | nullrequired
lenderIdstring | nullrequired

Lender id for this loan — pass it back as loanLender to select every parcel financed by the same lender, exactly as a chart bucket's id round-trips. null when this loan carries no lender id; use lenderName with loanLenderName in that case.

lenderNamestring | nullrequired

Lender name as recorded on the loan document — the same value /v1/loans returns as lenderName for this loan. To filter parcels by it, pass it as loanLenderName; lenderId is the exact-id route.

lenderNmlsstring | nullrequired
loanTypestring | nullrequired
ltvnumber | nullrequired

DEPRECATED — do not use; will be removed in a future major. This is not a reliable loan-to-value ratio. It is NOT per-loan: two thirds of parcels carrying several mortgages report an identical figure across loans of very different amounts, so per-loan equity computed from it is wrong. Nor does it consistently track the parcel's combined position, so it cannot be read as a whole-parcel ratio either. null when unknown — the stored value is clipped to a fixed range and both ends mean "clipped" rather than a real ratio, so they are returned as null rather than as a plausible-looking number. For a dependable measure of borrower position use equity on the parcel.

originatorNamestring | nullrequired
originatorNmlsstring | nullrequired
recordedInterestRatenumber | nullrequired
recordingDatestring | nullrequired
transactionTypestring | nullrequired
lotSquareFeetnumber | null
mmPropertyIdstring | null
mortgageBalancenumber | null
mortgageBalancePlausibleboolean

false when mortgageBalance is outside the range our mortgage metrics treat as possible — typically a parcel carrying an institutional blanket loan, where one securitization note is recorded against every property in the pool. Sorting by mortgageBalance puts these first, so check this flag before reading the top of that list as the most heavily mortgaged homes.

ownerFirstNamestring | null
ownerLastNamestring | null
ownerMailingAddressobject | null

Primary owner's mailing address, null when none is recorded.

Show child attributes
citystring | nullrequired
statestring | nullrequired
streetstring | nullrequired
zipstring | nullrequired
ownerMiddleNamestring | null
ownerNamestring | null
ownerOccupancyenum

Assessor owner-occupancy flag, bucketed: owner_occupied (owner-occupied, incl. the vendor's phased-out non-residential code), probable_owner_occupied, or not_flagged (the assessor did not flag the parcel — not proof of an investor, but where non-owner-occupied/investor parcels land; pair with absenteeOwner). Filterable.

Options:owner_occupiedprobable_owner_occupiednot_flagged
ownerOccupiedboolean | null

true only on the assessor's confident owner-occupied code ("Y"); null = not flagged / unknown, never false. Kept for compatibility — prefer ownerOccupancy.

partialBathsnumber | null
preSaleLoanCountnumber | null

Mortgages excluded from activeLoanCount because the parcel sold after they were recorded — the seller's loan, assumed paid off at closing. Read this NEXT TO activeLoanCount, never alone: a non-zero value on a parcel that still has an active loan is the normal post-sale state and means the replacement mortgage was recorded. It is only a warning when activeLoanCount is 0, which is what activeLoanCountKnown reports.

recordedInterestRatenumber | null

Genuine recorded note rate from the most-recent loan (sparse, ~7%). See loans[] for per-loan detail.

saleCountnumber | null
salePropensityobject | null
Show child attributes
categorystring | nullrequired

Low/Medium/High

scorenumber | nullrequired

0–100

salesobject
Show child attributes
countnumber | nullrequired
firstDatestring | nullrequired
lastDatestring | nullrequired
lastPricenumber | nullrequired
scoredAtstring | null
squareFeetnumber | null
statestring | null

Two-letter state abbreviation, uppercased (stored lowercase in OS)

storiesnumber | null
yearBuiltnumber | null
zipstring | null
communityLendingobject | null

Community Lending — the profile of the neighborhood (U.S. Census tract) this parcel sits in: program designations, income and affordability, the population profile, the local mortgage market, remoteness and proximity. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100. Two fields are deliberately NOT 0-100: tractIncomeVsMetroPct is a ratio where 100 means parity with the metro (it exceeds 100), and tractRuralGradient is an ordinal 1-10 code. null — not an all-null object — for the roughly 6% of parcels that resolve to no neighborhood. Every field here is also a filter key on POST /properties.

Show child attributes
affordableHousingTractboolean | nullrequired

A qualified neighborhood for affordable-housing programs. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

difficultDevelopmentAreaboolean | nullrequired

A HUD-designated difficult development area. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

distressedTractboolean | nullrequired

A distressed-or-underserved nonmetropolitan middle-income neighborhood. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

floodHazardTractboolean | nullrequired

In a FEMA special flood hazard area. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

lowModIncomeTractboolean | nullrequired

A low- or moderate-income neighborhood under the Community Reinvestment Act. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

majorityMinorityTractboolean | nullrequired

A majority-minority neighborhood. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

milesToCollegenumber | nullrequired

Distance to the nearest college, in miles. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

milesToSchoolnumber | nullrequired

Distance to the nearest school, in miles. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

milesToWorshipnumber | nullrequired

Distance to the nearest place of worship, in miles. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

opportunityZoneboolean | nullrequired

In a federally designated Opportunity Zone. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

ruralTractboolean | nullrequired

A rural neighborhood. Thinner coverage than the other designations, so null is common. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractApplicationsnumber | nullrequired

Mortgage applications reported over the year. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractAsianPctnumber | nullrequired

Asian (non-Hispanic) share of the population. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractBlackPctnumber | nullrequired

Black (non-Hispanic) share of the population. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractCountyCodestring | nullrequired

Public three-digit county-within-state code (not the five-digit fips). Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractDenialRatenumber | nullrequired

Share of mortgage applications that were denied. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractFamilyIncomenumber | nullrequired

Median family income, in whole dollars. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractFloodZonestring | nullrequired

FEMA flood-zone code (e.g. AE). Null means no special flood hazard area on file. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractHispanicPctnumber | nullrequired

Hispanic or Latino share of the population. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractHomeownershipRatenumber | nullrequired

Owner-occupied share of housing units. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractHouseholdIncomenumber | nullrequired

Median household income, in whole dollars. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractIdstring | nullrequired

Public six-digit neighborhood code. It repeats in every state and county, so it identifies a neighborhood only together with tractStateCode and tractCountyCode. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractIncomeLevelenum | nullrequired

Relative-income classification of the neighborhood: low, moderate, middle or upper. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

Options:lowmoderatemiddleuppernull
tractIncomeVsMetroPctnumber | nullrequired

Neighborhood income relative to its metro area, where 100 is parity. Legitimately exceeds 100 — this is a ratio, not a share. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractLoanVolumenumber | nullrequired

Mortgage dollar volume reported over the year. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractMedianAgenumber | nullrequired

Median age, in years. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractMedianHomeValuenumber | nullrequired

Median home value across the neighborhood, in whole dollars — a neighborhood statistic, not this parcel's value estimate (see avm). Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractMinorityPctnumber | nullrequired

Non-white share of the population. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractOriginationsnumber | nullrequired

Mortgage originations reported over the year. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractPopulationnumber | nullrequired

Total population. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractPovertyRatenumber | nullrequired

Share of the population below the poverty line. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractRuralGradientnumber | nullrequired

Remoteness on an ordinal 1-10 scale (1 = metropolitan core, 10 = most remote). A code, not a percent. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractStateCodestring | nullrequired

Public two-digit state code. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

tractWhiteNonHispanicPctnumber | nullrequired

White (non-Hispanic) share of the population. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

usdaEligibleTractboolean | nullrequired

Eligible for USDA rural housing programs. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.

enrichmentobject | null

Owner contact enrichment data (included if previously enriched by the authenticated user)

Show child attributes
enrichedAtstringrequired

ISO 8601 timestamp

personsobject[]required
sourcestringrequired

Data source identifier

foreclosureDetailobject | null
Show child attributes
beneficiaryLenderstring | nullrequired
countnumber | nullrequired
latestCodestring | nullrequired
latestDatestring | nullrequired
trusteeSaleNumberstring | nullrequired
unpaidBalancenumber | nullrequired
ownersobject[] | null

Every owner of record — owners[0] is the same person the flat ownerName/ownerFirstName/ownerLastName fields describe, and the rest are co-owners/co-borrowers. Additive: those three fields are unchanged. null (never []) when the parcel has no readable owner.

Show child attributes
firstNamestring | nullrequired
fullNamestring | nullrequired

Per-owner composed display name; null when the record came from the assessment slots, which have no composed form.

lastNamestring | nullrequired
middleNamestring | nullrequired
partiesobject

Mortgage parties attributed to the parcel, split by scope: alltime (everyone on record, a strict superset of the rest), active (parties on loans still outstanding), matched (the subset whose loan resolved to a known NMLS entity) and last (the most recent loan). Real estate agents are not part of this block — reach parcels from an agent through POST /v1/agents/{id}/properties.

Show child attributes
activeobjectrequired

NMLS ids of the mortgage parties attributed to the parcel under one scope. Each id resolves through the originator, lender and company detail endpoints.

alltimeobjectrequired

NMLS ids of the mortgage parties attributed to the parcel under one scope. Each id resolves through the originator, lender and company detail endpoints.

lastobjectrequired

The most recent loan's originator(s). Deliberately originator-only — see the parent description.

matchedobjectrequired

NMLS ids of the mortgage parties attributed to the parcel under one scope. Each id resolves through the originator, lender and company detail endpoints.

positionobject
Show child attributes
activeOverFiveboolean | nullrequired
loanCountActivenumber | nullrequired
loanCountAllnumber | nullrequired
loanCountPaidOffnumber | nullrequired
loanCountPreSalenumber | nullrequired

Mortgages excluded because the parcel sold after they were recorded. Same value as the summary's preSaleLoanCount. These four counts partition loanCountAll.

loanCountReleasednumber | nullrequired

Mortgages with a recorded release — documented evidence of a payoff, unlike loanCountPreSale.

sumOutstandingnumber | nullrequired
relationshipsobject
Show child attributes
agentsstring[]required
brokersstring[]required
companiesstring[]required
lendersstring[]required
originatorsstring[]required
404objectProperty not found
413objectResponse payload too large