Companies
Where a company lends — blended market footprint
The company's market footprint for a period: a units-weighted summary, the ZIP-level markets, and the city / county / state rollups, computed from the company's recorded transactions. Optionally narrow to a set of ZIP codes and/or a custom date window. Shares are percentages on a 0–100 scale. The summary also carries a Community Lending mix — what kind of neighborhood the book lands in, as U.S. Census tract-level aggregates describing whole neighborhoods, never individual or applicant attributes. Unfiltered, it is the company's own whole-period mix; any ZIP, date or transaction filter recomputes it over the markets in scope, and summary.communityLending.basis says which you got.
Authorization
Path parameters
nmlsIdstringrequiredCompany NMLS ID
Body application/json
advancedFiltersone ofShow child attributesHide child attributes
Option 1objectShow child attributesHide child attributes
childrenone of[]requiredArray of filter expressions (AND)
Same shape as its parent.
typeenumrequiredandOption 2objectShow child attributesHide child attributes
childrenone of[]requiredArray of filter expressions (OR)
Same shape as its parent.
typeenumrequiredorOption 3objectShow child attributesHide child attributes
childone ofrequiredSame shape as its parent.
typeenumrequirednotOption 4objectShow child attributesHide child attributes
fieldstringrequiredopenumrequiredComparison operator. exists means the field has a REAL value: on fields whose source records an unknown as an in-domain value (e.g. beds, squareFeet, lotSquareFeet, where an unrecorded measurement is stored as 0), those docs count as NOT existing. neq keeps docs with no value — it removes only what is known to equal the value, matching the reading of an exclusion.
eqneqgtgteltltebetweeninmatchgeoDistanceexiststypeenumrequiredfiltervaluenullComparison value
dateRangeobjectCustom window, applied IN ADDITION to period (the two intersect). Use it for a window the named periods cannot express.
Show child attributesHide child attributes
fromstringInclusive lower bound, YYYY-MM-DD (a bare YYYY or YYYY-MM expands to the start of that period).
tostringInclusive upper bound, YYYY-MM-DD (a bare YYYY or YYYY-MM expands to the END of that period).
filtersone ofShow child attributesHide child attributes
Option 1objectShow child attributesHide child attributes
childrenone of[]requiredArray of filter expressions (AND)
Same shape as its parent.
typeenumrequiredandOption 2objectShow child attributesHide child attributes
childrenone of[]requiredArray of filter expressions (OR)
Same shape as its parent.
typeenumrequiredorOption 3objectShow child attributesHide child attributes
childone ofrequiredSame shape as its parent.
typeenumrequirednotOption 4objectShow child attributesHide child attributes
fieldstringrequiredopenumrequiredComparison operator. exists means the field has a REAL value: on fields whose source records an unknown as an in-domain value (e.g. beds, squareFeet, lotSquareFeet, where an unrecorded measurement is stored as 0), those docs count as NOT existing. neq keeps docs with no value — it removes only what is known to equal the value, matching the reading of an exclusion.
eqneqgtgteltltebetweeninmatchgeoDistanceexiststypeenumrequiredfiltervaluenullComparison value
flatFiltersobjectShow child attributesHide child attributes
borrowerStatusone of | nullModelMatch-derived loan position: whether the borrower on THIS loan is still the property's current owner. Codes read as [purpose_](C|P)W(N|C)LO — CW = current owner, PW = previous owner; NLO = a different originator than the prior loan, CLO = the same one (the retention signal).
CURRENT OWNER — Current (no newer loan), R_CWCLO/R_CWNLO (refinanced), E_CWCLO/E_CWNLO (took equity). For "past clients still in the home" pass ALL FIVE: "Current" on its own silently drops ~5M loans whose borrower is still there but has since refinanced or tapped equity.
PREVIOUS OWNER — PSALE (home sold), PWCLO/PWNLO (purchase loan), C_PWCLO/C_PWNLO (construction loan).
UNKNOWN — UNK_NOORIG (the property's most recent loan had no originator; ~64% of all populated values), UNK_PWCLO/UNK_PWNLO (most recent loan was not a purchase). REO_CWNLO/REO_CWCLO exist but are vanishingly rare (<300 loans total) and are not classified in the source glossary.
Only ~69% of loans carry any status, so an absent value means unknown — not "not current".
Show child attributesHide child attributes
Option 1enumOne of (case-insensitive): Current, PSALE, PWNLO, PWCLO, C_PWNLO, C_PWCLO, R_CWNLO, R_CWCLO, E_CWNLO, E_CWCLO, REO_CWNLO, REO_CWCLO, UNK_NOORIG, UNK_PWNLO, UNK_PWCLO
CurrentPSALEPWNLOPWCLOC_PWNLOC_PWCLOR_CWNLOR_CWCLOE_CWNLOE_CWCLOREO_CWNLOREO_CWCLOUNK_NOORIGUNK_PWNLOUNK_PWCLOOption 2enum[]Match any of these values
CurrentPSALEPWNLOPWCLOC_PWNLOC_PWCLOR_CWNLOR_CWCLOE_CWNLOE_CWCLOREO_CWNLOREO_CWCLOUNK_NOORIGUNK_PWNLOUNK_PWCLOOption 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredbrokerone of | nullBroker shop NMLS id (digits only). A broker is a company — resolve a broker name to its NMLS id via instantSearch (or listCompanies).
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredbuyerEntityTypeboolean | nullcityone of | nullShow child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredconformingboolean | nullcountyone of | nullCounty name (e.g. "Broward") or 5-digit FIPS code. Names resolve to FIPS server-side; include a state filter to disambiguate.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredcurrentBalanceone of | nullEstimated remaining principal balance (~19% populated). Approximate current equity as homeValue (AVM) minus this.
Show child attributesHide child attributes
Option 1numberOption 2number[]Match any value
Option 3objectNumeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.
Show child attributesHide child attributes
gtnumbergtenumberincludeNullsbooleanAlso keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.
ltnumberltenumberemployerone of | nullEmployer/company NMLS id (digits only). Resolve a company name to its NMLS id via instantSearch.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredequityone of | nullPoint-in-time equity recorded on the loan (sparse, ~10%). NOT a live current-equity figure. For HELOC/cash-out targeting on up-to-date equity, use properties search (listProperties) instead — its equity is far better populated and current.
Show child attributesHide child attributes
Option 1numberOption 2number[]Match any value
Option 3objectNumeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.
Show child attributesHide child attributes
gtnumbergtenumberincludeNullsbooleanAlso keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.
ltnumberltenumberexcludeBrokerone of | nullExclude loans brokered by this broker-shop NMLS id (digits only) — the inverse of broker.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredexcludeCityone of | nullExclude loans in this city — the inverse of city.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredexcludeLenderone of | nullExclude loans from this lender ID ("everyone but X") — the inverse of lender, same id contract (resolve via instantSearch/listLenders). Loans with no lender stay in the results.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredexcludeLoanCompanyone of | nullExclude loans funded by this company NMLS id (digits only) — the inverse of loanCompany.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredexcludeLoanTypeone of | nullExclude loans of this loan type — the inverse of loanType, same values (one type or a list; a list drops loans matching ANY of them). E.g. ["he", "heloc"] keeps everything but home-equity loans and HELOCs. Loans with no loan type recorded stay in the results.
Show child attributesHide child attributes
Option 1enumOne of (case-insensitive): conventional, fha, va, usda, he, heloc, building, balloon, commercial, reverse, sba, assumption, stand_alone_refi, stand_alone_second, aggregate, closed_end, negative_amortization, land_contract, modification, trade, other, unknown
conventionalfhavausdahehelocbuildingballooncommercialreversesbaassumptionstand_alone_refistand_alone_secondaggregateclosed_endnegative_amortizationland_contractmodificationtradeotherunknownOption 2enum[]Match any of these values
conventionalfhavausdahehelocbuildingballooncommercialreversesbaassumptionstand_alone_refistand_alone_secondaggregateclosed_endnegative_amortizationland_contractmodificationtradeotherunknownOption 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredexcludeOriginatorone of | nullExclude loans with this originator NMLS id (digits only) — the inverse of originator. Common for 'everyone but my own shop' lists.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredexcludeStateone of | nullExclude loans in this state (2-letter code, e.g. "CA") — the inverse of state. For "everywhere but this state" lists.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredexcludeTransactionTypeone of | nullExclude loans of this transaction type — the inverse of transactionType, same values (one type or a list; a list drops loans matching ANY of them). E.g. ["equity"] keeps purchase, refinance, construction and REO. Loans with no transaction type recorded stay in the results.
Show child attributesHide child attributes
Option 1enumOne of (case-insensitive): purchase, refinance, construction, equity, reo
purchaserefinanceconstructionequityreoOption 2enum[]Match any of these values
purchaserefinanceconstructionequityreoOption 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredexcludeZipCodeone of | nullExclude loans in this ZIP code — the inverse of zipCode.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredfipsone of | nullExact 5-digit county FIPS code (no name resolution) — the code-only escape hatch alongside county.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredgeoPointobject | nullRadius search — { lat, lon, radius } (e.g. radius "15mi" or "24km") — around any office on the agent's record; with locationSource office the CURRENT office, production their transactions.
Show child attributesHide child attributes
latnumberrequiredlonnumberrequiredradiusstringrequiredhomeValueone of | nullAVM (automated valuation) at the linked property (~26%, -linked). Pair with currentBalance to approximate current equity.
Show child attributesHide child attributes
Option 1numberOption 2number[]Match any value
Option 3objectNumeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.
Show child attributesHide child attributes
gtnumbergtenumberincludeNullsbooleanAlso keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.
ltnumberltenumberincludeUnknownOriginatorbooleanInclude loans that have no originator NMLS id. Omitted/false (default): such loans are excluded — the vast majority are pre-2016 public records with no linkable originator. true: include them. Note that the default scopes results to loans with a known originator (~2016+ recordings).
interestRateone of | nullShow child attributesHide child attributes
Option 1numberOption 2number[]Match any value
Option 3objectNumeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.
Show child attributesHide child attributes
gtnumbergtenumberincludeNullsbooleanAlso keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.
ltnumberltenumberlenderone of | nullLender ID — the normalized lender-dictionary key, NOT a fuzzy name match. Resolve a lender via instantSearch (or listLenders) and pass the id it returns (e.g. "mortgage_rocket" or "mortgage rocket"). Underscores and letter case are normalized, so either id surface works. A stored normalized lender name (what the slice: "lender" chart buckets emit) is also accepted, so a chart bucket key filters directly. A value that is neither returns 400 rather than silently matching nothing — to search by lender NAME, use lenderName.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredlenderNameone of | nullLender name as recorded on the loan document — fuzzy, all-terms match (e.g. "Fifth Third"). The name counterpart to the exact-id lender filter; use lender when you have a resolved id, and this when you only have a name.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredloanCompanyone of | nullFunding/loan company NMLS id (digits only). Resolve a company name to its NMLS id via instantSearch.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredloanTypeone of | nullShow child attributesHide child attributes
Option 1enumOne of (case-insensitive): conventional, fha, va, usda, he, heloc, building, balloon, commercial, reverse, sba, assumption, stand_alone_refi, stand_alone_second, aggregate, closed_end, negative_amortization, land_contract, modification, trade, other, unknown
conventionalfhavausdahehelocbuildingballooncommercialreversesbaassumptionstand_alone_refistand_alone_secondaggregateclosed_endnegative_amortizationland_contractmodificationtradeotherunknownOption 2enum[]Match any of these values
conventionalfhavausdahehelocbuildingballooncommercialreversesbaassumptionstand_alone_refistand_alone_secondaggregateclosed_endnegative_amortizationland_contractmodificationtradeotherunknownOption 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredltvAtOriginationone of | nullLoan-to-value at ORIGINATION (sparse), as a PERCENT on a 0-100 scale (80 = 80% LTV; values above 100 are real underwater loans). This is not a current LTV — there is no stored current-LTV field on loans.
Show child attributesHide child attributes
Option 1numberOption 2number[]Match any value
Option 3objectNumeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.
Show child attributesHide child attributes
gtnumbergtenumberincludeNullsbooleanAlso keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.
ltnumberltenumbermodeenumandormortgageAmountone of | nullShow child attributesHide child attributes
Option 1numberOption 2number[]Match any value
Option 3objectNumeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.
Show child attributesHide child attributes
gtnumbergtenumberincludeNullsbooleanAlso keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.
ltnumberltenumbermortgageDateone of | nullShow child attributesHide child attributes
Option 1stringExact date, or a whole period: YYYY-MM-DD (that day), YYYY-MM (the whole month — "2025-06" = 2025-06-01 through 2025-06-30) or YYYY (the whole year). YYYYMMDD, MM/DD/YYYY, an ISO-8601 datetime and epoch milliseconds are also accepted. An unparseable value is a 400.
Option 2objectDate range. Excludes null/missing-field docs by default; add includeNulls: true to keep them. Bounds accept YYYY, YYYY-MM, YYYY-MM-DD, YYYYMMDD, MM/DD/YYYY, a full ISO datetime or epoch milliseconds; an unparseable bound is a 400. A partial bound denotes the whole period and expands to the edge that preserves the operator: gte/lt take the period START, gt/lte take the period END — so {gte: "2024"} means on/after 2024-01-01 and {lte: "2024"} means through 2024-12-31.
Show child attributesHide child attributes
gtstringgtestringincludeNullsbooleanAlso keep docs where the field is null/missing (a range filter drops them by default). Requires a bound.
ltstringltestringoriginatorone of | nullLoan originator NMLS id (digits only). To search by name use originatorName, or resolve a name to its id via instantSearch.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredoriginatorNameone of | nullDEPRECATED — fuzzy name matching is unreliable (same originator can return wildly different counts by name string). Resolve the loan officer via instantSearch and filter by originator (exact NMLS id) instead. Still functional for now.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredpropertyIdone of | nullParcel id — returns every loan recorded against one property. Pass the same string this endpoint returns as mmPropertyId on a loan row, or the mmPropertyId of a property record.
This is the parcel's FULL recorded loan history, which is deliberately wider than the loans embedded on a property record: that embed is a snapshot of what is still owed (up to five currently-active loans), so paid-off mortgages are absent from it and present here.
Multi-unit caveat: loans carry a unit-blind parcel id, so for one unit of a multi-unit building this selects every unit in the building, not that unit alone.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredsaleDateone of | nullShow child attributesHide child attributes
Option 1stringExact date, or a whole period: YYYY-MM-DD (that day), YYYY-MM (the whole month — "2025-06" = 2025-06-01 through 2025-06-30) or YYYY (the whole year). YYYYMMDD, MM/DD/YYYY, an ISO-8601 datetime and epoch milliseconds are also accepted. An unparseable value is a 400.
Option 2objectDate range. Excludes null/missing-field docs by default; add includeNulls: true to keep them. Bounds accept YYYY, YYYY-MM, YYYY-MM-DD, YYYYMMDD, MM/DD/YYYY, a full ISO datetime or epoch milliseconds; an unparseable bound is a 400. A partial bound denotes the whole period and expands to the edge that preserves the operator: gte/lt take the period START, gt/lte take the period END — so {gte: "2024"} means on/after 2024-01-01 and {lte: "2024"} means through 2024-12-31.
Show child attributesHide child attributes
gtstringgtestringincludeNullsbooleanAlso keep docs where the field is null/missing (a range filter drops them by default). Requires a bound.
ltstringltestringsalePriceone of | nullShow child attributesHide child attributes
Option 1numberOption 2number[]Match any value
Option 3objectNumeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.
Show child attributesHide child attributes
gtnumbergtenumberincludeNullsbooleanAlso keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.
ltnumberltenumberstateone of | nullShow child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredtransactionTypeone of | nullShow child attributesHide child attributes
Option 1enumOne of (case-insensitive): purchase, refinance, construction, equity, reo
purchaserefinanceconstructionequityreoOption 2enum[]Match any of these values
purchaserefinanceconstructionequityreoOption 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredzipone of | nullAlias of zipCode — same ZIP filter, accepted for cross-entity key parity.
Show child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredzipCodeone of | nullShow child attributesHide child attributes
Option 1stringOption 2string[]Match any value
Option 3objectFuzzy text match
Show child attributesHide child attributes
matchstringrequiredlimitintegerBuckets returned per grain (default 25). The summary is computed BEFORE this slice, so it describes the footprint and not the page.
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. Values are normalized to 5 digits, so a ZIP that lost its leading zero in a spreadsheet (1001) still resolves. A value that is not 1–5 digits returns 400 rather than being silently dropped.
Responses
200objectBlended market footprintShow attributesHide attributes
nmlsIdstringrequiredperiodstringrequiredrollupsobjectrequiredShow child attributesHide child attributes
citiesobject[]requiredShow child attributesHide child attributes
avgLoanAmountnumber | nullrequiredkeystring | nullrequiredJoin-stable bucket identity — ZIP "92683", city "orlando|fl", county 5-digit FIPS "06037", state "CA".
namestring | nullrequiredHuman label, in the same form the matching /breakdowns route publishes: a county reads Middlesex County (MA), a state MA, a city Belmont, MA (this grain is a city within one state). key is the identity; name is the only field to display.
shareOfBooknumber | nullrequiredShare of the entity's whole period volume as pre-stored on the entity record, 0–100. Always null for a company: the pre-aggregated market rollups are not written for companies, so this figure is computed live and has no stored share to report. Use shareOfScope, or divide by totals.volume.
shareOfScopenumber | nullrequiredShare of the volume of every market RANKED at this grain, 0–100 — the denominator is the whole footprint the request selected, NOT the page. It therefore sums to 100 only when limit covers every bucket; on a shorter page the shortfall is the tail you did not ask for. (Note the scale: 0–100, unlike the Community Lending fractions, which are 0–1.)
unitsnumber | nullrequiredvolumenumber | nullrequiredDollar volume in this market. A ranked top-N figure is a distributed approximation and can understate slightly (measured: 1.2% on one headline market); narrowing the request to this market with zipCodes returns the exact figure.
countiesobject[]requiredShow child attributesHide child attributes
avgLoanAmountnumber | nullrequiredkeystring | nullrequiredJoin-stable bucket identity — ZIP "92683", city "orlando|fl", county 5-digit FIPS "06037", state "CA".
namestring | nullrequiredHuman label, in the same form the matching /breakdowns route publishes: a county reads Middlesex County (MA), a state MA, a city Belmont, MA (this grain is a city within one state). key is the identity; name is the only field to display.
shareOfBooknumber | nullrequiredShare of the entity's whole period volume as pre-stored on the entity record, 0–100. Always null for a company: the pre-aggregated market rollups are not written for companies, so this figure is computed live and has no stored share to report. Use shareOfScope, or divide by totals.volume.
shareOfScopenumber | nullrequiredShare of the volume of every market RANKED at this grain, 0–100 — the denominator is the whole footprint the request selected, NOT the page. It therefore sums to 100 only when limit covers every bucket; on a shorter page the shortfall is the tail you did not ask for. (Note the scale: 0–100, unlike the Community Lending fractions, which are 0–1.)
unitsnumber | nullrequiredvolumenumber | nullrequiredDollar volume in this market. A ranked top-N figure is a distributed approximation and can understate slightly (measured: 1.2% on one headline market); narrowing the request to this market with zipCodes returns the exact figure.
statesobject[]requiredShow child attributesHide child attributes
avgLoanAmountnumber | nullrequiredkeystring | nullrequiredJoin-stable bucket identity — ZIP "92683", city "orlando|fl", county 5-digit FIPS "06037", state "CA".
namestring | nullrequiredHuman label, in the same form the matching /breakdowns route publishes: a county reads Middlesex County (MA), a state MA, a city Belmont, MA (this grain is a city within one state). key is the identity; name is the only field to display.
shareOfBooknumber | nullrequiredShare of the entity's whole period volume as pre-stored on the entity record, 0–100. Always null for a company: the pre-aggregated market rollups are not written for companies, so this figure is computed live and has no stored share to report. Use shareOfScope, or divide by totals.volume.
shareOfScopenumber | nullrequiredShare of the volume of every market RANKED at this grain, 0–100 — the denominator is the whole footprint the request selected, NOT the page. It therefore sums to 100 only when limit covers every bucket; on a shorter page the shortfall is the tail you did not ask for. (Note the scale: 0–100, unlike the Community Lending fractions, which are 0–1.)
unitsnumber | nullrequiredvolumenumber | nullrequiredDollar volume in this market. A ranked top-N figure is a distributed approximation and can understate slightly (measured: 1.2% on one headline market); narrowing the request to this market with zipCodes returns the exact figure.
sourceobjectrequiredShow child attributesHide child attributes
modeenumrequiredCompanies are always computed live from the recorded transactions — there is no pre-aggregated market rollup on a company record to read.
livereasonsstring[]requiredWhy the live path was selected, in evaluation order (e.g. coverage-empty, zip-scope, date-scope).
summaryobjectrequiredShow child attributesHide child attributes
avgLoanAmountnumber | nullrequiredUnits-weighted mean loan size — equal to volume ÷ units, NOT the unweighted mean of the per-market averages (which differs by several percent and flips sign with the bucket-size mix).
bucketCountnumberrequiredcommunityLendingobject | 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.
shareOfBooknumber | nullrequiredAlways null for a company — see the same field on a bucket.
shareOfMatchedVolumenumber | nullrequiredWhat percent of totals.volume these ZIP buckets account for, 0–100. Below 100 whenever transactions could not be placed to a ZIP or fall outside the ranked depth — published so a partial sum is never mistaken for a total.
unitsnumber | nullrequiredunresolvedobjectrequiredProduction the source could not place in a market, held OUT of the blend and reported here rather than ranked alongside real markets.
Show child attributesHide child attributes
bucketCountnumberrequiredunitsnumber | nullrequiredvolumenumber | nullrequiredvolumenumber | nullrequiredtotalsobjectrequiredThe whole matched book — every transaction the filters selected, including those that could not be placed in a market. The denominator for summary.shareOfMatchedVolume.
Show child attributesHide child attributes
avgLoanAmountnumber | nullrequiredexcludednumber | nullTransactions held out of volume because their amount is an out-of-range fill rather than a real figure — the second kind of omission this response reports, alongside summary.unresolved (production that could not be placed in a market). Compare against units to see the share volume was computed over: a company whose amounts are mostly unreadable and one that is genuinely small are indistinguishable without it. Absent when the money column is unguarded.
unitsnumber | nullrequiredvolumenumber | nullrequiredzipsobject[]requiredShow child attributesHide child attributes
avgLoanAmountnumber | nullrequiredkeystring | nullrequiredJoin-stable bucket identity — ZIP "92683", city "orlando|fl", county 5-digit FIPS "06037", state "CA".
namestring | nullrequiredHuman label, in the same form the matching /breakdowns route publishes: a county reads Middlesex County (MA), a state MA, a city Belmont, MA (this grain is a city within one state). key is the identity; name is the only field to display.
shareOfBooknumber | nullrequiredShare of the entity's whole period volume as pre-stored on the entity record, 0–100. Always null for a company: the pre-aggregated market rollups are not written for companies, so this figure is computed live and has no stored share to report. Use shareOfScope, or divide by totals.volume.
shareOfScopenumber | nullrequiredShare of the volume of every market RANKED at this grain, 0–100 — the denominator is the whole footprint the request selected, NOT the page. It therefore sums to 100 only when limit covers every bucket; on a shorter page the shortfall is the tail you did not ask for. (Note the scale: 0–100, unlike the Community Lending fractions, which are 0–1.)
unitsnumber | nullrequiredvolumenumber | nullrequiredDollar volume in this market. A ranked top-N figure is a distributed approximation and can understate slightly (measured: 1.2% on one headline market); narrowing the request to this market with zipCodes returns the exact figure.
400objectValidation error. Includes unresolvable location filters: a `city`/`county`/`state`/`zip` value that does not match a recognized location returns 400 rather than an empty result set. Resolve the name with `instantSearch` (use an id from its `results.locations[]`) or `suggestLocations` (use the `id` of a `source: "dictionary"` result), then pass that id back as the filter value.401objectUnauthorized403objectForbidden (authenticated, but missing required context — e.g. no active organization)404objectNot found413objectResponse payload too large — detail endpoint capped to fit Lambda response limits503objectSearch timed out or the cluster is overloaded — retry after `Retry-After` seconds.