Originators
The markets this LO lends in
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
Path parameters
nmlsIdstringrequiredOriginator NMLS ID
Body application/json
dateRangeobjectCustom 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 attributesHide child attributes
fromstringtostringlimitintegerMarkets returned per grain (default 100). The summary is computed over the whole footprint FIRST and is not affected by this.
periodenumPre-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).
2017201820192020202120222023202420252026last3Monthslast6Monthslast12Monthslast14Monthslast16Monthslast18Monthslast24MonthsyearToDateallTimezipCodesstring[]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 footprintShow attributesHide attributes
nmlsIdstringrequirednotesstring[]requiredPlain-language caveats that apply to this response.
periodstringrequiredrollupsobjectrequiredCoarser 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 attributesHide child attributes
citiesobject[]requiredShow child attributesHide child attributes
avgLoanAmountnumber | nullrequiredMean loan size in this market.
keystring | nullrequiredThe 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 | nullrequiredDisplay 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 | nullrequiredShare of the LO's whole period volume, 0–100. Null on live transaction data, which carries no stored share.
shareOfScopenumber | nullrequiredShare of the volume of the markets RETURNED, 0–100. Sums to 100 across the grain — this is the one a chart should render.
unitsnumber | nullrequiredLoans in this market.
volumenumber | nullrequiredDollar volume originated in this market.
countiesobject[]requiredShow child attributesHide child attributes
avgLoanAmountnumber | nullrequiredMean loan size in this market.
keystring | nullrequiredThe 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 | nullrequiredDisplay 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 | nullrequiredShare of the LO's whole period volume, 0–100. Null on live transaction data, which carries no stored share.
shareOfScopenumber | nullrequiredShare of the volume of the markets RETURNED, 0–100. Sums to 100 across the grain — this is the one a chart should render.
unitsnumber | nullrequiredLoans in this market.
volumenumber | nullrequiredDollar volume originated in this market.
statesobject[]requiredShow child attributesHide child attributes
avgLoanAmountnumber | nullrequiredMean loan size in this market.
keystring | nullrequiredThe 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 | nullrequiredDisplay 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 | nullrequiredShare of the LO's whole period volume, 0–100. Null on live transaction data, which carries no stored share.
shareOfScopenumber | nullrequiredShare of the volume of the markets RETURNED, 0–100. Sums to 100 across the grain — this is the one a chart should render.
unitsnumber | nullrequiredLoans in this market.
volumenumber | nullrequiredDollar volume originated in this market.
scopeobjectrequiredThe scope as applied, after normalization — echo it back to see what the request actually asked.
Show child attributesHide child attributes
dateRangeobject | nullrequiredShow child attributesHide child attributes
fromstring | nullrequiredtostring | nullrequiredzipCodesstring[] | nullrequiredsourceenumrequiredWhere 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.
documentRollupliveTransactionssourceReasonsenum[]requiredWhy that source was chosen.
doc-rollupcoverage-emptyzip-scopedate-scopelive-only-metricsummaryobjectrequiredShow child attributesHide child attributes
avgLoanAmountnumber | nullrequiredVolume-weighted mean loan size — Σ volume ÷ Σ units, never an unweighted mean of the per-market averages.
communityLendingobject | nullrequiredThe 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 attributesHide child attributes
affordableHousingTractPctnumber | nullrequiredShare 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.
basisenumrequiredWhich 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.
entityRollupmarketsInScopecoveredProductionPctnumber | nullrequiredmarketsInScope 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 | nullrequiredShare 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 | nullrequiredShare 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 | nullrequiredShare 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 | nullrequiredmarketsInScope 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 | nullrequiredentityRollup 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 | nullrequiredShare 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 | nullrequiredShare 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 | nullrequiredmarketsInScope only — ZIP markets the mix considered, including any that carried no neighborhood data.
marketsWithCommunityDatanumber | nullrequiredmarketsInScope only — ZIP markets that resolved to neighborhood data.
opportunityZonePctnumber | nullrequiredShare 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 | nullrequiredThe 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.
lowmoderatemiddleuppernullruralTractPctnumber | nullrequiredShare 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 | nullrequiredShare 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.
marketsnumberrequiredPlaced markets the summary covers.
shareOfBooknumber | nullrequiredHow 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.
truncatedMarketsbooleanrequiredTrue when the source returned only the largest markets, so the summary covers those and not the full tail.
unitsnumber | nullrequiredΣ loans of those markets.
unresolvedobjectrequiredProduction the source could not attribute to a place, held OUT of the summary and the market lists and reported on its own.
Show child attributesHide child attributes
marketsnumberrequiredBuckets the source could not attribute to a place.
shareOfBooknumber | nullrequiredunitsnumber | nullrequiredvolumenumber | nullrequiredvolumenumber | nullrequiredΣ volume of the markets in scope — NOT the LO's period total, which is totals.volume.
totalsobjectrequiredShow child attributesHide child attributes
avgLoanAmountnumber | nullrequiredThe LO's mean loan size for the period.
footprintCoveragenumber | nullrequiredWhat 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 | nullrequiredThe LO's whole loan count for the period.
volumenumber | nullrequiredThe LO's whole volume for the period.
zipsobject[]requiredThe ZIP-level footprint, largest volume first.
Show child attributesHide child attributes
avgLoanAmountnumber | nullrequiredMean loan size in this market.
keystring | nullrequiredThe 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 | nullrequiredDisplay 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 | nullrequiredShare of the LO's whole period volume, 0–100. Null on live transaction data, which carries no stored share.
shareOfScopenumber | nullrequiredShare of the volume of the markets RETURNED, 0–100. Sums to 100 across the grain — this is the one a chart should render.
unitsnumber | nullrequiredLoans in this market.
volumenumber | nullrequiredDollar volume originated in this market.
400objectValidation error401objectUnauthorized403objectForbidden (authenticated, but missing required context — e.g. no active organization)404objectOriginator not found413objectResponse payload too large — detail endpoint capped to fit Lambda response limits503objectSearch timed out or the cluster is overloaded — retry after `Retry-After` seconds.