Model MatchHelp

Companies

Where a company's hires came from and where its exits went

getapi.modelmatch.com/v1/companies/{nmlsId}/talent-flow

Authorization

x-api-keystringrequired

API key or OAuth token. See Authentication.

Path parameters

nmlsIdstringrequired

Company NMLS ID

Query parameters

periodenum

Preset window when from/to are not given (default last12Months). Rolling periods start on the FIRST day of the month N months back and end today; a year is Jan 1 – Dec 31; allTime starts 2017-01-01, the earliest reliable registration data. Also selects the production period for volume/units.

Options:2017201820192020202120222023202420252026last3Monthslast6Monthslast12Monthslast14Monthslast16Monthslast18Monthslast24MonthsyearToDateallTime
fromstring

Window start, inclusive (YYYY-MM-DD). Overrides period.

tostring

Window end, inclusive (YYYY-MM-DD). Overrides period.

limitinteger

Counterparty companies per side (default 50, max 1000).

Responses

200objectHires by prior employer, exits by next employer
Show attributes
arrivalsobjectrequired

Where this window's hires came from: each hire's employer whose record ended most recently on or before their start here. A partition — companies[].count + unattributed = total. A hire is a loan officer whose earliest employment record at this company still relevant to the window (open, or ended on/after the window start) starts inside it — so someone who fully left and came back inside the window counts, and an existing employee who adds a state license does not.

Show child attributes
companiesobject[]required
Show child attributes
companyNamestring | nullrequired
companyNmlsIdstring | nullrequired
countnumberrequired

Loan officers attributed.

unitsnumberrequired

Loans behind volume.

volumenumberrequired

Those loan officers' production AT THIS company (employer at time of loan = this company) recorded inside the window.

companiesTruncatedbooleanrequired

true when more counterparties exist than limit; companies is then the largest limit. total and unattributed are unaffected.

totalnumberrequired
unattributednumberrequired

Hires with no earlier employer on file that ended by their start date — typically new to the industry.

unitsnumberrequired

Loans behind volume.

volumenumberrequired

Every mover on this side's production AT THIS company (employer at time of loan = this company) recorded inside the window — volume gained (arrivals) / lost (departures). Includes unattributed movers.

boomerangsobjectrequired

Window hires who came BACK: an earlier stint here ended (before or inside the window) and a later one starts inside it. Stints merge overlapping license records, so dropping one state license is not a departure. Someone who joined and left inside the window without returning is not one.

Show child attributes
dataobject[]required

Sorted by volume, most first, then NMLS ID.

Show child attributes
leftDatestringrequired

End of the stint at this company before the return.

namestring | nullrequired
nmlsIdstringrequired
returnedDatestringrequired

Start of the returning stint (inside the window).

stillHerebooleanrequired

Still holds an open record at this company.

unitsnumberrequired

Loans behind volume.

volumenumberrequired

Production AT THIS company (employer at time of loan = this company) recorded inside the window.

wentToobjectrequired

Where they worked while away: the first employer whose record overlaps the gap. Null fields when none is on file.

wentToDatestring | nullrequired
dataTruncatedbooleanrequired

true when more than 500 matched; data is then the 500 with the most volume. total, volume and units cover every one.

statusenumrequired

timeout when the hires' history at this company could not be read within 8 s (very large company over a long window): every count is then 0 and means "not available", not "none". Rubberbands do not depend on it.

Options:oktimeout
stillHereobjectrequired

The subset still at the company.

Show child attributes
countnumberrequired
unitsnumberrequired

Loans behind volume.

volumenumberrequired

Production AT THIS company (employer at time of loan = this company) recorded inside the window.

totalnumberrequired
unitsnumberrequired

Loans behind volume.

volumenumberrequired

Production AT THIS company (employer at time of loan = this company) recorded inside the window.

departuresobjectrequired

Where this window's exits went: each exit's earliest employer record starting on or after their departure. A partition, like arrivals. An exit is a loan officer whose latest record at this company ended inside the window and who holds NO open record there — a complete departure.

Show child attributes
companiesobject[]required
Show child attributes
companyNamestring | nullrequired
companyNmlsIdstring | nullrequired
countnumberrequired

Loan officers attributed.

unitsnumberrequired

Loans behind volume.

volumenumberrequired

Those loan officers' production AT THIS company (employer at time of loan = this company) recorded inside the window.

companiesTruncatedbooleanrequired

true when more counterparties exist than limit; companies is then the largest limit. total and unattributed are unaffected.

totalnumberrequired
unattributednumberrequired

Exits with no later employer on file — not re-employed yet, or left the industry.

unitsnumberrequired

Loans behind volume.

volumenumberrequired

Every mover on this side's production AT THIS company (employer at time of loan = this company) recorded inside the window — volume gained (arrivals) / lost (departures). Includes unattributed movers.

rubberbandsobjectrequired

Window exits who went BACK: their next employer is one where they hold an ended record that started before the window.

Show child attributes
dataobject[]required

Sorted by volume, most first, then NMLS ID.

Show child attributes
joinedDatestring | nullrequired

First start at this company among the window-relevant records.

leftDatestringrequired

Complete-departure date.

leftPreviousDatestringrequired

When their earlier, pre-window stint at returnedTo ended.

namestring | nullrequired
nmlsIdstringrequired
returnedToobjectrequired

Where they worked while away: the first employer whose record overlaps the gap. Null fields when none is on file.

returnedToDatestringrequired
unitsnumberrequired

Loans behind volume.

volumenumberrequired

Production AT THIS company (employer at time of loan = this company) recorded inside the window.

dataTruncatedbooleanrequired

true when more than 500 matched; data is then the 500 with the most volume. total, volume and units cover every one.

totalnumberrequired
unitsnumberrequired

Loans behind volume.

volumenumberrequired

Production AT THIS company (employer at time of loan = this company) recorded inside the window.

truncatedbooleanrequired

true when the company has more than 100,000 loan officers in scope and only the first 100,000 (by NMLS ID) were counted. false means every figure covers the full population.

windowobjectrequired
Show child attributes
fromstringrequired
tostringrequired
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.