Model MatchHelp

Offices

Loan products on the office's financed deals (pre-aggregated)

postapi.modelmatch.com/v1/offices/{id}/breakdowns/loanTypes

The office's financed deals in the period by loan product (label = product key, e.g. conventional, fha, va), summed across its lenders. Shares are of the financed deals on the requested side, so rows sum to 1; cash deals are not counted.

Authorization

x-api-keystringrequired

API key or OAuth token. See Authentication.

Path parameters

idstringrequired

Office id (from listOffices / instantSearch)

Body application/json

bySideboolean

Also return the buyer and listing views under bySide, computed in the same query — each identical to calling again with that side. Use instead of one call per side. pagination.cursor pages every view in step (each view's own cursor is absent once it ends).

periodenum

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

Options:2017201820192020202120222023202420252026last3Monthslast6Monthslast12Monthslast14Monthslast16Monthslast18Monthslast24MonthsyearToDateallTime
sideenum

Which side of the deal the agent was on. buyer: the agent represented the buyer — deals where the agent was on BOTH sides (dual) count here. listing: the agent represented the seller only (duals are already in buyer). any (default): either side, each deal once. buyer + listing = any.

Options:anybuyerlisting
sortobject[]
Show child attributes
fieldenumrequired

One of (case-insensitive): volume, units, label, pctVolume, pctUnits, name

Options:volumeunitslabelpctVolumepctUnitsname
orderenum
Options:ascdesc

Responses

200objectPre-aggregated loanTypes breakdown from the office's scored doc
Show attributes
bySideobject

Present when the request set bySide: the buyer and listing views of this response.

Show child attributes
buyerobjectrequired
Show child attributes
cursorstring

Opaque cursor for the next page; absent when this is the last page.

dataobject[]required
totalnumberrequired

Number of buckets returned

totalsobject

Grand totals across all data

truncatedboolean

True when more buckets exist beyond this page. Page through with cursor, or sort by label to enumerate the full key space.

listingobjectrequired
Show child attributes
cursorstring

Opaque cursor for the next page; absent when this is the last page.

dataobject[]required
totalnumberrequired

Number of buckets returned

totalsobject

Grand totals across all data

truncatedboolean

True when more buckets exist beyond this page. Page through with cursor, or sort by label to enumerate the full key space.

cursorstring

Opaque cursor for the next page; absent when this is the last page.

dataobject[]required
Show child attributes
companyobject

Agent 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 attributes
namestring | nullrequired
nmlsIdstring | nullrequired
contactobject | null

originatorAgents 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 attributes
emailstring | nullrequired
phonestring | nullrequired
excludednumber

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

idstring

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

labelstringrequired

Bucket label/key

namestring

Human-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 | null

originatorAgents 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 attributes
idstring | nullrequired
namestringrequired
pctUnitsnumberrequired

Percentage of total units

pctVolumenumberrequired

Percentage of total volume

unitsnumberrequired

Number of transactions

volumenumberrequired

Total dollar volume

totalnumberrequired

Number of buckets returned

totalsobject

Grand totals across all data

Show child attributes
excludednumber

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

unitsnumberrequired
volumenumberrequired
volumePlausibleboolean

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

truncatedboolean

True when more buckets exist beyond this page. Page through with cursor, or sort by label to enumerate the full key space.

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.