Loan officers who changed companies
The loan officers who moved to a new company in the window, with previous and new employer, move date, current location and production. sort=volume returns the highest producers who moved (notable moves); sort=date pages every move newest first. 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.
In: header
Query Parameters
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.
^(?:last_\d{1,3}_months|year_to_date|all_time|(?:fy_|fiscal_)?\d{4})$Two-letter state. Matches the loan officer's CURRENT NMLS location, not where they were when they moved.
^[A-Za-z]{2}$Comma-separated two-letter states (e.g. a region). ORed; combined with state when both are sent.
^[A-Za-z]{2}(?:,[A-Za-z]{2})*$Exact city name of the loan officer's current NMLS location. Pair with state.
1 <= length <= 100Comma-separated company categories (BANK, CU, OTHER) applied to the company whose roster changed — the destination for arrivals, the company left for departures.
^(?:BANK|CU|OTHER)(?:,(?:BANK|CU|OTHER))*$Destination company.
Previous company.
date (default): most recent moves first, one row per move. volume: the highest-producing movers first (trailing 14 months), one row per loan officer — scans the top producers, so total is null.
"date" | "volume"1 <= value <= 100Rows to return (default 25, max 100).
1 <= value <= 100Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/market/movement/movers"{
"data": [
{
"city": "string",
"fromCompanyName": "string",
"fromCompanyNmlsId": "string",
"moveDate": "string",
"name": "string",
"nmlsId": "string",
"previousUnits": 0,
"previousVolume": 0,
"state": "string",
"toCompanyName": "string",
"toCompanyNmlsId": "string",
"units": 0,
"volume": 0
}
],
"limit": 0,
"page": 0,
"total": 0,
"window": {
"endDate": "string",
"months": 0,
"startDate": "string"
}
}{
"retryAfterMs": 5000,
"status": "computing"
}{
"error": "string"
}{
"error": "string"
}{
"error": "string"
}{
"error": "string"
}{
"error": "string",
"limit": 0,
"size": 0
}Companies that lost the most loan officers GET
Companies ranked by loan officers lost in the window (or by net = gained − lost with `rankBy=net`). Each row carries gained, lost and net, plus the trailing-14-month production of the loan officers on the ranked side. 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`.
Top-100 loan officer rankings for a year GET
The top 100 loan officers for a calendar year by total volume, units, or FHA / VA / purchase / refinance volume, with current employer and retail / banker / broker type. 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`.