Model MatchHelp

Market

Company-to-company loan officer flows

getapi.modelmatch.com/v1/market/movement/transitions

The largest company-to-company flows in the window: how many loan officers moved from each previous employer to each new one. Filter to one company (either side) with companyNmlsId. A move is dated by the loan officer's FIRST record at the new company; a loan officer licensed in several states counts once per company. Location filters use the loan officer's CURRENT NMLS location. Results refresh weekly. A response not ready within 25 s answers 202 (MovementComputing): repeat the same request after retryAfterMs.

Authorization

x-api-keystringrequired

API key or OAuth token. See Authentication.

Query parameters

dateRangestring

Reporting window. last_N_months = the N most recent COMPLETED calendar months (the current month is excluded); year_to_date = Jan 1 through the end of last month; YYYY (or fy_YYYY) = that calendar year; all_time. Default last_12_months.

statestring

Two-letter state. Matches the loan officer's CURRENT NMLS location, not where they were when they moved.

statesstring

Comma-separated two-letter states (e.g. a region). ORed; combined with state when both are sent.

citystring

Exact city name of the loan officer's current NMLS location. Pair with state.

companyCategorystring

Comma-separated company categories (BANK, CU, OTHER) applied to the company whose roster changed — the destination for arrivals, the company left for departures.

companyNmlsIdstring

Only flows into or out of this company.

limitinteger

Rows to return (default 25, max 200).

Responses

200objectOK
Show attributes
dataobject[]required
Show child attributes
fromCompanyNamestring | nullrequired
fromCompanyNmlsIdstringrequired
losnumberrequired

Loan officers who made this move in the window.

toCompanyNamestring | nullrequired
toCompanyNmlsIdstringrequired
truncatedbooleanrequired

True when flows beyond the scanned destination/source companies exist.

windowobjectrequired

The resolved reporting window (inclusive dates).

Show child attributes
endDatestringrequired
monthsnumberrequired
startDatestringrequired
202objectStill computing — poll the same request after `retryAfterMs`. See `MovementComputing`.
Show attributes
retryAfterMsintegerrequired

Suggested wait before repeating the SAME request (also sent as Retry-After, in seconds).

statusenumrequired
Options:computing
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.