Model MatchHelp

Properties

Count properties matching filters

postapi.modelmatch.com/v1/properties/count

Return the exact number of properties matching the given filters. Accepts the same request body as listProperties (pagination and sort are ignored). Use this when you only need a total; to get the matching properties themselves, send the same request body to listProperties.

Authorization

x-api-keystringrequired

API key or OAuth token. See Authentication.

Body application/json

advancedFiltersone of
Show child attributes
Option 1object
Show child attributes
childrenone of[]required

Array of filter expressions (AND)

Same shape as its parent.

typeenumrequired
Options:and
Option 2object
Show child attributes
childrenone of[]required

Array of filter expressions (OR)

Same shape as its parent.

typeenumrequired
Options:or
Option 3object
Show child attributes
childone ofrequired

Same shape as its parent.

typeenumrequired
Options:not
Option 4object
Show child attributes
fieldstringrequired
openumrequired

Comparison 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.

Options:eqneqgtgteltltebetweeninmatchgeoDistanceexists
typeenumrequired
Options:filter
valuenull

Comparison value

filtersone of
Show child attributes
Option 1object
Show child attributes
childrenone of[]required

Array of filter expressions (AND)

Same shape as its parent.

typeenumrequired
Options:and
Option 2object
Show child attributes
childrenone of[]required

Array of filter expressions (OR)

Same shape as its parent.

typeenumrequired
Options:or
Option 3object
Show child attributes
childone ofrequired

Same shape as its parent.

typeenumrequired
Options:not
Option 4object
Show child attributes
fieldstringrequired
openumrequired

Comparison 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.

Options:eqneqgtgteltltebetweeninmatchgeoDistanceexists
typeenumrequired
Options:filter
valuenull

Comparison value

flatFiltersobject
Show child attributes
absenteeOwnerboolean

Owner's mailing address (street + 5-digit zip, case/punctuation-insensitive) differs from the property's site address — an investor / non-owner-occupied signal. true = absentee, false = owner mails to the property; parcels with no mailing or site address match neither. Evaluated per candidate document (no stored flag yet), so always pair it with a geography filter (state, county, zipCode, fips, a radius) — an unscoped absenteeOwner over all parcels may time out.

activeLoanCountone of | null

Mortgages believed to still be outstanding (e.g. {lte: 0} for parcels with none). {lte: 0} alone is NOT a free-and-clear filter: it also matches recently-sold parcels whose new mortgage has not been recorded yet. Pair it with preSaleLoanCount: {lte: 0} for parcels we can actually verify.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
addressone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
affordableHousingTractboolean

Parcel sits in a qualified census tract for affordable-housing programs (17,603,810 parcels). 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.

agentIdone of

Agent id(s) (GET /v1/agents/{id}): parcels with a recorded sale by the agent.

Show child attributes
Option 1string
Option 2string[]
agentUidone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
apnone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
avmConfidenceone of | null

Confidence in the value estimate, as a 50–100 score (e.g. {gte: 90} for high-confidence estimates only). NOT a fraction — {gte: 0.9} matches every scored parcel, not the top decile.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
avmValueone of | null

Automated value estimate for the parcel, in whole dollars (e.g. {gte: 500000}). ~77% coverage. Matches the avm.mid value on the response.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
bedsone of | null

Bedroom count (e.g. {lte: 2} for starter homes). ~46% coverage — on the rest the bedroom count was never recorded, which is NOT the same as a parcel with no bedrooms and NOT the same as a parcel with no assessor record: 15.6M of them do carry a recorded bath count and floor area. Unrecorded parcels are EXCLUDED by default; pass includeNulls: true to add them back. beds: 0 matches nothing (an unrecorded count is not a count of zero, and a genuine studio is indistinguishable from it), and the response returns null rather than 0.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
borrowerStatusone of | null
Show child attributes
Option 1enum

One of (case-insensitive): no_active_loans, Current, Current_via_ALI

Options:no_active_loansCurrentCurrent_via_ALI
Option 2enum[]

Match any of these values

Options:no_active_loansCurrentCurrent_via_ALI
Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
brokerNmlsone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
cityone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
companyNmlsone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
countyone of | null

County, as a 5-digit FIPS code (e.g. 06037). Canonical key for the county dimension; fips is the exact-code alias kept for back-compat.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
difficultDevelopmentAreaboolean

Parcel sits in a HUD-designated difficult development area (30,643,419 parcels). 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

Parcel sits in a distressed-or-underserved nonmetropolitan middle-income tract (13,289,914 parcels). 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.

equityone of | null

Estimated equity, in whole dollars (e.g. {gte: 250000}). Negative values are genuine underwater parcels. Derived from the value estimate minus outstanding loan balances, so it inherits their coverage (~77%) AND their gaps: on a parcel whose mortgage is missing from the record there is nothing to subtract, so this returns the full value estimate. Pair a high-equity range with preSaleLoanCount: {lte: 0} to drop those.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
equityPctone of | null

Estimated equity as a FRACTION of the value estimate, where 1 = the whole value and 0.5 = half. Pass {gte: 0.5} for 50%-or-more equity — {gte: 50} is not a synonym and matches ZERO parcels, since no value exceeds 1. Negative values are genuine underwater parcels. Note the contrast with loanLtv, which takes whole percents. CAUTION: 1 is not proof a parcel is owned free and clear — it is also what a recently-sold parcel returns when the buyer's new mortgage has not been recorded yet, because the calculation subtracts nothing. Add preSaleLoanCount: {lte: 0} to restrict to parcels whose position we can actually verify.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
excludeIdstring[]

Parcel ids to exclude — the inverse of id.

fipsone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
floodHazardTractboolean

Parcel sits in a FEMA special flood hazard area (4,675,160 parcels). tractFloodZone gives the specific zone 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.

foreclosureDateone of | null

Recording date of the most recent foreclosure notice on the parcel (e.g. {gte: "2025-01-01"}). Parcels with no notice are excluded. Pair with foreclosureStage, e.g. {foreclosureStage: "ND", foreclosureDate: {gte: "2025-01-01"}}.

Show child attributes
Option 1string

Exact 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 2object

Date 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 attributes
gtstring
gtestring
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires a bound.

ltstring
ltestring
foreclosureStageone of | null

Stage code of the most recent recorded foreclosure notice on the parcel (e.g. "ND", "NS"). Present on every parcel whose foreclosureStatus is in_foreclosure, so any value here also limits results to those parcels. Accepts one code or an array (any-of). Pair with foreclosureDate to find recent notices of one stage.

Show child attributes
Option 1enum

One of (case-insensitive): AN, CS, JF, ND, NF, NL, NS, NT, PF, RD, RJ, RL, RP, RS, RT, SR

Options:ANCSJFNDNFNLNSNTPFRDRJRLRPRSRTSR
Option 2enum[]

Match any of these values

Options:ANCSJFNDNFNLNSNTPFRDRJRLRPRSRTSR
Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
foreclosureStatusone of | null
Show child attributes
Option 1enum

One of (case-insensitive): unknown, in_foreclosure

Options:unknownin_foreclosure
Option 2enum[]

Match any of these values

Options:unknownin_foreclosure
Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
geoBoundsobject

Map viewport {north, south, east, west} in degrees: only listings inside the box. west greater than east crosses the antimeridian. Unlike geoPoint (a radius) this is the shape a map reports. Applies to list, count and analytics alike.

Show child attributes
eastnumberrequired
northnumberrequired
southnumberrequired
westnumberrequired
geoPointobject | null

Radius 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 attributes
latnumberrequired
lonnumberrequired
radiusstringrequired
idstring[]

Exact parcel ids (up to 50,000, any-of). A property id from the list/search rows (mm_<fips><apn>|<fips>-<apn>|<unit>, exactly that parcel) or an mmPropertyId (mm_<fips><apn>, every unit of the parcel). Must start with mm_. ANDed with the other filters, even under mode: "or".

lastSalePriceone of | null
Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
lenderNmlsone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loNmlsone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanAmountone of | null
Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
loanBalanceone of | null
Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
loanBorrowerStatusone of | null
Show child attributes
Option 1enum

One of (case-insensitive): Current, Current_via_ALI

Options:CurrentCurrent_via_ALI
Option 2enum[]

Match any of these values

Options:CurrentCurrent_via_ALI
Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanCompanyone of | null

Per-loan funding-company NMLS id (digits only) on the parcel's loans.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanCompanyNameone of | null

Funding-company name on the loan, case-insensitive contains.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanCompanyOrLenderone of | null

NMLS id matched as the loan's funding company OR lender.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanCountone of | null
Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
loanExcludeobject

Loan filters to EXCLUDE — each key negated on its own, under the same loanMatchMode. With "most_recent", {loanCompanyOrLender: "3030"} keeps parcels whose newest loan is not from 3030 (no-loan parcels included); {loanRecordedDate: {lt: "2017-01-01"}} drops newest loans recorded before 2017, keeping parcels with no date.

Show child attributes
loanCompanyone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

loanCompanyNameone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

loanCompanyOrLenderone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

loanOriginatorone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

loanRecordedDateone of | null
Show child attributes
Option 1string

Exact 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 2object

Date 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.

loanInterestRateone of | null

Deprecated alias of loanModeledInterestRate — a low-biased ModelMatch model that caps near 7%. For the genuine recorded note rate use recordedInterestRate.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
loanLenderone of | null

Lender ID on the parcel's loans — the normalized lender-dictionary key, NOT the lender name the response shows. Resolve a lender via instantSearch (or listLenders) and pass the id it returns (e.g. "mortgage_rocket" or "mortgage rocket"); the lenderId on a parcel's loans[] is the same value, so a lender read off a result round-trips here directly. Underscores and letter case are normalized, and the id expands to every stored variant the lender is recorded under. A value that is neither an id nor a stored lender name returns 400 with the closest matches, rather than silently matching nothing — to filter by the lender NAME shown on the parcel, use loanLenderName.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanLenderNameone of | null

Lender NAME on the parcel's loans — the counterpart to the exact-id loanLender, and the filter that accepts the lenderName a parcel's loans[] displays (e.g. "UNION HOME MORTGAGE CORP"). Case-insensitive, matched against the name recorded on the loan. When the name is one the lender dictionary knows, it also expands to that lender's whole recorded-name family, so a brand name ("union home mortgage") selects far more than the one literal string. Never 400s: a name it cannot resolve simply matches the recorded string. The response reports how each value resolved as lenderNormalizations.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanLenderNameContainsone of | null

Lender name on the loan, case-insensitive contains (loanLenderName is the exact / name-family match).

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanLtvone of | null

Loan-to-value on the parcel's active loan(s), as WHOLE PERCENTS — {gte: 40, lte: 50} means 40%–50% LTV. A fractional range ({gte: 0.4, lte: 0.5}) is not a synonym and matches ZERO parcels. ~7% coverage. Careful: the response DTO reports the same measurement as a fraction (loans[].ltv of 0.4238 is 42.38% LTV), so a value read off a result must be multiplied by 100 before it can be used here. equityPct, by contrast, takes the fraction. Two further limits of the stored value. It SATURATES at 10 and 199 — no parcel stores a ratio outside that range, so {gte: 200} matches nothing at all, and the extremes are dominated by parcels whose true ratio was merely clipped to the bound; the response returns those as null, but this filter still selects them. And the underlying value is not a dependable per-loan ratio — two thirds of parcels with several mortgages store an identical figure across loans of very different amounts (see loans[].ltv, deprecated). For selecting on borrower position prefer equityPct, which has neither limitation.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
loanMatchModeenum

How the loan-slot filters combine across a parcel's 5 cached loans. correlated (default): ONE loan (any slot) must satisfy ALL loan-slot conditions. most_recent: only the newest loan (loan_1). any: each condition may be satisfied by a different loan. none: ignore loan-slot filters. Honored on list, bulk-delivery, and bulk-enrich.

Options:correlatedmost_recentanynone
loanModeledInterestRateone of | null

Per-loan MODELED rate (loan_N.modeled_interest_rate). Low-biased, effectively caps near 7% — not a note rate. Use recordedInterestRate for the recorded rate.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
loanOriginatorone of | null

Per-loan originator NMLS id (digits only) on the parcel's loans. For all-time attribution across the parcel use loNmls.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanOriginatorNameone of | null

DEPRECATED — fuzzy name matching is unreliable (same originator can return wildly different counts by name string). Resolve the loan officer via instantSearch and filter by loanOriginator (exact NMLS id) instead. Still functional for now.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanOriginatorNameContainsone of | null

Loan officer name on the loan, case-insensitive contains. Prefer loanOriginator (NMLS id).

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanRecordedDateone of | null
Show child attributes
Option 1string

Exact 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 2object

Date 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 attributes
gtstring
gtestring
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires a bound.

ltstring
ltestring
loanTransactionTypeone of | null
Show child attributes
Option 1enum

One of (case-insensitive): purchase, refinance, equity, construction, non_residential

Options:purchaserefinanceequityconstructionnon_residential
Option 2enum[]

Match any of these values

Options:purchaserefinanceequityconstructionnon_residential
Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
loanTypeone of | null
Show child attributes
Option 1enum

One of (case-insensitive): va, fha, conventional, usda, home_equity, heloc, reverse, commercial, building, standalone_refi

Options:vafhaconventionalusdahome_equityhelocreversecommercialbuildingstandalone_refi
Option 2enum[]

Match any of these values

Options:vafhaconventionalusdahome_equityhelocreversecommercialbuildingstandalone_refi
Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
lotSquareFeetone of | null

Lot size in square feet (e.g. {gte: 5000}). ~85% coverage; unmeasured parcels are excluded by default — pass includeNulls: true to add them back. lotSquareFeet: 0 matches nothing (the response returns null).

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
lowModIncomeTractboolean

Parcel sits in a low- or moderate-income tract under the Community Reinvestment Act (34,010,153 parcels). tractIncomeLevel is the four-way form of the same classification. 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

Parcel sits in a majority-minority tract (38,745,783 parcels). 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.

milesToCollegeone of | null

Straight-line distance from the parcel 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.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
milesToSchoolone of | null

Straight-line distance from the parcel 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.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
milesToWorshipone of | null

Straight-line distance from the parcel 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.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
modeenum
Options:andor
mortgageBalanceone of | null
Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
opportunityZoneboolean

Parcel sits in a federally designated Opportunity Zone tract (10,277,168 parcels). 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.

ownerNameone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
ownerOccupancyone of | null

Assessor owner-occupancy flag, bucketed: "owner_occupied", "probable_owner_occupied", or "not_flagged" (the assessor did not flag the parcel — where non-owner-occupied/investor parcels land). Accepts one value or an array (any-of). For investor targeting use {ownerOccupancy: "not_flagged", absenteeOwner: true}, optionally with ownerType: "entity".

Show child attributes
Option 1enum

One of (case-insensitive): owner_occupied, probable_owner_occupied, not_flagged

Options:owner_occupiedprobable_owner_occupiednot_flagged
Option 2enum[]

Match any of these values

Options:owner_occupiedprobable_owner_occupiednot_flagged
Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
ownerTypeone of

Owner vesting type (any-of); individual = neither entity nor trust.

Show child attributes
Option 1enum
Options:entitytrustindividual
Option 2enum[]
Options:entitytrustindividual
preSaleLoanCountone of | null

Mortgages excluded from activeLoanCount because the parcel sold after they were recorded — the seller's loan, assumed paid off at closing. Use it to separate the two meanings of activeLoanCount: 0: {activeLoanCount: {lte: 0}, preSaleLoanCount: {lte: 0}} returns parcels where nothing was excluded, so the zero is backed by the record; {activeLoanCount: {lte: 0}, preSaleLoanCount: {gte: 1}} returns the parcels where it is not. On its own a non-zero value is unremarkable — most recently-sold parcels have one and also carry a current mortgage.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
programEligibilityenum

Restrict to parcels whose value estimate falls within this loan program's county price limit — an eligibility band (value ceiling). Pair with fips to resolve the county's limit; with no county context the national baseline applies. Parcels without a value estimate are excluded. This is a price band only — no borrower income, payment, or DTI is considered.

Options:fhaconforming
recordedInterestRateone of | null

Genuine RECORDED note rate from the parcel's active loan(s) (~7% coverage, concentrated on the most-recent loan). Percent input (e.g. 7 means 7%).

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
ruralTractboolean

Parcel sits in a rural tract (29,289,319 parcels). Thinner coverage than the other flags — stamped on 111.9M of 161.1M parcels, and a parcel with no value is dropped by either true or false. 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.

saleCountone of | null
Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
salePropensityone of | null

Likelihood the parcel sells in the near term, as a 0–100 score (e.g. {gte: 80} for the most likely to sell). NOT a fraction — {gte: 0.8} matches nearly every scored parcel. salePropensityCategory is the bucketed form of the same signal.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
salePropensityCategoryone of | null
Show child attributes
Option 1enum

One of (case-insensitive): High, Medium, Low

Options:HighMediumLow
Option 2enum[]

Match any of these values

Options:HighMediumLow
Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
squareFeetone of | null

Building area in square feet (e.g. {gte: 1500}). ~68% coverage; unmeasured parcels are excluded by default — pass includeNulls: true to add them back. squareFeet: 0 matches nothing (the response returns null).

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
stateone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
tractApplicationsone of | null

Mortgage applications reported in the tract over the year, as a count. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractAsianPctone of | null

Asian (non-Hispanic) share of the tract's population, 0-100. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractBlackPctone of | null

Black (non-Hispanic) share of the tract's population, 0-100. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractCountyCodeone of | null

Three-digit county FIPS code of the tract (county-within-state, NOT the 5-digit county/fips key). Pass with tractStateCode and tractId to pin one 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.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
tractDenialRateone of | null

Share of the tract's mortgage applications that were denied, 0-100 (e.g. {gte: 25} for 25%+). 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractFamilyIncomeone of | null

Median family income of the tract, in whole dollars (e.g. {lte: 60000}). 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractFloodZoneone of | null
Show child attributes
Option 1enum

One of (case-insensitive): A, AE, AH, AO, A99, V, VE

Options:AAEAHAOA99VVE
Option 2enum[]

Match any of these values

Options:AAEAHAOA99VVE
Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
tractHispanicPctone of | null

Hispanic or Latino share of the tract's population, 0-100. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractHomeownershipRateone of | null

Owner-occupied share of the tract's housing units, 0-100. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractHouseholdIncomeone of | null

Median household income of the tract, in whole dollars (e.g. {gte: 120000}). 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractIdone of | null

Six-digit tract code. A tract code REPEATS in every state and county, so this only identifies a neighborhood when passed ALONGSIDE tractStateCode and tractCountyCode — on its own it matches roughly 75× too many parcels. 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
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
tractIncomeLevelone of | null
Show child attributes
Option 1enum

One of (case-insensitive): low, moderate, middle, upper

Options:lowmoderatemiddleupper
Option 2enum[]

Match any of these values

Options:lowmoderatemiddleupper
Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
tractIncomeVsMetroPctone of | null

Tract income relative to its metro area, where 100 is parity — {lt: 80} is the CRA low/moderate band and values legitimately exceed 100 (observed up to 412). NOT a 0-100 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.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractLoanVolumeone of | null

Mortgage dollar volume reported in the tract over the year, 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.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractMedianAgeone of | null

Median age of the tract's population, 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.

Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractMedianHomeValueone of | null

Median home value across the tract, in whole dollars. A neighborhood statistic — the parcel's own value estimate is avmValue. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractMinorityPctone of | null

Non-white share of the tract's population, 0-100 (e.g. {gte: 50} for majority-minority; majorityMinorityTract is the flag form). 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractOriginationsone of | null

Mortgage originations reported in the tract over the year, as a count. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractPopulationone of | null

Total population of the tract. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractPovertyRateone of | null

Share of the tract's population below the poverty line, 0-100 (e.g. {gte: 20} for 20%+). Pass whole percents — {gte: 0.2} means 0.2% and matches almost every tract. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractRuralGradientone of | null

Remoteness of the tract on an ORDINAL 1-10 scale (1 = metropolitan core, 10 = most remote). This is a code, not a percent — {gte: 7} selects the most remote tracts. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
tractStateCodeone of | null

Two-digit state FIPS code of the tract. Pass with tractCountyCode and tractId to pin one 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.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
tractWhiteNonHispanicPctone of | null

White (non-Hispanic) share of the tract's population, 0-100. 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
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
usdaEligibleTractboolean

Parcel sits in a tract eligible for USDA rural housing programs (70,637,816 parcels). 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.

yearBuiltone of | null
Show child attributes
Option 1number
Option 2number[]

Match any value

Option 3object

Numeric range. Excludes null/missing-field docs by default; add includeNulls: true to keep them.

Show child attributes
gtnumber
gtenumber
includeNullsboolean

Also keep docs where the field is null/missing (a range filter drops them by default). Requires at least one of gte/lte/gt/lt.

ltnumber
ltenumber
zipone of | null
Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
zipCodeone of | null

ZIP code. Canonical key (matches loans zipCode and the response DTO); zip is a legacy alias kept for back-compat.

Show child attributes
Option 1string
Option 2string[]

Match any value

Option 3object

Fuzzy text match

Show child attributes
matchstringrequired
paginationobject
Show child attributes
cursorstring

Opaque cursor from previous response for next page

sizeinteger

Page size (1-100, default 25)

sortobject[]
Show child attributes
fieldenumrequired
Options:addresscitystatezipCodezipapnfipsownerNamebedssquareFeetlotSquareFeetyearBuiltavmValueavmConfidenceequityequityPctsalePropensitysalePropensityCategoryforeclosureStatusforeclosureStageforeclosureDateborrowerStatusloanCountactiveLoanCount+16 more
missingenum

Where rows without a value go (default last in both directions). first with asc / last with desc treats blanks as the smallest value.

Options:firstlast
orderenum
Options:ascdesc

Responses

200objectExact count of matching properties
Show attributes
lenderNormalizationsobject[]

How each lenderName value resolved against the lender dictionary. Present when a lenderName filter was supplied.

Show child attributes
aliasCountintegerrequired

Stored lender-name variants this id expands to

displayNamestring | nullrequired
idstring | nullrequired

Canonical lender-dictionary id, or null

matchedViaenumrequired

id = the value already WAS a canonical key; alias = a stored lender name; name = matched the display/canonical name; unresolved = fell back to raw text match; degraded = the dictionary could not be consulted.

Options:idaliasnameunresolveddegraded
originalstringrequired

The value the caller sent

totalDocumentsintegerrequired

Loans the dictionary attributes to this id. A small number next to a well-known lender name means the name matched a minor entry.

locationNormalizationsobject[]

How each location filter value resolved. Present when a city/county/state/zip filter was supplied.

Show child attributes
candidatesstring[]

Location ids matching an ambiguous name, ranked. Use instantSearch or suggestLocations to pick one.

confidenceenumrequired

"exact" — matched a dictionary entry as written. "normalized" — resolved to a different spelling or merged several candidates. "fallback" — NOT resolved; the raw value was passed through, so a zero result means the name was not recognized rather than empty.

Options:exactnormalizedfallback
displayNamestringrequired
fieldstringrequired

The filter key this applies to

idstring

Resolved location id — pass this back for an exact filter

normalizedstringrequired
originalstringrequired
variantsstring[]

Spellings actually queried against the index

totalintegerrequired

Exact count of records matching the filters

400objectValidation error
401objectUnauthorized
403objectForbidden (authenticated, but missing required context — e.g. no active organization)
404objectNot 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.