Model MatchHelp

Originators

The markets this LO lends in

postapi.modelmatch.com/v1/originators/{nmlsId}/markets

One blended view of a loan officer's lending footprint: the ZIP codes they originated in, city / county / state rollups of the same scope, and the period totals those markets are a share of. AVERAGES ARE VOLUME-WEIGHTED: the summary loan size is Σ volume ÷ Σ units, not an unweighted mean of the per-market averages (on a real footprint the two differ by thousands of dollars). Sending zipCodes narrows every grain to those ZIPs; sending a dateRange re-cuts the window. Either switches the response from the LO's pre-aggregated footprint to a live aggregation of their loans — source and sourceReasons say which was used, and bucket key forms differ between them (use name for display). All shares on this response are 0–100 percentages. A summary can cover less than the whole book: production that could not be attributed to a place is held out and reported in summary.unresolved rather than being folded in or silently dropped. The summary also carries a Community Lending mix — what kind of neighborhood this book lands in. These are U.S. Census tract-level aggregates describing whole neighborhoods, never individual, household or applicant attributes. Unscoped it is the LO's own whole-period mix; a ZIP or date scope recomputes it over the markets in scope, and summary.communityLending.basis says which you got.

Authorization

x-api-keystringrequired

API key or OAuth token. See Authentication.

Path parameters

nmlsIdstringrequired

Originator NMLS ID

Body application/json

dateRangeobject

Custom window. A period is a fixed pre-aggregated window and cannot be re-cut, so any bound here switches the response to live transaction data.

Show child attributes
fromstring
tostring
limitinteger

Markets returned per grain (default 100). The summary is computed over the whole footprint FIRST and is not affected by this.

periodenum

Pre-aggregated period block. Rolling windows (last30Days, last60Days, last90Days, previousMonth, currentMonth) are NOT accepted here and return 400; they are supported on the loans, sales and market endpoints (list, count, breakdowns, analytics summary / time-series / chart) (see DatedPeriod).

Options:2017201820192020202120222023202420252026last3Monthslast6Monthslast12Monthslast14Monthslast16Monthslast18Monthslast24MonthsyearToDateallTime
zipCodesstring[]

Narrow the footprint to these ZIP codes. 5-digit; ZIP+4 and zero-stripped forms are accepted and normalized. A value that is not 1–5 digits returns 400 naming it rather than being ignored. Any value here switches the response to live transaction data.

Responses

200objectThe LO's blended market footprint
Show attributes
nmlsIdstringrequired
notesstring[]required

Plain-language caveats that apply to this response.

periodstringrequired
rollupsobjectrequired

Coarser views of the same scope. Each grain is its own pre-aggregation, not a re-cut of the ZIPs, so grains need not sum to each other.

Show child attributes
citiesobject[]required
Show child attributes
avgLoanAmountnumber | nullrequired

Mean loan size in this market.

keystring | nullrequired

The market's key as the source stores it. Form varies with source (a rollup city is city|state, a live city is the city name) — use name for display and grouping.

namestring | nullrequired

Display label for the market, in the same form the matching /breakdowns route publishes: a county reads Middlesex County (MA), a state MA, a city Belmont (with a , MA qualifier when the market is a city within one state). Identical for a given market whichever source served the request, so labels can be compared across surfaces; key is the source-native identity and is not.

shareOfBooknumber | nullrequired

Share of the LO's whole period volume, 0–100. Null on live transaction data, which carries no stored share.

shareOfScopenumber | nullrequired

Share of the volume of the markets RETURNED, 0–100. Sums to 100 across the grain — this is the one a chart should render.

unitsnumber | nullrequired

Loans in this market.

volumenumber | nullrequired

Dollar volume originated in this market.

countiesobject[]required
Show child attributes
avgLoanAmountnumber | nullrequired

Mean loan size in this market.

keystring | nullrequired

The market's key as the source stores it. Form varies with source (a rollup city is city|state, a live city is the city name) — use name for display and grouping.

namestring | nullrequired

Display label for the market, in the same form the matching /breakdowns route publishes: a county reads Middlesex County (MA), a state MA, a city Belmont (with a , MA qualifier when the market is a city within one state). Identical for a given market whichever source served the request, so labels can be compared across surfaces; key is the source-native identity and is not.

shareOfBooknumber | nullrequired

Share of the LO's whole period volume, 0–100. Null on live transaction data, which carries no stored share.

shareOfScopenumber | nullrequired

Share of the volume of the markets RETURNED, 0–100. Sums to 100 across the grain — this is the one a chart should render.

unitsnumber | nullrequired

Loans in this market.

volumenumber | nullrequired

Dollar volume originated in this market.

statesobject[]required
Show child attributes
avgLoanAmountnumber | nullrequired

Mean loan size in this market.

keystring | nullrequired

The market's key as the source stores it. Form varies with source (a rollup city is city|state, a live city is the city name) — use name for display and grouping.

namestring | nullrequired

Display label for the market, in the same form the matching /breakdowns route publishes: a county reads Middlesex County (MA), a state MA, a city Belmont (with a , MA qualifier when the market is a city within one state). Identical for a given market whichever source served the request, so labels can be compared across surfaces; key is the source-native identity and is not.

shareOfBooknumber | nullrequired

Share of the LO's whole period volume, 0–100. Null on live transaction data, which carries no stored share.

shareOfScopenumber | nullrequired

Share of the volume of the markets RETURNED, 0–100. Sums to 100 across the grain — this is the one a chart should render.

unitsnumber | nullrequired

Loans in this market.

volumenumber | nullrequired

Dollar volume originated in this market.

scopeobjectrequired

The scope as applied, after normalization — echo it back to see what the request actually asked.

Show child attributes
dateRangeobject | nullrequired
Show child attributes
fromstring | nullrequired
tostring | nullrequired
zipCodesstring[] | nullrequired
sourceenumrequired

Where the markets were read from. documentRollup is the LO's pre-aggregated footprint; liveTransactions aggregates the LO's loans directly, which is what any scope requires.

Options:documentRollupliveTransactions
sourceReasonsenum[]required

Why that source was chosen.

Options:doc-rollupcoverage-emptyzip-scopedate-scopelive-only-metric
summaryobjectrequired
Show child attributes
avgLoanAmountnumber | nullrequired

Volume-weighted mean loan size — Σ volume ÷ Σ units, never an unweighted mean of the per-market averages.

communityLendingobject | nullrequired

The Community Lending mix of this footprint: the neighborhood characteristics of where the production landed, as percentages on a 0-100 scale. Null when nothing in scope resolved to a neighborhood — an absent block, never a row of zeroes, because 'no data' and '0%' are different answers. Read basis before comparing two responses. 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.

Show child attributes
affordableHousingTractPctnumber | nullrequired

Share of production, 0-100, in neighborhoods carrying an affordable-housing designation. 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.

basisenumrequired

Which measurement produced this block, and they are NOT the same number. entityRollup is the neighborhood mix of the entity's own production over the whole period — the default. marketsInScope is the neighborhood profile of the markets the request selected, weighted by the entity's production in each, and is what any ZIP, date or filter scope returns, because a whole-period rollup cannot be re-cut to a narrower question.

Options:entityRollupmarketsInScope
coveredProductionPctnumber | nullrequired

marketsInScope only — what share of the weighted production, 0-100, sits in a market that resolved to neighborhood data. Below 100 means the mix describes part of the footprint, not all of it.

difficultDevelopmentAreaPctnumber | nullrequired

Share of production, 0-100, in designated difficult development areas. 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.

distressedTractPctnumber | nullrequired

Share of production, 0-100, in distressed or underserved nonmetropolitan middle-income neighborhoods. 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.

floodHazardTractPctnumber | nullrequired

Share of production, 0-100, in neighborhoods inside a 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.

incomeLevelMixobject | nullrequired

marketsInScope only — the full relative-income distribution of the neighborhoods, 0-100, summing to about 100. Null on entityRollup, which stores the predominant band but no distribution; publishing one derived from a single label would be a histogram nobody measured. 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.

loansWithCommunityDatanumber | nullrequired

entityRollup only — how many of the entity's transactions in the period resolved to a neighborhood. This is the denominator every share below is a share OF, so read it first: a 100% share over three transactions is not a footprint.

lowModIncomeTractPctnumber | nullrequired

Share of production, 0-100, in low- or moderate-income neighborhoods. 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.

majorityMinorityTractPctnumber | nullrequired

Share of production, 0-100, in majority-minority neighborhoods. 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.

marketsInScopenumber | nullrequired

marketsInScope only — ZIP markets the mix considered, including any that carried no neighborhood data.

marketsWithCommunityDatanumber | nullrequired

marketsInScope only — ZIP markets that resolved to neighborhood data.

opportunityZonePctnumber | nullrequired

Share of production, 0-100, in designated Opportunity Zones. 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.

predominantIncomeLevelenum | nullrequired

The most common relative-income classification of the neighborhoods, on the standard four-band scale. 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
ruralTractPctnumber | nullrequired

Share of production, 0-100, in neighborhoods classified rural. 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.

usdaEligibleTractPctnumber | nullrequired

Share of production, 0-100, in neighborhoods 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.

marketsnumberrequired

Placed markets the summary covers.

shareOfBooknumber | nullrequired

How much of the LO's whole period book the ZIP markets are, 0–100. Read it as COVERAGE, and expect it below 100 even with no filter: part of the gap is production that could not be placed at all (reported in unresolved) and part is production carrying no ZIP. The coarser grains in rollups are separate pre-aggregations with their own — usually higher — coverage, so they can legitimately add up to more than this. Null on live transaction data.

truncatedMarketsbooleanrequired

True when the source returned only the largest markets, so the summary covers those and not the full tail.

unitsnumber | nullrequired

Σ loans of those markets.

unresolvedobjectrequired

Production the source could not attribute to a place, held OUT of the summary and the market lists and reported on its own.

Show child attributes
marketsnumberrequired

Buckets the source could not attribute to a place.

shareOfBooknumber | nullrequired
unitsnumber | nullrequired
volumenumber | nullrequired
volumenumber | nullrequired

Σ volume of the markets in scope — NOT the LO's period total, which is totals.volume.

totalsobjectrequired
Show child attributes
avgLoanAmountnumber | nullrequired

The LO's mean loan size for the period.

footprintCoveragenumber | nullrequired

What share of volume the returned ZIP markets account for, 0–100. Null on live transaction data, where the window and the period block are not the same denominator.

unitsnumber | nullrequired

The LO's whole loan count for the period.

volumenumber | nullrequired

The LO's whole volume for the period.

zipsobject[]required

The ZIP-level footprint, largest volume first.

Show child attributes
avgLoanAmountnumber | nullrequired

Mean loan size in this market.

keystring | nullrequired

The market's key as the source stores it. Form varies with source (a rollup city is city|state, a live city is the city name) — use name for display and grouping.

namestring | nullrequired

Display label for the market, in the same form the matching /breakdowns route publishes: a county reads Middlesex County (MA), a state MA, a city Belmont (with a , MA qualifier when the market is a city within one state). Identical for a given market whichever source served the request, so labels can be compared across surfaces; key is the source-native identity and is not.

shareOfBooknumber | nullrequired

Share of the LO's whole period volume, 0–100. Null on live transaction data, which carries no stored share.

shareOfScopenumber | nullrequired

Share of the volume of the markets RETURNED, 0–100. Sums to 100 across the grain — this is the one a chart should render.

unitsnumber | nullrequired

Loans in this market.

volumenumber | nullrequired

Dollar volume originated in this market.

400objectValidation error
401objectUnauthorized
403objectForbidden (authenticated, but missing required context — e.g. no active organization)
404objectOriginator not found
413objectResponse payload too large — detail endpoint capped to fit Lambda response limits
503objectSearch timed out or the cluster is overloaded — retry after `Retry-After` seconds.