@model-match/api 3.29.0 → 3.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index-G28LbtCS.d.mts → index-DDE8q6K0.d.mts} +111 -8
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/slim/index.d.mts +4 -3
- package/dist/slim/index.mjs +3 -2
- package/dist/{src-C2QtRet2.mjs → src-Fb0Qg-UI.mjs} +2 -1
- package/openapi.json +346 -12
- package/package.json +1 -1
package/dist/slim/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as createClient, w as client } from "../src-
|
|
1
|
+
import { n as createClient, w as client } from "../src-Fb0Qg-UI.mjs";
|
|
2
2
|
//#region src/slim/sdk.gen.ts
|
|
3
3
|
/**
|
|
4
4
|
* An LO's sponsorship / registration links (admin)
|
|
@@ -584,7 +584,7 @@ const agentRelated = (options) => {
|
|
|
584
584
|
};
|
|
585
585
|
/**
|
|
586
586
|
* Sales transactions where this agent was listing or selling side
|
|
587
|
-
* The agent's deals, newest first: every sale on which the agent is the buyer's agent or the listing / co-listing agent. `side` narrows to one half (`buyer` includes deals where the agent was on both sides; `listing` excludes them). Each row says which `side` the agent was on and carries the sale's recorded purchase `loan` — lender, loan officer, loan type, amount, title company — or `null` for a cash deal or a loan not yet on file. Pass `flatFilters.mlsStatus: "SLD"` for closed deals only.
|
|
587
|
+
* The agent's deals, newest first: every sale on which the agent is the buyer's agent or the listing / co-listing agent. `side` narrows to one half (`buyer` includes deals where the agent was on both sides; `listing` excludes them). Each row says which `side` the agent was on and carries the sale's recorded purchase `loan` — lender, loan officer, loan type, amount, title company — or `null` for a cash deal or a loan not yet on file. Pass `flatFilters.mlsStatus: "SLD"` for closed deals only. `dealFilters` adds an address `search`, the co-listing agent, builder / status-date filters and loan-side filters (`financed`, `loan.*` on the purchase loan). Sorts: the `/v1/sales` names plus `listDate`, `builder`, `coListAgent`, and the loan / party columns `loanAmount`, `loanType`, `loanTransactionType`, `interestRate`, `lenderName`, `originatorName`, `companyName`, `brokerName`, `titleCompany`, `buyerName`, `sellerName`, `downPayment` (one at a time; blanks last).
|
|
588
588
|
*/
|
|
589
589
|
const agentSales = (options) => {
|
|
590
590
|
return (options.client ?? client).post({
|
|
@@ -1896,6 +1896,7 @@ const companyOffices = (options) => {
|
|
|
1896
1896
|
};
|
|
1897
1897
|
/**
|
|
1898
1898
|
* Loan officers who originated through this company
|
|
1899
|
+
* Ranks the loan officers on this company's loans (scope with `roleScope` — `tpo` for its third-party originators). `label` is the LO's NMLS id; `name` and `company` (the LO's CURRENT employer per NMLS licensing, not necessarily the company on the loans) are resolved server-side, and are absent for an id with no originator profile. `sort: [{field: "name"}]` orders by that resolved name across the top 10,000 originators by volume (`truncated` says when there are more).
|
|
1899
1900
|
*/
|
|
1900
1901
|
const companyOriginators = (options) => {
|
|
1901
1902
|
return (options.client ?? client).post({
|
|
@@ -582,7 +582,7 @@ var Agents = class {
|
|
|
582
582
|
}
|
|
583
583
|
/**
|
|
584
584
|
* Sales transactions where this agent was listing or selling side
|
|
585
|
-
* The agent's deals, newest first: every sale on which the agent is the buyer's agent or the listing / co-listing agent. `side` narrows to one half (`buyer` includes deals where the agent was on both sides; `listing` excludes them). Each row says which `side` the agent was on and carries the sale's recorded purchase `loan` — lender, loan officer, loan type, amount, title company — or `null` for a cash deal or a loan not yet on file. Pass `flatFilters.mlsStatus: "SLD"` for closed deals only.
|
|
585
|
+
* The agent's deals, newest first: every sale on which the agent is the buyer's agent or the listing / co-listing agent. `side` narrows to one half (`buyer` includes deals where the agent was on both sides; `listing` excludes them). Each row says which `side` the agent was on and carries the sale's recorded purchase `loan` — lender, loan officer, loan type, amount, title company — or `null` for a cash deal or a loan not yet on file. Pass `flatFilters.mlsStatus: "SLD"` for closed deals only. `dealFilters` adds an address `search`, the co-listing agent, builder / status-date filters and loan-side filters (`financed`, `loan.*` on the purchase loan). Sorts: the `/v1/sales` names plus `listDate`, `builder`, `coListAgent`, and the loan / party columns `loanAmount`, `loanType`, `loanTransactionType`, `interestRate`, `lenderName`, `originatorName`, `companyName`, `brokerName`, `titleCompany`, `buyerName`, `sellerName`, `downPayment` (one at a time; blanks last).
|
|
586
586
|
*/
|
|
587
587
|
static sales(options) {
|
|
588
588
|
return (options.client ?? client).post({
|
|
@@ -1987,6 +1987,7 @@ var Companies = class {
|
|
|
1987
1987
|
}
|
|
1988
1988
|
/**
|
|
1989
1989
|
* Loan officers who originated through this company
|
|
1990
|
+
* Ranks the loan officers on this company's loans (scope with `roleScope` — `tpo` for its third-party originators). `label` is the LO's NMLS id; `name` and `company` (the LO's CURRENT employer per NMLS licensing, not necessarily the company on the loans) are resolved server-side, and are absent for an id with no originator profile. `sort: [{field: "name"}]` orders by that resolved name across the top 10,000 originators by volume (`truncated` says when there are more).
|
|
1990
1991
|
*/
|
|
1991
1992
|
static originators(options) {
|
|
1992
1993
|
return (options.client ?? client).post({
|
package/openapi.json
CHANGED
|
@@ -4121,7 +4121,7 @@
|
|
|
4121
4121
|
"lists": {
|
|
4122
4122
|
"anyOf": [
|
|
4123
4123
|
{
|
|
4124
|
-
"description": "Every
|
|
4124
|
+
"description": "Every list in the caller's workspace that the caller can see (own, org-wide, or shared with them) and that holds this kind of record — People lists for originators and agents, Company lists for companies.",
|
|
4125
4125
|
"enum": [
|
|
4126
4126
|
"any"
|
|
4127
4127
|
],
|
|
@@ -4155,6 +4155,46 @@
|
|
|
4155
4155
|
],
|
|
4156
4156
|
"type": "object"
|
|
4157
4157
|
},
|
|
4158
|
+
"AgentDealFilters": {
|
|
4159
|
+
"additionalProperties": false,
|
|
4160
|
+
"description": "Deal filters beyond the sale `flatFilters`. Loan-side keys (`financed`, `loan`) and the loan / party sorts consider the newest 10,000 matching sales; `truncated` says when more matched.",
|
|
4161
|
+
"properties": {
|
|
4162
|
+
"coListAgentName": {
|
|
4163
|
+
"description": "Co-listing agent name: every word must start a word of the name the MLS recorded.",
|
|
4164
|
+
"maxLength": 100,
|
|
4165
|
+
"minLength": 1,
|
|
4166
|
+
"type": "string"
|
|
4167
|
+
},
|
|
4168
|
+
"financed": {
|
|
4169
|
+
"description": "`true`: deals with a purchase loan on file; `false`: none on file (cash, or not yet recorded).",
|
|
4170
|
+
"type": "boolean"
|
|
4171
|
+
},
|
|
4172
|
+
"hasBuilder": {
|
|
4173
|
+
"description": "`true`: new-construction sales with a builder named.",
|
|
4174
|
+
"type": "boolean"
|
|
4175
|
+
},
|
|
4176
|
+
"loan": {
|
|
4177
|
+
"$ref": "#/components/schemas/AgentSaleLoanFilters"
|
|
4178
|
+
},
|
|
4179
|
+
"search": {
|
|
4180
|
+
"description": "Address search: every word must start a word of the street line, city or ZIP (\"12 oak\" → 1200 Oakmont Dr).",
|
|
4181
|
+
"maxLength": 100,
|
|
4182
|
+
"minLength": 1,
|
|
4183
|
+
"type": "string"
|
|
4184
|
+
},
|
|
4185
|
+
"statusDate": {
|
|
4186
|
+
"allOf": [
|
|
4187
|
+
{
|
|
4188
|
+
"$ref": "#/components/schemas/DateFilterValue"
|
|
4189
|
+
},
|
|
4190
|
+
{
|
|
4191
|
+
"description": "MLS status-change date range. With `mlsStatus: \"ACT\"`, `{gte}` keeps listings still active recently."
|
|
4192
|
+
}
|
|
4193
|
+
]
|
|
4194
|
+
}
|
|
4195
|
+
},
|
|
4196
|
+
"type": "object"
|
|
4197
|
+
},
|
|
4158
4198
|
"AgentDetail": {
|
|
4159
4199
|
"allOf": [
|
|
4160
4200
|
{
|
|
@@ -6416,6 +6456,10 @@
|
|
|
6416
6456
|
},
|
|
6417
6457
|
"total": {
|
|
6418
6458
|
"type": "number"
|
|
6459
|
+
},
|
|
6460
|
+
"truncated": {
|
|
6461
|
+
"description": "`true` when more than 10,000 sales matched and a loan-side filter or a loan / party sort considered only the newest 10,000",
|
|
6462
|
+
"type": "boolean"
|
|
6419
6463
|
}
|
|
6420
6464
|
},
|
|
6421
6465
|
"required": [
|
|
@@ -6473,6 +6517,9 @@
|
|
|
6473
6517
|
"advancedFilters": {
|
|
6474
6518
|
"$ref": "#/components/schemas/FilterNode"
|
|
6475
6519
|
},
|
|
6520
|
+
"dealFilters": {
|
|
6521
|
+
"$ref": "#/components/schemas/AgentDealFilters"
|
|
6522
|
+
},
|
|
6476
6523
|
"filters": {
|
|
6477
6524
|
"$ref": "#/components/schemas/FilterNode"
|
|
6478
6525
|
},
|
|
@@ -6508,6 +6555,88 @@
|
|
|
6508
6555
|
},
|
|
6509
6556
|
"type": "object"
|
|
6510
6557
|
},
|
|
6558
|
+
"AgentSaleLoanFilters": {
|
|
6559
|
+
"additionalProperties": false,
|
|
6560
|
+
"description": "Filters on the sale's purchase loan (the row's `loan`), with the `/v1/loans` filter semantics. Any key here keeps only financed deals whose purchase loan matches.",
|
|
6561
|
+
"properties": {
|
|
6562
|
+
"broker": {
|
|
6563
|
+
"allOf": [
|
|
6564
|
+
{
|
|
6565
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6566
|
+
},
|
|
6567
|
+
{
|
|
6568
|
+
"description": "Broker shop NMLS id (digits only). A broker is a company — resolve a broker name to its NMLS id via instantSearch (or listCompanies)."
|
|
6569
|
+
}
|
|
6570
|
+
]
|
|
6571
|
+
},
|
|
6572
|
+
"conforming": {
|
|
6573
|
+
"$ref": "#/components/schemas/BooleanFilterValue"
|
|
6574
|
+
},
|
|
6575
|
+
"employer": {
|
|
6576
|
+
"allOf": [
|
|
6577
|
+
{
|
|
6578
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6579
|
+
},
|
|
6580
|
+
{
|
|
6581
|
+
"description": "Employer/company NMLS id (digits only). Resolve a company name to its NMLS id via instantSearch."
|
|
6582
|
+
}
|
|
6583
|
+
]
|
|
6584
|
+
},
|
|
6585
|
+
"interestRate": {
|
|
6586
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6587
|
+
},
|
|
6588
|
+
"lender": {
|
|
6589
|
+
"allOf": [
|
|
6590
|
+
{
|
|
6591
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6592
|
+
},
|
|
6593
|
+
{
|
|
6594
|
+
"description": "Lender ID — the normalized lender-dictionary key, NOT a fuzzy name match. Resolve a lender via instantSearch (or listLenders) and pass the `id` it returns (e.g. \"mortgage_rocket\" or \"mortgage rocket\"). Underscores and letter case are normalized, so either id surface works. A stored normalized lender name (what the `slice: \"lender\"` chart buckets emit) is also accepted, so a chart bucket key filters directly. A value that is neither returns 400 rather than silently matching nothing — to search by lender NAME, use `lenderName`."
|
|
6595
|
+
}
|
|
6596
|
+
]
|
|
6597
|
+
},
|
|
6598
|
+
"lenderName": {
|
|
6599
|
+
"allOf": [
|
|
6600
|
+
{
|
|
6601
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6602
|
+
},
|
|
6603
|
+
{
|
|
6604
|
+
"description": "Lender name as recorded on the loan document — fuzzy, all-terms match (e.g. \"Fifth Third\"). The name counterpart to the exact-id `lender` filter; use `lender` when you have a resolved id, and this when you only have a name."
|
|
6605
|
+
}
|
|
6606
|
+
]
|
|
6607
|
+
},
|
|
6608
|
+
"loanCompany": {
|
|
6609
|
+
"allOf": [
|
|
6610
|
+
{
|
|
6611
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6612
|
+
},
|
|
6613
|
+
{
|
|
6614
|
+
"description": "Funding/loan company NMLS id (digits only). Resolve a company name to its NMLS id via instantSearch."
|
|
6615
|
+
}
|
|
6616
|
+
]
|
|
6617
|
+
},
|
|
6618
|
+
"loanType": {
|
|
6619
|
+
"$ref": "#/components/schemas/LoanTypeFilterValue"
|
|
6620
|
+
},
|
|
6621
|
+
"mortgageAmount": {
|
|
6622
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6623
|
+
},
|
|
6624
|
+
"originator": {
|
|
6625
|
+
"allOf": [
|
|
6626
|
+
{
|
|
6627
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6628
|
+
},
|
|
6629
|
+
{
|
|
6630
|
+
"description": "Loan originator NMLS id (digits only). To search by name use `originatorName`, or resolve a name to its id via instantSearch."
|
|
6631
|
+
}
|
|
6632
|
+
]
|
|
6633
|
+
},
|
|
6634
|
+
"transactionType": {
|
|
6635
|
+
"$ref": "#/components/schemas/LoanTransactionTypeFilterValue"
|
|
6636
|
+
}
|
|
6637
|
+
},
|
|
6638
|
+
"type": "object"
|
|
6639
|
+
},
|
|
6511
6640
|
"AgentSaleSummary": {
|
|
6512
6641
|
"properties": {
|
|
6513
6642
|
"address": {
|
|
@@ -7026,6 +7155,10 @@
|
|
|
7026
7155
|
},
|
|
7027
7156
|
"total": {
|
|
7028
7157
|
"type": "number"
|
|
7158
|
+
},
|
|
7159
|
+
"truncated": {
|
|
7160
|
+
"description": "`true` when more than 10,000 sales matched and a loan-side filter or a loan / party sort considered only the newest 10,000",
|
|
7161
|
+
"type": "boolean"
|
|
7029
7162
|
}
|
|
7030
7163
|
},
|
|
7031
7164
|
"required": [
|
|
@@ -13379,7 +13512,7 @@
|
|
|
13379
13512
|
"BreakdownItem": {
|
|
13380
13513
|
"properties": {
|
|
13381
13514
|
"company": {
|
|
13382
|
-
"description": "Agent `originators` only: the LO's employer per NMLS licensing 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.",
|
|
13515
|
+
"description": "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.",
|
|
13383
13516
|
"properties": {
|
|
13384
13517
|
"name": {
|
|
13385
13518
|
"nullable": true,
|
|
@@ -13800,13 +13933,14 @@
|
|
|
13800
13933
|
"items": {
|
|
13801
13934
|
"properties": {
|
|
13802
13935
|
"field": {
|
|
13803
|
-
"description": "One of (case-insensitive): volume, units, label, pctVolume, pctUnits",
|
|
13936
|
+
"description": "One of (case-insensitive): volume, units, label, pctVolume, pctUnits, name",
|
|
13804
13937
|
"enum": [
|
|
13805
13938
|
"volume",
|
|
13806
13939
|
"units",
|
|
13807
13940
|
"label",
|
|
13808
13941
|
"pctVolume",
|
|
13809
|
-
"pctUnits"
|
|
13942
|
+
"pctUnits",
|
|
13943
|
+
"name"
|
|
13810
13944
|
],
|
|
13811
13945
|
"type": "string"
|
|
13812
13946
|
},
|
|
@@ -15525,6 +15659,47 @@
|
|
|
15525
15659
|
],
|
|
15526
15660
|
"type": "object"
|
|
15527
15661
|
},
|
|
15662
|
+
"CompanyCrmListFilter": {
|
|
15663
|
+
"additionalProperties": false,
|
|
15664
|
+
"description": "Scope the result to the caller's CRM. Resolved against the caller's ACTIVE WORKSPACE at query time — list membership is read server-side, so the request never carries member ids. Only company members count; people, branches, offices and manual (unlinked) records on the same list are ignored. `mode: \"in\"` with no matching members returns an empty page (not an unfiltered one). Errors: 400 `crm_list_requires_workspace` when the caller has no active workspace (API-key / OAuth callers must select an organization), 403 / 404 when a named list is not visible to the caller or does not exist, and 400 `crm_list_too_large` when the selected lists hold more than 50,000 companies in total — narrow the selection rather than get a silently partial answer.",
|
|
15665
|
+
"properties": {
|
|
15666
|
+
"lists": {
|
|
15667
|
+
"anyOf": [
|
|
15668
|
+
{
|
|
15669
|
+
"description": "Every list in the caller's workspace that the caller can see (own, org-wide, or shared with them) and that holds this kind of record — People lists for originators and agents, Company lists for companies.",
|
|
15670
|
+
"enum": [
|
|
15671
|
+
"any"
|
|
15672
|
+
],
|
|
15673
|
+
"type": "string"
|
|
15674
|
+
},
|
|
15675
|
+
{
|
|
15676
|
+
"description": "Specific CRM list ids (1–50).",
|
|
15677
|
+
"items": {
|
|
15678
|
+
"minLength": 1,
|
|
15679
|
+
"type": "string"
|
|
15680
|
+
},
|
|
15681
|
+
"maxItems": 50,
|
|
15682
|
+
"minItems": 1,
|
|
15683
|
+
"type": "array"
|
|
15684
|
+
}
|
|
15685
|
+
],
|
|
15686
|
+
"description": "Which lists: `\"any\"` for every Company list the caller can see, or an array of list ids. Membership is the UNION across the selected lists."
|
|
15687
|
+
},
|
|
15688
|
+
"mode": {
|
|
15689
|
+
"description": "`in` — only companies who are a member of the selected list(s). `notIn` — exclude every companie who is a member of the selected list(s); everyone else passes, including companies on none of your lists.",
|
|
15690
|
+
"enum": [
|
|
15691
|
+
"in",
|
|
15692
|
+
"notIn"
|
|
15693
|
+
],
|
|
15694
|
+
"type": "string"
|
|
15695
|
+
}
|
|
15696
|
+
},
|
|
15697
|
+
"required": [
|
|
15698
|
+
"mode",
|
|
15699
|
+
"lists"
|
|
15700
|
+
],
|
|
15701
|
+
"type": "object"
|
|
15702
|
+
},
|
|
15528
15703
|
"CompanyDetail": {
|
|
15529
15704
|
"allOf": [
|
|
15530
15705
|
{
|
|
@@ -16190,6 +16365,13 @@
|
|
|
16190
16365
|
"advancedFilters": {
|
|
16191
16366
|
"$ref": "#/components/schemas/FilterNode"
|
|
16192
16367
|
},
|
|
16368
|
+
"crmList": {
|
|
16369
|
+
"$ref": "#/components/schemas/CompanyCrmListFilter"
|
|
16370
|
+
},
|
|
16371
|
+
"excludeBrokerPartners": {
|
|
16372
|
+
"description": "`true`: hide the companies your workspace already partners with — a confidential partner roster your organization supplied to Model Match, attached to the workspace (today: Rocket Pro TPO partners). The roster is never returned; it is applied only as an exclusion. Errors: 400 `partner_set_requires_workspace` when the request has no active workspace, 403 `partner_set_unavailable` when the workspace has no partner roster. `false` or absent: no effect.",
|
|
16373
|
+
"type": "boolean"
|
|
16374
|
+
},
|
|
16193
16375
|
"filters": {
|
|
16194
16376
|
"$ref": "#/components/schemas/FilterNode"
|
|
16195
16377
|
},
|
|
@@ -16452,6 +16634,16 @@
|
|
|
16452
16634
|
"companyType": {
|
|
16453
16635
|
"$ref": "#/components/schemas/CompanyTypeFilterValue"
|
|
16454
16636
|
},
|
|
16637
|
+
"county": {
|
|
16638
|
+
"allOf": [
|
|
16639
|
+
{
|
|
16640
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
16641
|
+
},
|
|
16642
|
+
{
|
|
16643
|
+
"description": "Registered business address COUNTY — where the company is headquartered, NOT where it produced loans (same caveats as `state`; under `locationBasis: \"production\"` it selects companies that produced loans in the county instead). Accepts a county name (`Travis`, with a sibling `state` when the name exists in several states), a 5-digit FIPS code (`48453`) or a dictionary county id; an array matches any. The address carries no county of its own, so it matches when the geocoded point of the address lies inside the Census boundary of the county (a company with no geocoded address matches no county). An unrecognized county is a 400. For production INSIDE the geography this request names, read `scopedVolume`/`scopedUnits` on the same row, and sort by them to rank companies by it. There are two ways to get production for a geography: `POST /companies/{nmlsId}/markets` breaks ONE company's production out by market, and `POST /loans/analytics/chart` with `measure: \"volume\"`, `slice: \"loanCompany\"` and a geographic filter answers the reverse — the companies that actually produced in that geography, each with the volume they produced there."
|
|
16644
|
+
}
|
|
16645
|
+
]
|
|
16646
|
+
},
|
|
16455
16647
|
"difficultDevelopmentAreaCount": {
|
|
16456
16648
|
"allOf": [
|
|
16457
16649
|
{
|
|
@@ -16595,6 +16787,9 @@
|
|
|
16595
16787
|
],
|
|
16596
16788
|
"type": "string"
|
|
16597
16789
|
},
|
|
16790
|
+
"msa": {
|
|
16791
|
+
"$ref": "#/components/schemas/CompanyMsaFilterValue"
|
|
16792
|
+
},
|
|
16598
16793
|
"name": {
|
|
16599
16794
|
"allOf": [
|
|
16600
16795
|
{
|
|
@@ -16643,6 +16838,9 @@
|
|
|
16643
16838
|
"producersOnly": {
|
|
16644
16839
|
"$ref": "#/components/schemas/BooleanFilterValue"
|
|
16645
16840
|
},
|
|
16841
|
+
"region": {
|
|
16842
|
+
"$ref": "#/components/schemas/CompanyRegionFilterValue"
|
|
16843
|
+
},
|
|
16646
16844
|
"rosterJoined": {
|
|
16647
16845
|
"allOf": [
|
|
16648
16846
|
{
|
|
@@ -16796,7 +16994,7 @@
|
|
|
16796
16994
|
"$ref": "#/components/schemas/LenderMatchMode"
|
|
16797
16995
|
},
|
|
16798
16996
|
"locationBasis": {
|
|
16799
|
-
"description": "What the geographic filters (`city`/`state`/`zip`/`zipCode`/`geoPoint`) select. `registeredAddress` (the default) matches companies whose REGISTERED BUSINESS ADDRESS is in the place — a company registered elsewhere is excluded no matter how much it lends there. `production` matches companies that PRODUCED loans in the place, whatever address they are registered at, which is usually what a geographic search means. It changes only WHICH companies are returned: every non-geographic filter applies identically either way, `scopedVolume`/`scopedUnits` report in-geography production under both, and `countCompanies` honors this field, so a count and a list built from the same body always describe the same set. Measured on an 8-state Southeast search: under `registeredAddress` the largest actual producer in the region is absent at any depth, because it is registered in Michigan.",
|
|
16997
|
+
"description": "What the geographic filters (`city`/`county`/`msa`/`region`/`state`/`zip`/`zipCode`/`geoPoint`) select. `registeredAddress` (the default) matches companies whose REGISTERED BUSINESS ADDRESS is in the place — a company registered elsewhere is excluded no matter how much it lends there. `production` matches companies that PRODUCED loans in the place, whatever address they are registered at, which is usually what a geographic search means. It changes only WHICH companies are returned: every non-geographic filter applies identically either way, `scopedVolume`/`scopedUnits` report in-geography production under both, and `countCompanies` honors this field, so a count and a list built from the same body always describe the same set. Measured on an 8-state Southeast search: under `registeredAddress` the largest actual producer in the region is absent at any depth, because it is registered in Michigan.",
|
|
16800
16998
|
"enum": [
|
|
16801
16999
|
"registeredAddress",
|
|
16802
17000
|
"production"
|
|
@@ -17787,8 +17985,27 @@
|
|
|
17787
17985
|
],
|
|
17788
17986
|
"type": "object"
|
|
17789
17987
|
},
|
|
17988
|
+
"CompanyMsaFilterValue": {
|
|
17989
|
+
"anyOf": [
|
|
17990
|
+
{
|
|
17991
|
+
"type": "string"
|
|
17992
|
+
},
|
|
17993
|
+
{
|
|
17994
|
+
"items": {
|
|
17995
|
+
"type": "string"
|
|
17996
|
+
},
|
|
17997
|
+
"maxItems": 50,
|
|
17998
|
+
"minItems": 1,
|
|
17999
|
+
"type": "array"
|
|
18000
|
+
},
|
|
18001
|
+
{
|
|
18002
|
+
"nullable": true
|
|
18003
|
+
}
|
|
18004
|
+
],
|
|
18005
|
+
"description": "Registered business address METRO AREA (MSA / CBSA) — companies headquartered in ANY county of the metro (the address point inside the boundary of a member county, as for `county`); under `locationBasis: \"production\"`, companies that produced loans in it. 5-digit CBSA code (`12420`) or metro name (`Austin Metro`); an array matches any. Top-50 metros use the Model Match app's county lists, the rest OMB 2023. Unknown/ambiguous names are a 400 naming candidates."
|
|
18006
|
+
},
|
|
17790
18007
|
"CompanyProductMixFilter": {
|
|
17791
|
-
"description": "Loan-product share bands for the selected period, ANDed: `[{product:\"fha\", minShare:30}]` = FHA is at least 30% of the company's period volume. Whole-book
|
|
18008
|
+
"description": "Loan-product share / volume bands for the selected period, ANDed: `[{product:\"fha\", minShare:30}]` = FHA is at least 30% of the company's period volume; `[{product:\"va\", volume:{gte:5000000}}]` = at least $5M of VA. `products` lets ANY of several types satisfy one entry. Whole-book figures across all markets.",
|
|
17792
18009
|
"items": {
|
|
17793
18010
|
"additionalProperties": false,
|
|
17794
18011
|
"properties": {
|
|
@@ -17813,6 +18030,7 @@
|
|
|
17813
18030
|
"type": "number"
|
|
17814
18031
|
},
|
|
17815
18032
|
"product": {
|
|
18033
|
+
"description": "The loan product. Send this OR `products`, not both.",
|
|
17816
18034
|
"enum": [
|
|
17817
18035
|
"conventional",
|
|
17818
18036
|
"fha",
|
|
@@ -17839,17 +18057,112 @@
|
|
|
17839
18057
|
"unknown"
|
|
17840
18058
|
],
|
|
17841
18059
|
"type": "string"
|
|
18060
|
+
},
|
|
18061
|
+
"products": {
|
|
18062
|
+
"description": "Several products, ANY of which may satisfy the bounds on its own (each type's share is read separately, never summed): `{products:[\"fha\",\"va\",\"usda\"], minShare:30}` = FHA, VA or USDA is on its own at least 30% of the book. Send this OR `product`.",
|
|
18063
|
+
"items": {
|
|
18064
|
+
"enum": [
|
|
18065
|
+
"conventional",
|
|
18066
|
+
"fha",
|
|
18067
|
+
"va",
|
|
18068
|
+
"he",
|
|
18069
|
+
"heloc",
|
|
18070
|
+
"building",
|
|
18071
|
+
"commercial",
|
|
18072
|
+
"stand_alone_refi",
|
|
18073
|
+
"closed_end",
|
|
18074
|
+
"reverse",
|
|
18075
|
+
"usda",
|
|
18076
|
+
"stand_alone_second",
|
|
18077
|
+
"aggregate",
|
|
18078
|
+
"seller_take_back",
|
|
18079
|
+
"sba_participation_trust_deed",
|
|
18080
|
+
"balloon",
|
|
18081
|
+
"opened_end",
|
|
18082
|
+
"assumption",
|
|
18083
|
+
"negative_amortization",
|
|
18084
|
+
"land_contract",
|
|
18085
|
+
"trade",
|
|
18086
|
+
"modification",
|
|
18087
|
+
"unknown"
|
|
18088
|
+
],
|
|
18089
|
+
"type": "string"
|
|
18090
|
+
},
|
|
18091
|
+
"maxItems": 10,
|
|
18092
|
+
"minItems": 1,
|
|
18093
|
+
"type": "array"
|
|
18094
|
+
},
|
|
18095
|
+
"volume": {
|
|
18096
|
+
"additionalProperties": false,
|
|
18097
|
+
"description": "Dollar volume of THIS type in the period, `{gte, lte}` — e.g. `{gte: 5000000}` = at least $5M of FHA. Evaluated inside the same type bucket as the share bounds; a company with no loans of the type does not match.",
|
|
18098
|
+
"properties": {
|
|
18099
|
+
"gte": {
|
|
18100
|
+
"minimum": 0,
|
|
18101
|
+
"type": "number"
|
|
18102
|
+
},
|
|
18103
|
+
"lte": {
|
|
18104
|
+
"minimum": 0,
|
|
18105
|
+
"type": "number"
|
|
18106
|
+
}
|
|
18107
|
+
},
|
|
18108
|
+
"type": "object"
|
|
17842
18109
|
}
|
|
17843
18110
|
},
|
|
17844
|
-
"required": [
|
|
17845
|
-
"product"
|
|
17846
|
-
],
|
|
17847
18111
|
"type": "object"
|
|
17848
18112
|
},
|
|
17849
18113
|
"maxItems": 10,
|
|
17850
18114
|
"minItems": 1,
|
|
17851
18115
|
"type": "array"
|
|
17852
18116
|
},
|
|
18117
|
+
"CompanyRegionFilterValue": {
|
|
18118
|
+
"anyOf": [
|
|
18119
|
+
{
|
|
18120
|
+
"enum": [
|
|
18121
|
+
"northeast",
|
|
18122
|
+
"northeast-division-1",
|
|
18123
|
+
"northeast-division-2",
|
|
18124
|
+
"midwest",
|
|
18125
|
+
"midwest-division-3",
|
|
18126
|
+
"midwest-division-4",
|
|
18127
|
+
"south",
|
|
18128
|
+
"south-division-5",
|
|
18129
|
+
"south-division-6",
|
|
18130
|
+
"south-division-7",
|
|
18131
|
+
"west",
|
|
18132
|
+
"west-division-8",
|
|
18133
|
+
"west-division-9"
|
|
18134
|
+
],
|
|
18135
|
+
"type": "string"
|
|
18136
|
+
},
|
|
18137
|
+
{
|
|
18138
|
+
"items": {
|
|
18139
|
+
"enum": [
|
|
18140
|
+
"northeast",
|
|
18141
|
+
"northeast-division-1",
|
|
18142
|
+
"northeast-division-2",
|
|
18143
|
+
"midwest",
|
|
18144
|
+
"midwest-division-3",
|
|
18145
|
+
"midwest-division-4",
|
|
18146
|
+
"south",
|
|
18147
|
+
"south-division-5",
|
|
18148
|
+
"south-division-6",
|
|
18149
|
+
"south-division-7",
|
|
18150
|
+
"west",
|
|
18151
|
+
"west-division-8",
|
|
18152
|
+
"west-division-9"
|
|
18153
|
+
],
|
|
18154
|
+
"type": "string"
|
|
18155
|
+
},
|
|
18156
|
+
"maxItems": 50,
|
|
18157
|
+
"minItems": 1,
|
|
18158
|
+
"type": "array"
|
|
18159
|
+
},
|
|
18160
|
+
{
|
|
18161
|
+
"nullable": true
|
|
18162
|
+
}
|
|
18163
|
+
],
|
|
18164
|
+
"description": "Registered business address CENSUS REGION / DIVISION (`<region>-division-<n>`, Census numbering 1–9) — companies headquartered in ANY state of it; under `locationBasis: \"production\"`, companies that produced loans in it. An array matches any."
|
|
18165
|
+
},
|
|
17853
18166
|
"CompanyRegistration": {
|
|
17854
18167
|
"nullable": true,
|
|
17855
18168
|
"properties": {
|
|
@@ -19562,6 +19875,21 @@
|
|
|
19562
19875
|
"UNKNOWN"
|
|
19563
19876
|
],
|
|
19564
19877
|
"type": "string"
|
|
19878
|
+
},
|
|
19879
|
+
"volume": {
|
|
19880
|
+
"additionalProperties": false,
|
|
19881
|
+
"description": "Dollar volume of THIS type in the period, `{gte, lte}` — e.g. `{gte: 5000000}` = at least $5M of FHA. Evaluated inside the same type bucket as the share bounds; a company with no loans of the type does not match.",
|
|
19882
|
+
"properties": {
|
|
19883
|
+
"gte": {
|
|
19884
|
+
"minimum": 0,
|
|
19885
|
+
"type": "number"
|
|
19886
|
+
},
|
|
19887
|
+
"lte": {
|
|
19888
|
+
"minimum": 0,
|
|
19889
|
+
"type": "number"
|
|
19890
|
+
}
|
|
19891
|
+
},
|
|
19892
|
+
"type": "object"
|
|
19565
19893
|
}
|
|
19566
19894
|
},
|
|
19567
19895
|
"required": [
|
|
@@ -33769,7 +34097,7 @@
|
|
|
33769
34097
|
"lists": {
|
|
33770
34098
|
"anyOf": [
|
|
33771
34099
|
{
|
|
33772
|
-
"description": "Every
|
|
34100
|
+
"description": "Every list in the caller's workspace that the caller can see (own, org-wide, or shared with them) and that holds this kind of record — People lists for originators and agents, Company lists for companies.",
|
|
33773
34101
|
"enum": [
|
|
33774
34102
|
"any"
|
|
33775
34103
|
],
|
|
@@ -34603,6 +34931,11 @@
|
|
|
34603
34931
|
}
|
|
34604
34932
|
]
|
|
34605
34933
|
},
|
|
34934
|
+
"companyNamePrefix": {
|
|
34935
|
+
"description": "Current company name prefix search: each word starts a word of it (\"guild mort\"); not fuzzy. Digits = company NMLS id.",
|
|
34936
|
+
"minLength": 1,
|
|
34937
|
+
"type": "string"
|
|
34938
|
+
},
|
|
34606
34939
|
"companyNmlsId": {
|
|
34607
34940
|
"$ref": "#/components/schemas/TextFilterValue"
|
|
34608
34941
|
},
|
|
@@ -42527,7 +42860,7 @@
|
|
|
42527
42860
|
"info": {
|
|
42528
42861
|
"description": "ModelMatch API — mortgage and real-estate market data.\n\n## Bulk delivery limits\n\nThe `POST /{entity}/bulk-delivery` endpoints export a full result set to\nS3 as NDJSON, JSON, CSV, or Parquet.\n\n- **Up to 5,000 rows per delivery: no entitlement required.** Available to\n every authenticated caller.\n- **Above 5,000 rows: requires the entity's `bulk-delivery.{entity}`\n entitlement** (e.g. `bulk-delivery.loans`). The grant's scope sets your\n row ceiling and may also restrict which rows and fields you receive.\n\nA delivery that would exceed the limit available to you is rejected with\n`403 entitlement_missing`, reporting the matched row count and the ceiling\nthat applied. To stay under the limit, pass `limit` — the job then delivers\n(and bills for) only the first `limit` rows of a broader query.\n\n**Need a higher limit?** Email support@modelmatch.com to request the\nentitlement. Limits are raised per organization and per entity.\n\nBulk delivery is billed at 1 credit per delivered row whether or not\nan entitlement is held.\n\nInstead of a download, a delivery can be sent to a push target configured\non your workspace: pass `destination: { type: \"push-target\", targetId }`.\nThe same limits and billing apply.",
|
|
42529
42862
|
"title": "ModelMatch API",
|
|
42530
|
-
"version": "3.
|
|
42863
|
+
"version": "3.82.0"
|
|
42531
42864
|
},
|
|
42532
42865
|
"openapi": "3.1.0",
|
|
42533
42866
|
"paths": {
|
|
@@ -45101,7 +45434,7 @@
|
|
|
45101
45434
|
},
|
|
45102
45435
|
"/v1/agents/{id}/sales": {
|
|
45103
45436
|
"post": {
|
|
45104
|
-
"description": "The agent's deals, newest first: every sale on which the agent is the buyer's agent or the listing / co-listing agent. `side` narrows to one half (`buyer` includes deals where the agent was on both sides; `listing` excludes them). Each row says which `side` the agent was on and carries the sale's recorded purchase `loan` — lender, loan officer, loan type, amount, title company — or `null` for a cash deal or a loan not yet on file. Pass `flatFilters.mlsStatus: \"SLD\"` for closed deals only.",
|
|
45437
|
+
"description": "The agent's deals, newest first: every sale on which the agent is the buyer's agent or the listing / co-listing agent. `side` narrows to one half (`buyer` includes deals where the agent was on both sides; `listing` excludes them). Each row says which `side` the agent was on and carries the sale's recorded purchase `loan` — lender, loan officer, loan type, amount, title company — or `null` for a cash deal or a loan not yet on file. Pass `flatFilters.mlsStatus: \"SLD\"` for closed deals only. `dealFilters` adds an address `search`, the co-listing agent, builder / status-date filters and loan-side filters (`financed`, `loan.*` on the purchase loan). Sorts: the `/v1/sales` names plus `listDate`, `builder`, `coListAgent`, and the loan / party columns `loanAmount`, `loanType`, `loanTransactionType`, `interestRate`, `lenderName`, `originatorName`, `companyName`, `brokerName`, `titleCompany`, `buyerName`, `sellerName`, `downPayment` (one at a time; blanks last).",
|
|
45105
45438
|
"operationId": "agentSales",
|
|
45106
45439
|
"parameters": [
|
|
45107
45440
|
{
|
|
@@ -50994,6 +51327,7 @@
|
|
|
50994
51327
|
},
|
|
50995
51328
|
"/v1/companies/{nmlsId}/breakdowns/originators": {
|
|
50996
51329
|
"post": {
|
|
51330
|
+
"description": "Ranks the loan officers on this company's loans (scope with `roleScope` — `tpo` for its third-party originators). `label` is the LO's NMLS id; `name` and `company` (the LO's CURRENT employer per NMLS licensing, not necessarily the company on the loans) are resolved server-side, and are absent for an id with no originator profile. `sort: [{field: \"name\"}]` orders by that resolved name across the top 10,000 originators by volume (`truncated` says when there are more).",
|
|
50997
51331
|
"operationId": "companyOriginators",
|
|
50998
51332
|
"parameters": [
|
|
50999
51333
|
{
|