Model MatchHelp

Properties

Enrich a property with owner contact info

postapi.modelmatch.com/v1/properties/{id}/enrich

Looks up owner contact information via skip-trace. Uses the canonical address first; falls back to an associated loan or sale record address if the canonical is missing. The response also carries property — the parcel's Community Lending neighborhood profile and its mortgage party rosters, the same blocks GET /v1/properties/{id} returns — so the two questions that follow a skip-trace do not need a second call. property is null when the id resolves to more than one parcel and the request was served from cache (a fresh lookup 409s instead, rather than bill for a guess).

Authorization

x-api-keystringrequired

API key or OAuth token. See Authentication.

Path parameters

idstringrequired

Property document ID. Use the id or mmPropertyId returned by a property search/detail, or the mmPropertyId on a loan/sale record (e.g. mm_37035375304734463). Do NOT pass a bare APN, a fips+apn string, or a loan_… id — those will not resolve.

Query parameters

refreshenum

When 'true', bypass both the per-member entitlement and the internal property cache, force a fresh skip-trace, and re-charge the user. Default: 'false'.

Options:truefalse

Responses

200objectEnrichment data (cached or fresh)
Show attributes
cachedbooleanrequired

Whether the result was served from cache

chargedbooleanrequired

True when this call resulted in a credit debit. False on cache hits AND on fresh_skip_trace_empty (no-match calls don't charge).

dataobjectrequired
Show child attributes
enrichedAtstringrequired

ISO 8601 timestamp

personsobject[]required
Show child attributes
deathobject | null
dncobject | null
emailsobject[] | null
litigatorboolean | null
mailingAddressobject | null
metaobject | null
nameobject | null
phoneNumbersobject[] | null
propertyAddressobject | null
sourcestringrequired

Data source identifier

propertyobject | null

The parcel behind the enrichment: its Community Lending neighborhood profile and the mortgage parties attributed to it. Identical to the communityLending and parties blocks on GET /v1/properties/{id} — returned here so a skip-trace does not need a second call to answer 'what kind of neighborhood is this' and 'who already has a relationship with this parcel'.

Show child attributes
communityLendingobject | nullrequired

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.

partiesobjectrequired

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.

reasonenumrequired

Pipeline path used to produce this enrichment. Pair with charged to drive billing UX; pair with data.persons to drive the empty-state UX.

Options:member_cache_hitinternal_cache_hitinternal_cache_hit_emptyfresh_skip_tracefresh_skip_trace_empty
resultobjectrequired

Per-batch counts BatchData echoed back (or all-zero on cache hits). matched > 0 implies a fresh hit; noMatch > 0 with matched: 0 implies a genuine no-match.

Show child attributes
errorintegerrequired
matchedintegerrequired
noMatchintegerrequired
requestedintegerrequired
400objectProperty has no usable address on the parcel or any associated record
401objectAuthentication required
402objectInsufficient credits
403objectCaller lacks permission to charge credits (`permission_denied`)
404objectProperty not found, or the caller is not a member of the org (`member_not_found`)
409objectThe id resolved to more than one parcel (a non-unique `mm_property_id` colliding across units). Pass one of `alternates` (an exact `id`) to enrich a specific unit. NOT charged.
429objectThrottled — `daily_limit_exceeded` (daily category cap, proven by the billing server's structured fields) or `rate_limited` (a short-term throttle that clears on retry; not the daily cap)
502objectEnrichment provider error