Companies
Lenders this company originated through
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
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
matchstringrequiredpaginationobjectShow child attributesHide child attributes
cursorstringOpaque cursor from previous response for next page
sizeintegerPage size (1-100, default 25)
periodenumDate window for loans / sales / market endpoints. Accepts every Period value plus rolling windows: last30Days / last60Days / last90Days (today minus 30 / 60 / 90 days through today), previousMonth (the last complete calendar month) and currentMonth (the 1st of this month through today). All windows are resolved in UTC with inclusive calendar-date bounds. Rolling windows are only accepted by the loans, sales and market endpoints (list, count, breakdowns, analytics summary / time-series / chart); originators / companies / branches / agents / offices endpoints return 400 for them.
2017201820192020202120222023202420252026last3Monthslast6Monthslast12Monthslast14Monthslast16Monthslast18Monthslast24MonthsyearToDateallTimelast30Dayslast60Dayslast90DayspreviousMonthcurrentMonthroleScopeenumWhich of a loan's party roles make it this company's loan. loanCompany (default): the company named on the loan document — one company per loan. all: the company appears in ANY role — loan-document company, the originating LO's employer at time of loan, the LO's organization, broker, or funding lender; a loan matching several roles counts once. employer: the company employed the originating LO when the loan closed. broker: the company brokered the loan. lender: the company funded the loan. tpo: third-party origination — the company is the loan company or lender but did NOT employ the originating LO (the channel dimension's tpo bucket as a population; employer is its inHouse counterpart). Use all for a broker shop's full production — its loans are often recorded under the funding lender's name, so loanCompany undercounts it.
loanCompanyallemployerbrokerlendertposortobject[]Show child attributesHide child attributes
fieldenumrequiredOne of (case-insensitive): volume, units, label, pctVolume, pctUnits, name
volumeunitslabelpctVolumepctUnitsnameorderenumascdescResponses
200objectBreakdown of the company's loans by lendersShow attributesHide attributes
cursorstringOpaque cursor for the next page; absent when this is the last page.
dataobject[]requiredShow child attributesHide child attributes
companyobjectAgent and company originators only: the LO's employer per NMLS licensing (on agents, as of the agent profile's last refresh) — not necessarily the company on the loans, and it can trail a very recent move (GET /v1/originators/{nmlsId} is always current). Absent on every other breakdown; null leaves when no sponsorship was on file.
Show child attributesHide child attributes
namestring | nullrequirednmlsIdstring | nullrequiredcontactobject | nulloriginatorAgents only: the agent's email and direct phone — the same email / phone GET /v1/agents/{id} and the agents list report. Each leaf is null when the agent's record has none; null when the agent id matches no record. Absent on rows without an agent id and on every other breakdown.
Show child attributesHide child attributes
emailstring | nullrequiredphonestring | nullrequiredexcludednumberHow many of this bucket's documents the volume guard excluded — documents that carry the money field but whose value is an out-of-range fill. Compare against units to see what share of the bucket volume was actually computed over: a bucket can show many units and still sum a small fraction of them. Absent when the entity's money column is unguarded (the sales-backed agent breakdowns), where nothing can be excluded.
idstringMachine value behind label for breakdowns whose bucket key is an id rather than a name (lenders, where label is the dictionary display name and id is the normalized lender key — pass id, not label, back as a lender filter value; agent originators, where id is the LO's NMLS id; originatorAgents, where id is the agent id most often recorded under that name; titleCompanies, where id is the normalized name the spellings were merged under). Absent on name-keyed breakdowns, where label is already the machine value.
labelstringrequiredBucket label/key
namestringHuman-readable name for the bucket when label is an entity id (e.g. a broker NMLS id resolved to its company name). Absent when unresolved or not an id-keyed breakdown.
officeobject | nulloriginatorAgents only: the agent's brokerage office — the same office GET /v1/agents/{id} and the agents list report as office, picked from the offices on the agent's profile by recency and frequency, so it can trail a very recent move and is not necessarily the office on these loans. id is the office id (pass it to GET /v1/offices/{id}); null when the office has none. null when the agent has no named office on file; absent on rows without an agent id and on every other breakdown.
Show child attributesHide child attributes
idstring | nullrequirednamestringrequiredpctUnitsnumberrequiredPercentage of total units
pctVolumenumberrequiredPercentage of total volume
unitsnumberrequiredNumber of transactions
volumenumberrequiredTotal dollar volume
totalnumberrequiredNumber of buckets returned
totalsobjectGrand totals across all data
Show child attributesHide child attributes
excludednumberDocuments the volume guard excluded across the whole scope — the grand-total counterpart of a bucket's excluded, and the same figure /analytics/summary reports as current.excluded.volume for an equivalent query. Absent when the money column is unguarded.
unitsnumberrequiredvolumenumberrequiredvolumePlausiblebooleanFalse when volume is a pre-summed figure this API can show is impossible — e.g. an average sale price per unit far outside any real market, or buyer-side and seller-side averages that contradict each other. pctVolume on every item is that figure's quotient, so when this is false those percentages are unusable and should not be rendered as shares. A MAGNITUDE check only: true means "not obviously impossible", NOT "verified". Absent on surfaces that aggregate documents live, where no such figure is read.
truncatedbooleanTrue when more buckets exist beyond this page. Page through with cursor, or sort by label to enumerate the full key space.
400objectValidation error401objectUnauthorized403objectForbidden (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.