Search branches with filters
Search NMLS-registered mortgage company branch offices (not real estate offices — use listOffices for those). Returns branch name, address, parent company, managers, and NMLS ID. Each row carries branch-level production metrics for the selected period. If you only need how many branches match and not the records themselves, send the same request body to countBranches.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/branches" \ -H "Content-Type: application/json" \ -d '{}'{
"cursor": "string",
"data": [
{
"avgLoanAmount": 0,
"city": "string",
"communityLending": {
"affordableHousingTractCount": 0,
"affordableHousingTractPct": 0,
"avgAsianPct": 0,
"avgBlackPct": 0,
"avgDenialRate": 0,
"avgFamilyIncome": 0,
"avgHispanicPct": 0,
"avgHomeValue": 0,
"avgHomeownershipRate": 0,
"avgHouseholdIncome": 0,
"avgIncomeVsMetroPct": 0,
"avgLowModHouseholdPct": 0,
"avgMedianAge": 0,
"avgMilesToCollege": 0,
"avgMilesToSchool": 0,
"avgMilesToWorship": 0,
"avgMinorityPct": 0,
"avgPopulation": 0,
"avgPovertyRate": 0,
"avgTractApplications": 0,
"avgTractLoanVolume": 0,
"avgTractOriginations": 0,
"avgWhiteNonHispanicPct": 0,
"difficultDevelopmentAreaCount": 0,
"difficultDevelopmentAreaPct": 0,
"distressedTractCount": 0,
"distressedTractPct": 0,
"floodHazardTractCount": 0,
"floodHazardTractPct": 0,
"loansWithCommunityData": 0,
"lowModIncomeTractCount": 0,
"lowModIncomeTractPct": 0,
"majorityMinorityTractCount": 0,
"majorityMinorityTractPct": 0,
"opportunityZoneCount": 0,
"opportunityZonePct": 0,
"predominantFloodZone": "string",
"predominantIncomeLevel": "low",
"ruralGradient": 0,
"ruralTractCount": 0,
"ruralTractPct": 0,
"usdaEligibleTractCount": 0,
"usdaEligibleTractPct": 0
},
"companyName": "string",
"companyNmlsId": "string",
"companyType": "string",
"coordinates": {
"lat": 0,
"lon": 0
},
"id": "string",
"isAuthorized": true,
"licensedStates": [
"string"
],
"loCount": 0,
"managerCount": 0,
"managers": [
{
"name": "string",
"nmlsId": "string"
}
],
"name": "string",
"nmlsId": "string",
"purchasePct": 0,
"refinancePct": 0,
"rosterJoined": 0,
"rosterLeft": 0,
"state": "string",
"street": "string",
"teamSize": 0,
"tradenames": [
"string"
],
"units": 0,
"volume": 0,
"zip": "string"
}
],
"locationNormalizations": [
{
"candidates": [
"string"
],
"confidence": "normalized",
"displayName": "Saint Louis, MO",
"field": "city",
"id": "city_mo_saint-louis",
"normalized": "Saint Louis",
"original": "St. Louis",
"variants": [
"string"
]
}
],
"total": 0
}{
"error": "string"
}{
"error": "string"
}{
"error": "string"
}{
"error": "string"
}{
"error": "string",
"limit": 0,
"size": 0
}Get bulk-delivery job status for branches GET
Previous Page
Submit a bulk-delivery job for branches POST
Queues an ECS task that dumps every matching branches document to S3 in the requested format. Returns 202 with a jobId; poll `GET /v1/branches/bulk-delivery/{jobId}` for status + the signed download URL. **Row limit.** Deliveries of up to 1,000 rows need no entitlement. Above that, the org's `bulk-delivery.branches` entitlement is required and its scope (row ceiling, row filters, allowed fields) governs the delivery; without it the request is rejected with 403 `entitlement_missing`. Pass `limit` at or below the ceiling to deliver a capped subset of a broader query. Email support@modelmatch.com to request a limit increase. Delivery is billed at 1 credit per 100 rows regardless of entitlement.