@model-match/api 3.26.0 → 3.27.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-DUGoaOHS.d.mts → index-DKSn-0DO.d.mts} +205 -8
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/slim/index.d.mts +13 -3
- package/dist/slim/index.mjs +29 -3
- package/dist/{src-BA7GY3xL.mjs → src-C2QtRet2.mjs} +27 -1
- package/openapi.json +784 -8
- package/package.json +2 -2
package/openapi.json
CHANGED
|
@@ -5994,6 +5994,313 @@
|
|
|
5994
5994
|
],
|
|
5995
5995
|
"type": "object"
|
|
5996
5996
|
},
|
|
5997
|
+
"AgentMortgagedTimeSeriesRequest": {
|
|
5998
|
+
"additionalProperties": false,
|
|
5999
|
+
"properties": {
|
|
6000
|
+
"advancedFilters": {
|
|
6001
|
+
"$ref": "#/components/schemas/FilterNode"
|
|
6002
|
+
},
|
|
6003
|
+
"filters": {
|
|
6004
|
+
"$ref": "#/components/schemas/FilterNode"
|
|
6005
|
+
},
|
|
6006
|
+
"flatFilters": {
|
|
6007
|
+
"additionalProperties": false,
|
|
6008
|
+
"properties": {
|
|
6009
|
+
"borrowerStatus": {
|
|
6010
|
+
"$ref": "#/components/schemas/LoanBorrowerStatusFilterValue"
|
|
6011
|
+
},
|
|
6012
|
+
"broker": {
|
|
6013
|
+
"allOf": [
|
|
6014
|
+
{
|
|
6015
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6016
|
+
},
|
|
6017
|
+
{
|
|
6018
|
+
"description": "Broker shop NMLS id (digits only). A broker is a company — resolve a broker name to its NMLS id via instantSearch (or listCompanies)."
|
|
6019
|
+
}
|
|
6020
|
+
]
|
|
6021
|
+
},
|
|
6022
|
+
"buyerEntityType": {
|
|
6023
|
+
"$ref": "#/components/schemas/BooleanFilterValue"
|
|
6024
|
+
},
|
|
6025
|
+
"city": {
|
|
6026
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6027
|
+
},
|
|
6028
|
+
"conforming": {
|
|
6029
|
+
"$ref": "#/components/schemas/BooleanFilterValue"
|
|
6030
|
+
},
|
|
6031
|
+
"county": {
|
|
6032
|
+
"allOf": [
|
|
6033
|
+
{
|
|
6034
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6035
|
+
},
|
|
6036
|
+
{
|
|
6037
|
+
"description": "County name (e.g. \"Broward\") or 5-digit FIPS code. Names resolve to FIPS server-side; include a `state` filter to disambiguate."
|
|
6038
|
+
}
|
|
6039
|
+
]
|
|
6040
|
+
},
|
|
6041
|
+
"currentBalance": {
|
|
6042
|
+
"allOf": [
|
|
6043
|
+
{
|
|
6044
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6045
|
+
},
|
|
6046
|
+
{
|
|
6047
|
+
"description": "Estimated remaining principal balance (~19% populated). Approximate current equity as `homeValue` (AVM) minus this."
|
|
6048
|
+
}
|
|
6049
|
+
]
|
|
6050
|
+
},
|
|
6051
|
+
"employer": {
|
|
6052
|
+
"allOf": [
|
|
6053
|
+
{
|
|
6054
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6055
|
+
},
|
|
6056
|
+
{
|
|
6057
|
+
"description": "Employer/company NMLS id (digits only). Resolve a company name to its NMLS id via instantSearch."
|
|
6058
|
+
}
|
|
6059
|
+
]
|
|
6060
|
+
},
|
|
6061
|
+
"equity": {
|
|
6062
|
+
"allOf": [
|
|
6063
|
+
{
|
|
6064
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6065
|
+
},
|
|
6066
|
+
{
|
|
6067
|
+
"description": "Point-in-time equity recorded on the loan (sparse, ~10%). NOT a live current-equity figure. For HELOC/cash-out targeting on up-to-date equity, use properties search (listProperties) instead — its equity is far better populated and current."
|
|
6068
|
+
}
|
|
6069
|
+
]
|
|
6070
|
+
},
|
|
6071
|
+
"excludeBroker": {
|
|
6072
|
+
"allOf": [
|
|
6073
|
+
{
|
|
6074
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6075
|
+
},
|
|
6076
|
+
{
|
|
6077
|
+
"description": "Exclude loans brokered by this broker-shop NMLS id (digits only) — the inverse of `broker`."
|
|
6078
|
+
}
|
|
6079
|
+
]
|
|
6080
|
+
},
|
|
6081
|
+
"excludeCity": {
|
|
6082
|
+
"allOf": [
|
|
6083
|
+
{
|
|
6084
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6085
|
+
},
|
|
6086
|
+
{
|
|
6087
|
+
"description": "Exclude loans in this city — the inverse of `city`."
|
|
6088
|
+
}
|
|
6089
|
+
]
|
|
6090
|
+
},
|
|
6091
|
+
"excludeLender": {
|
|
6092
|
+
"allOf": [
|
|
6093
|
+
{
|
|
6094
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6095
|
+
},
|
|
6096
|
+
{
|
|
6097
|
+
"description": "Exclude loans from this lender ID (\"everyone but X\") — the inverse of `lender`, same id contract (resolve via instantSearch/listLenders). Loans with no lender stay in the results."
|
|
6098
|
+
}
|
|
6099
|
+
]
|
|
6100
|
+
},
|
|
6101
|
+
"excludeLoanCompany": {
|
|
6102
|
+
"allOf": [
|
|
6103
|
+
{
|
|
6104
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6105
|
+
},
|
|
6106
|
+
{
|
|
6107
|
+
"description": "Exclude loans funded by this company NMLS id (digits only) — the inverse of `loanCompany`."
|
|
6108
|
+
}
|
|
6109
|
+
]
|
|
6110
|
+
},
|
|
6111
|
+
"excludeOriginator": {
|
|
6112
|
+
"allOf": [
|
|
6113
|
+
{
|
|
6114
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6115
|
+
},
|
|
6116
|
+
{
|
|
6117
|
+
"description": "Exclude loans with this originator NMLS id (digits only) — the inverse of `originator`. Common for 'everyone but my own shop' lists."
|
|
6118
|
+
}
|
|
6119
|
+
]
|
|
6120
|
+
},
|
|
6121
|
+
"excludeState": {
|
|
6122
|
+
"allOf": [
|
|
6123
|
+
{
|
|
6124
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6125
|
+
},
|
|
6126
|
+
{
|
|
6127
|
+
"description": "Exclude loans in this state (2-letter code, e.g. \"CA\") — the inverse of `state`. For \"everywhere but this state\" lists."
|
|
6128
|
+
}
|
|
6129
|
+
]
|
|
6130
|
+
},
|
|
6131
|
+
"excludeZipCode": {
|
|
6132
|
+
"allOf": [
|
|
6133
|
+
{
|
|
6134
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6135
|
+
},
|
|
6136
|
+
{
|
|
6137
|
+
"description": "Exclude loans in this ZIP code — the inverse of `zipCode`."
|
|
6138
|
+
}
|
|
6139
|
+
]
|
|
6140
|
+
},
|
|
6141
|
+
"fips": {
|
|
6142
|
+
"allOf": [
|
|
6143
|
+
{
|
|
6144
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6145
|
+
},
|
|
6146
|
+
{
|
|
6147
|
+
"description": "Exact 5-digit county FIPS code (no name resolution) — the code-only escape hatch alongside `county`."
|
|
6148
|
+
}
|
|
6149
|
+
]
|
|
6150
|
+
},
|
|
6151
|
+
"geoPoint": {
|
|
6152
|
+
"$ref": "#/components/schemas/GeoFilterValue"
|
|
6153
|
+
},
|
|
6154
|
+
"homeValue": {
|
|
6155
|
+
"allOf": [
|
|
6156
|
+
{
|
|
6157
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6158
|
+
},
|
|
6159
|
+
{
|
|
6160
|
+
"description": "AVM (automated valuation) at the linked property (~26%, MLS-linked). Pair with `currentBalance` to approximate current equity."
|
|
6161
|
+
}
|
|
6162
|
+
]
|
|
6163
|
+
},
|
|
6164
|
+
"includeUnknownOriginator": {
|
|
6165
|
+
"allOf": [
|
|
6166
|
+
{
|
|
6167
|
+
"$ref": "#/components/schemas/BooleanFilterValue"
|
|
6168
|
+
},
|
|
6169
|
+
{
|
|
6170
|
+
"description": "Include loans that have no originator NMLS id. Omitted/false (default): such loans are excluded — the vast majority are pre-2016 public records with no linkable originator. true: include them. Note that the default scopes results to loans with a known originator (~2016+ recordings)."
|
|
6171
|
+
}
|
|
6172
|
+
]
|
|
6173
|
+
},
|
|
6174
|
+
"interestRate": {
|
|
6175
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6176
|
+
},
|
|
6177
|
+
"lender": {
|
|
6178
|
+
"allOf": [
|
|
6179
|
+
{
|
|
6180
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6181
|
+
},
|
|
6182
|
+
{
|
|
6183
|
+
"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`."
|
|
6184
|
+
}
|
|
6185
|
+
]
|
|
6186
|
+
},
|
|
6187
|
+
"lenderName": {
|
|
6188
|
+
"allOf": [
|
|
6189
|
+
{
|
|
6190
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6191
|
+
},
|
|
6192
|
+
{
|
|
6193
|
+
"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."
|
|
6194
|
+
}
|
|
6195
|
+
]
|
|
6196
|
+
},
|
|
6197
|
+
"loanCompany": {
|
|
6198
|
+
"allOf": [
|
|
6199
|
+
{
|
|
6200
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6201
|
+
},
|
|
6202
|
+
{
|
|
6203
|
+
"description": "Funding/loan company NMLS id (digits only). Resolve a company name to its NMLS id via instantSearch."
|
|
6204
|
+
}
|
|
6205
|
+
]
|
|
6206
|
+
},
|
|
6207
|
+
"loanType": {
|
|
6208
|
+
"$ref": "#/components/schemas/LoanTypeFilterValue"
|
|
6209
|
+
},
|
|
6210
|
+
"ltvAtOrigination": {
|
|
6211
|
+
"allOf": [
|
|
6212
|
+
{
|
|
6213
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6214
|
+
},
|
|
6215
|
+
{
|
|
6216
|
+
"description": "Loan-to-value at ORIGINATION (sparse), as a PERCENT on a 0-100 scale (`80` = 80% LTV; values above 100 are real underwater loans). This is not a current LTV — there is no stored current-LTV field on loans."
|
|
6217
|
+
}
|
|
6218
|
+
]
|
|
6219
|
+
},
|
|
6220
|
+
"mode": {
|
|
6221
|
+
"enum": [
|
|
6222
|
+
"and",
|
|
6223
|
+
"or"
|
|
6224
|
+
],
|
|
6225
|
+
"type": "string"
|
|
6226
|
+
},
|
|
6227
|
+
"mortgageAmount": {
|
|
6228
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6229
|
+
},
|
|
6230
|
+
"mortgageDate": {
|
|
6231
|
+
"$ref": "#/components/schemas/DateFilterValue"
|
|
6232
|
+
},
|
|
6233
|
+
"originator": {
|
|
6234
|
+
"allOf": [
|
|
6235
|
+
{
|
|
6236
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6237
|
+
},
|
|
6238
|
+
{
|
|
6239
|
+
"description": "Loan originator NMLS id (digits only). To search by name use `originatorName`, or resolve a name to its id via instantSearch."
|
|
6240
|
+
}
|
|
6241
|
+
]
|
|
6242
|
+
},
|
|
6243
|
+
"originatorName": {
|
|
6244
|
+
"allOf": [
|
|
6245
|
+
{
|
|
6246
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6247
|
+
},
|
|
6248
|
+
{
|
|
6249
|
+
"deprecated": true,
|
|
6250
|
+
"description": "DEPRECATED — fuzzy name matching is unreliable (same originator can return wildly different counts by name string). Resolve the loan officer via instantSearch and filter by `originator` (exact NMLS id) instead. Still functional for now."
|
|
6251
|
+
}
|
|
6252
|
+
]
|
|
6253
|
+
},
|
|
6254
|
+
"propertyId": {
|
|
6255
|
+
"allOf": [
|
|
6256
|
+
{
|
|
6257
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6258
|
+
},
|
|
6259
|
+
{
|
|
6260
|
+
"description": "Parcel id — returns every loan recorded against one property. Pass the same string this endpoint returns as `mmPropertyId` on a loan row, or the `mmPropertyId` of a property record.\n\nThis is the parcel's FULL recorded loan history, which is deliberately wider than the loans embedded on a property record: that embed is a snapshot of what is still owed (up to five currently-active loans), so paid-off mortgages are absent from it and present here.\n\nMulti-unit caveat: loans carry a unit-blind parcel id, so for one unit of a multi-unit building this selects every unit in the building, not that unit alone."
|
|
6261
|
+
}
|
|
6262
|
+
]
|
|
6263
|
+
},
|
|
6264
|
+
"saleDate": {
|
|
6265
|
+
"$ref": "#/components/schemas/DateFilterValue"
|
|
6266
|
+
},
|
|
6267
|
+
"salePrice": {
|
|
6268
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6269
|
+
},
|
|
6270
|
+
"state": {
|
|
6271
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6272
|
+
},
|
|
6273
|
+
"transactionType": {
|
|
6274
|
+
"$ref": "#/components/schemas/LoanTransactionTypeFilterValue"
|
|
6275
|
+
},
|
|
6276
|
+
"zip": {
|
|
6277
|
+
"allOf": [
|
|
6278
|
+
{
|
|
6279
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6280
|
+
},
|
|
6281
|
+
{
|
|
6282
|
+
"description": "Alias of `zipCode` — same ZIP filter, accepted for cross-entity key parity."
|
|
6283
|
+
}
|
|
6284
|
+
]
|
|
6285
|
+
},
|
|
6286
|
+
"zipCode": {
|
|
6287
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6288
|
+
}
|
|
6289
|
+
},
|
|
6290
|
+
"type": "object"
|
|
6291
|
+
},
|
|
6292
|
+
"interval": {
|
|
6293
|
+
"$ref": "#/components/schemas/Interval"
|
|
6294
|
+
},
|
|
6295
|
+
"period": {
|
|
6296
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
6297
|
+
},
|
|
6298
|
+
"side": {
|
|
6299
|
+
"$ref": "#/components/schemas/AgentSide"
|
|
6300
|
+
}
|
|
6301
|
+
},
|
|
6302
|
+
"type": "object"
|
|
6303
|
+
},
|
|
5997
6304
|
"AgentProductMixEntry": {
|
|
5998
6305
|
"additionalProperties": false,
|
|
5999
6306
|
"properties": {
|
|
@@ -6141,6 +6448,17 @@
|
|
|
6141
6448
|
"AgentSaleSummary": {
|
|
6142
6449
|
"properties": {
|
|
6143
6450
|
"address": {
|
|
6451
|
+
"description": "Full street line — number, directionals, street name, suffix and unit (`123 w 4th st`), lowercase",
|
|
6452
|
+
"nullable": true,
|
|
6453
|
+
"type": "string"
|
|
6454
|
+
},
|
|
6455
|
+
"builderName": {
|
|
6456
|
+
"description": "Builder, on a new-construction sale",
|
|
6457
|
+
"nullable": true,
|
|
6458
|
+
"type": "string"
|
|
6459
|
+
},
|
|
6460
|
+
"buyerName": {
|
|
6461
|
+
"description": "First buyer named on the sale — from the purchase loan's document when the MLS record names none; `null` on most cash deals",
|
|
6144
6462
|
"nullable": true,
|
|
6145
6463
|
"type": "string"
|
|
6146
6464
|
},
|
|
@@ -6148,6 +6466,16 @@
|
|
|
6148
6466
|
"nullable": true,
|
|
6149
6467
|
"type": "string"
|
|
6150
6468
|
},
|
|
6469
|
+
"coListAgentId": {
|
|
6470
|
+
"description": "Co-listing agent's id (`GET /v1/agents/{id}`), when the sale's agent key resolves to one agent",
|
|
6471
|
+
"nullable": true,
|
|
6472
|
+
"type": "string"
|
|
6473
|
+
},
|
|
6474
|
+
"coListAgentName": {
|
|
6475
|
+
"description": "Co-listing agent, as the MLS recorded the name",
|
|
6476
|
+
"nullable": true,
|
|
6477
|
+
"type": "string"
|
|
6478
|
+
},
|
|
6151
6479
|
"date": {
|
|
6152
6480
|
"nullable": true,
|
|
6153
6481
|
"type": "string"
|
|
@@ -6155,10 +6483,25 @@
|
|
|
6155
6483
|
"id": {
|
|
6156
6484
|
"type": "string"
|
|
6157
6485
|
},
|
|
6486
|
+
"listAgentId": {
|
|
6487
|
+
"description": "Listing agent's id (`GET /v1/agents/{id}`), when the sale's agent key resolves to one agent",
|
|
6488
|
+
"nullable": true,
|
|
6489
|
+
"type": "string"
|
|
6490
|
+
},
|
|
6158
6491
|
"listAgentName": {
|
|
6159
6492
|
"nullable": true,
|
|
6160
6493
|
"type": "string"
|
|
6161
6494
|
},
|
|
6495
|
+
"listDate": {
|
|
6496
|
+
"description": "MLS listing date (`YYYY-MM-DD`); days on market = `date` − `listDate`",
|
|
6497
|
+
"nullable": true,
|
|
6498
|
+
"type": "string"
|
|
6499
|
+
},
|
|
6500
|
+
"listPrice": {
|
|
6501
|
+
"description": "Last MLS list price",
|
|
6502
|
+
"nullable": true,
|
|
6503
|
+
"type": "number"
|
|
6504
|
+
},
|
|
6162
6505
|
"loan": {
|
|
6163
6506
|
"description": "The purchase loan recorded against this sale (matched on the sale id), or `null` when none is recorded — a cash deal, or a loan not yet on file.",
|
|
6164
6507
|
"nullable": true,
|
|
@@ -6167,6 +6510,11 @@
|
|
|
6167
6510
|
"nullable": true,
|
|
6168
6511
|
"type": "number"
|
|
6169
6512
|
},
|
|
6513
|
+
"brokerName": {
|
|
6514
|
+
"description": "Mortgage broker as written on the loan document, when the loan was third-party originated",
|
|
6515
|
+
"nullable": true,
|
|
6516
|
+
"type": "string"
|
|
6517
|
+
},
|
|
6170
6518
|
"brokerNmlsId": {
|
|
6171
6519
|
"description": "Mortgage broker NMLS id when the loan was third-party originated",
|
|
6172
6520
|
"nullable": true,
|
|
@@ -6185,6 +6533,11 @@
|
|
|
6185
6533
|
"description": "Loan id (`GET /v1/loans/{id}`)",
|
|
6186
6534
|
"type": "string"
|
|
6187
6535
|
},
|
|
6536
|
+
"interestRate": {
|
|
6537
|
+
"description": "Note rate in percent (e.g. `6.25`), recorded or modeled; `null` when not on file",
|
|
6538
|
+
"nullable": true,
|
|
6539
|
+
"type": "number"
|
|
6540
|
+
},
|
|
6188
6541
|
"lenderId": {
|
|
6189
6542
|
"description": "Normalized lender key — the value the `lender` filter accepts",
|
|
6190
6543
|
"nullable": true,
|
|
@@ -6234,10 +6587,20 @@
|
|
|
6234
6587
|
],
|
|
6235
6588
|
"type": "object"
|
|
6236
6589
|
},
|
|
6590
|
+
"mmPropertyId": {
|
|
6591
|
+
"description": "The property's id (`GET /v1/properties/{id}`)",
|
|
6592
|
+
"nullable": true,
|
|
6593
|
+
"type": "string"
|
|
6594
|
+
},
|
|
6237
6595
|
"price": {
|
|
6238
6596
|
"nullable": true,
|
|
6239
6597
|
"type": "number"
|
|
6240
6598
|
},
|
|
6599
|
+
"sellerName": {
|
|
6600
|
+
"description": "First seller named on the sale — from the purchase loan's document when the MLS record names none",
|
|
6601
|
+
"nullable": true,
|
|
6602
|
+
"type": "string"
|
|
6603
|
+
},
|
|
6241
6604
|
"side": {
|
|
6242
6605
|
"description": "Which side of this deal the agent was on: `buyer`, `listing`, or `dual` (both). `null` when the sale names the agent under an id this API cannot place on a side.",
|
|
6243
6606
|
"enum": [
|
|
@@ -6249,6 +6612,11 @@
|
|
|
6249
6612
|
"nullable": true,
|
|
6250
6613
|
"type": "string"
|
|
6251
6614
|
},
|
|
6615
|
+
"soldAgentId": {
|
|
6616
|
+
"description": "Buyer's (selling) agent's id (`GET /v1/agents/{id}`), when the sale's agent key resolves to one agent",
|
|
6617
|
+
"nullable": true,
|
|
6618
|
+
"type": "string"
|
|
6619
|
+
},
|
|
6252
6620
|
"soldAgentName": {
|
|
6253
6621
|
"nullable": true,
|
|
6254
6622
|
"type": "string"
|
|
@@ -6272,6 +6640,316 @@
|
|
|
6272
6640
|
],
|
|
6273
6641
|
"type": "object"
|
|
6274
6642
|
},
|
|
6643
|
+
"AgentSalesBreakdownRequest": {
|
|
6644
|
+
"additionalProperties": false,
|
|
6645
|
+
"properties": {
|
|
6646
|
+
"advancedFilters": {
|
|
6647
|
+
"$ref": "#/components/schemas/FilterNode"
|
|
6648
|
+
},
|
|
6649
|
+
"filters": {
|
|
6650
|
+
"$ref": "#/components/schemas/FilterNode"
|
|
6651
|
+
},
|
|
6652
|
+
"flatFilters": {
|
|
6653
|
+
"additionalProperties": false,
|
|
6654
|
+
"properties": {
|
|
6655
|
+
"borrowerStatus": {
|
|
6656
|
+
"$ref": "#/components/schemas/LoanBorrowerStatusFilterValue"
|
|
6657
|
+
},
|
|
6658
|
+
"broker": {
|
|
6659
|
+
"allOf": [
|
|
6660
|
+
{
|
|
6661
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6662
|
+
},
|
|
6663
|
+
{
|
|
6664
|
+
"description": "Broker shop NMLS id (digits only). A broker is a company — resolve a broker name to its NMLS id via instantSearch (or listCompanies)."
|
|
6665
|
+
}
|
|
6666
|
+
]
|
|
6667
|
+
},
|
|
6668
|
+
"buyerEntityType": {
|
|
6669
|
+
"$ref": "#/components/schemas/BooleanFilterValue"
|
|
6670
|
+
},
|
|
6671
|
+
"city": {
|
|
6672
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6673
|
+
},
|
|
6674
|
+
"conforming": {
|
|
6675
|
+
"$ref": "#/components/schemas/BooleanFilterValue"
|
|
6676
|
+
},
|
|
6677
|
+
"county": {
|
|
6678
|
+
"allOf": [
|
|
6679
|
+
{
|
|
6680
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6681
|
+
},
|
|
6682
|
+
{
|
|
6683
|
+
"description": "County name (e.g. \"Broward\") or 5-digit FIPS code. Names resolve to FIPS server-side; include a `state` filter to disambiguate."
|
|
6684
|
+
}
|
|
6685
|
+
]
|
|
6686
|
+
},
|
|
6687
|
+
"currentBalance": {
|
|
6688
|
+
"allOf": [
|
|
6689
|
+
{
|
|
6690
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6691
|
+
},
|
|
6692
|
+
{
|
|
6693
|
+
"description": "Estimated remaining principal balance (~19% populated). Approximate current equity as `homeValue` (AVM) minus this."
|
|
6694
|
+
}
|
|
6695
|
+
]
|
|
6696
|
+
},
|
|
6697
|
+
"employer": {
|
|
6698
|
+
"allOf": [
|
|
6699
|
+
{
|
|
6700
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6701
|
+
},
|
|
6702
|
+
{
|
|
6703
|
+
"description": "Employer/company NMLS id (digits only). Resolve a company name to its NMLS id via instantSearch."
|
|
6704
|
+
}
|
|
6705
|
+
]
|
|
6706
|
+
},
|
|
6707
|
+
"equity": {
|
|
6708
|
+
"allOf": [
|
|
6709
|
+
{
|
|
6710
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6711
|
+
},
|
|
6712
|
+
{
|
|
6713
|
+
"description": "Point-in-time equity recorded on the loan (sparse, ~10%). NOT a live current-equity figure. For HELOC/cash-out targeting on up-to-date equity, use properties search (listProperties) instead — its equity is far better populated and current."
|
|
6714
|
+
}
|
|
6715
|
+
]
|
|
6716
|
+
},
|
|
6717
|
+
"excludeBroker": {
|
|
6718
|
+
"allOf": [
|
|
6719
|
+
{
|
|
6720
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6721
|
+
},
|
|
6722
|
+
{
|
|
6723
|
+
"description": "Exclude loans brokered by this broker-shop NMLS id (digits only) — the inverse of `broker`."
|
|
6724
|
+
}
|
|
6725
|
+
]
|
|
6726
|
+
},
|
|
6727
|
+
"excludeCity": {
|
|
6728
|
+
"allOf": [
|
|
6729
|
+
{
|
|
6730
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6731
|
+
},
|
|
6732
|
+
{
|
|
6733
|
+
"description": "Exclude loans in this city — the inverse of `city`."
|
|
6734
|
+
}
|
|
6735
|
+
]
|
|
6736
|
+
},
|
|
6737
|
+
"excludeLender": {
|
|
6738
|
+
"allOf": [
|
|
6739
|
+
{
|
|
6740
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6741
|
+
},
|
|
6742
|
+
{
|
|
6743
|
+
"description": "Exclude loans from this lender ID (\"everyone but X\") — the inverse of `lender`, same id contract (resolve via instantSearch/listLenders). Loans with no lender stay in the results."
|
|
6744
|
+
}
|
|
6745
|
+
]
|
|
6746
|
+
},
|
|
6747
|
+
"excludeLoanCompany": {
|
|
6748
|
+
"allOf": [
|
|
6749
|
+
{
|
|
6750
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6751
|
+
},
|
|
6752
|
+
{
|
|
6753
|
+
"description": "Exclude loans funded by this company NMLS id (digits only) — the inverse of `loanCompany`."
|
|
6754
|
+
}
|
|
6755
|
+
]
|
|
6756
|
+
},
|
|
6757
|
+
"excludeOriginator": {
|
|
6758
|
+
"allOf": [
|
|
6759
|
+
{
|
|
6760
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6761
|
+
},
|
|
6762
|
+
{
|
|
6763
|
+
"description": "Exclude loans with this originator NMLS id (digits only) — the inverse of `originator`. Common for 'everyone but my own shop' lists."
|
|
6764
|
+
}
|
|
6765
|
+
]
|
|
6766
|
+
},
|
|
6767
|
+
"excludeState": {
|
|
6768
|
+
"allOf": [
|
|
6769
|
+
{
|
|
6770
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6771
|
+
},
|
|
6772
|
+
{
|
|
6773
|
+
"description": "Exclude loans in this state (2-letter code, e.g. \"CA\") — the inverse of `state`. For \"everywhere but this state\" lists."
|
|
6774
|
+
}
|
|
6775
|
+
]
|
|
6776
|
+
},
|
|
6777
|
+
"excludeZipCode": {
|
|
6778
|
+
"allOf": [
|
|
6779
|
+
{
|
|
6780
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6781
|
+
},
|
|
6782
|
+
{
|
|
6783
|
+
"description": "Exclude loans in this ZIP code — the inverse of `zipCode`."
|
|
6784
|
+
}
|
|
6785
|
+
]
|
|
6786
|
+
},
|
|
6787
|
+
"fips": {
|
|
6788
|
+
"allOf": [
|
|
6789
|
+
{
|
|
6790
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6791
|
+
},
|
|
6792
|
+
{
|
|
6793
|
+
"description": "Exact 5-digit county FIPS code (no name resolution) — the code-only escape hatch alongside `county`."
|
|
6794
|
+
}
|
|
6795
|
+
]
|
|
6796
|
+
},
|
|
6797
|
+
"geoPoint": {
|
|
6798
|
+
"$ref": "#/components/schemas/GeoFilterValue"
|
|
6799
|
+
},
|
|
6800
|
+
"homeValue": {
|
|
6801
|
+
"allOf": [
|
|
6802
|
+
{
|
|
6803
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6804
|
+
},
|
|
6805
|
+
{
|
|
6806
|
+
"description": "AVM (automated valuation) at the linked property (~26%, MLS-linked). Pair with `currentBalance` to approximate current equity."
|
|
6807
|
+
}
|
|
6808
|
+
]
|
|
6809
|
+
},
|
|
6810
|
+
"includeUnknownOriginator": {
|
|
6811
|
+
"allOf": [
|
|
6812
|
+
{
|
|
6813
|
+
"$ref": "#/components/schemas/BooleanFilterValue"
|
|
6814
|
+
},
|
|
6815
|
+
{
|
|
6816
|
+
"description": "Include loans that have no originator NMLS id. Omitted/false (default): such loans are excluded — the vast majority are pre-2016 public records with no linkable originator. true: include them. Note that the default scopes results to loans with a known originator (~2016+ recordings)."
|
|
6817
|
+
}
|
|
6818
|
+
]
|
|
6819
|
+
},
|
|
6820
|
+
"interestRate": {
|
|
6821
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6822
|
+
},
|
|
6823
|
+
"lender": {
|
|
6824
|
+
"allOf": [
|
|
6825
|
+
{
|
|
6826
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6827
|
+
},
|
|
6828
|
+
{
|
|
6829
|
+
"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`."
|
|
6830
|
+
}
|
|
6831
|
+
]
|
|
6832
|
+
},
|
|
6833
|
+
"lenderName": {
|
|
6834
|
+
"allOf": [
|
|
6835
|
+
{
|
|
6836
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6837
|
+
},
|
|
6838
|
+
{
|
|
6839
|
+
"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."
|
|
6840
|
+
}
|
|
6841
|
+
]
|
|
6842
|
+
},
|
|
6843
|
+
"loanCompany": {
|
|
6844
|
+
"allOf": [
|
|
6845
|
+
{
|
|
6846
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6847
|
+
},
|
|
6848
|
+
{
|
|
6849
|
+
"description": "Funding/loan company NMLS id (digits only). Resolve a company name to its NMLS id via instantSearch."
|
|
6850
|
+
}
|
|
6851
|
+
]
|
|
6852
|
+
},
|
|
6853
|
+
"loanType": {
|
|
6854
|
+
"$ref": "#/components/schemas/LoanTypeFilterValue"
|
|
6855
|
+
},
|
|
6856
|
+
"ltvAtOrigination": {
|
|
6857
|
+
"allOf": [
|
|
6858
|
+
{
|
|
6859
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6860
|
+
},
|
|
6861
|
+
{
|
|
6862
|
+
"description": "Loan-to-value at ORIGINATION (sparse), as a PERCENT on a 0-100 scale (`80` = 80% LTV; values above 100 are real underwater loans). This is not a current LTV — there is no stored current-LTV field on loans."
|
|
6863
|
+
}
|
|
6864
|
+
]
|
|
6865
|
+
},
|
|
6866
|
+
"mode": {
|
|
6867
|
+
"enum": [
|
|
6868
|
+
"and",
|
|
6869
|
+
"or"
|
|
6870
|
+
],
|
|
6871
|
+
"type": "string"
|
|
6872
|
+
},
|
|
6873
|
+
"mortgageAmount": {
|
|
6874
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6875
|
+
},
|
|
6876
|
+
"mortgageDate": {
|
|
6877
|
+
"$ref": "#/components/schemas/DateFilterValue"
|
|
6878
|
+
},
|
|
6879
|
+
"originator": {
|
|
6880
|
+
"allOf": [
|
|
6881
|
+
{
|
|
6882
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6883
|
+
},
|
|
6884
|
+
{
|
|
6885
|
+
"description": "Loan originator NMLS id (digits only). To search by name use `originatorName`, or resolve a name to its id via instantSearch."
|
|
6886
|
+
}
|
|
6887
|
+
]
|
|
6888
|
+
},
|
|
6889
|
+
"originatorName": {
|
|
6890
|
+
"allOf": [
|
|
6891
|
+
{
|
|
6892
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6893
|
+
},
|
|
6894
|
+
{
|
|
6895
|
+
"deprecated": true,
|
|
6896
|
+
"description": "DEPRECATED — fuzzy name matching is unreliable (same originator can return wildly different counts by name string). Resolve the loan officer via instantSearch and filter by `originator` (exact NMLS id) instead. Still functional for now."
|
|
6897
|
+
}
|
|
6898
|
+
]
|
|
6899
|
+
},
|
|
6900
|
+
"propertyId": {
|
|
6901
|
+
"allOf": [
|
|
6902
|
+
{
|
|
6903
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6904
|
+
},
|
|
6905
|
+
{
|
|
6906
|
+
"description": "Parcel id — returns every loan recorded against one property. Pass the same string this endpoint returns as `mmPropertyId` on a loan row, or the `mmPropertyId` of a property record.\n\nThis is the parcel's FULL recorded loan history, which is deliberately wider than the loans embedded on a property record: that embed is a snapshot of what is still owed (up to five currently-active loans), so paid-off mortgages are absent from it and present here.\n\nMulti-unit caveat: loans carry a unit-blind parcel id, so for one unit of a multi-unit building this selects every unit in the building, not that unit alone."
|
|
6907
|
+
}
|
|
6908
|
+
]
|
|
6909
|
+
},
|
|
6910
|
+
"saleDate": {
|
|
6911
|
+
"$ref": "#/components/schemas/DateFilterValue"
|
|
6912
|
+
},
|
|
6913
|
+
"salePrice": {
|
|
6914
|
+
"$ref": "#/components/schemas/NumericFilterValue"
|
|
6915
|
+
},
|
|
6916
|
+
"state": {
|
|
6917
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6918
|
+
},
|
|
6919
|
+
"transactionType": {
|
|
6920
|
+
"$ref": "#/components/schemas/LoanTransactionTypeFilterValue"
|
|
6921
|
+
},
|
|
6922
|
+
"zip": {
|
|
6923
|
+
"allOf": [
|
|
6924
|
+
{
|
|
6925
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6926
|
+
},
|
|
6927
|
+
{
|
|
6928
|
+
"description": "Alias of `zipCode` — same ZIP filter, accepted for cross-entity key parity."
|
|
6929
|
+
}
|
|
6930
|
+
]
|
|
6931
|
+
},
|
|
6932
|
+
"zipCode": {
|
|
6933
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
6934
|
+
}
|
|
6935
|
+
},
|
|
6936
|
+
"type": "object"
|
|
6937
|
+
},
|
|
6938
|
+
"pagination": {
|
|
6939
|
+
"$ref": "#/components/schemas/Pagination"
|
|
6940
|
+
},
|
|
6941
|
+
"period": {
|
|
6942
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
6943
|
+
},
|
|
6944
|
+
"side": {
|
|
6945
|
+
"$ref": "#/components/schemas/AgentSide"
|
|
6946
|
+
},
|
|
6947
|
+
"sort": {
|
|
6948
|
+
"$ref": "#/components/schemas/BreakdownSort"
|
|
6949
|
+
}
|
|
6950
|
+
},
|
|
6951
|
+
"type": "object"
|
|
6952
|
+
},
|
|
6275
6953
|
"AgentSalesResponse": {
|
|
6276
6954
|
"properties": {
|
|
6277
6955
|
"cursor": {
|
|
@@ -32189,7 +32867,7 @@
|
|
|
32189
32867
|
"type": "object"
|
|
32190
32868
|
},
|
|
32191
32869
|
"OriginatorAgentSide": {
|
|
32192
|
-
"description": "Which agent on the LO's loans to rank. `buyer` (default): the buyer's (selling) agent — the agent who brought the borrower. `listing`: the seller's listing
|
|
32870
|
+
"description": "Which agent on the LO's loans to rank. `buyer` (default): the buyer's (selling) agent — the agent who brought the borrower. `listing`: the seller's listing and co-listing agents.",
|
|
32193
32871
|
"enum": [
|
|
32194
32872
|
"buyer",
|
|
32195
32873
|
"listing"
|
|
@@ -41783,7 +42461,7 @@
|
|
|
41783
42461
|
"info": {
|
|
41784
42462
|
"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.",
|
|
41785
42463
|
"title": "ModelMatch API",
|
|
41786
|
-
"version": "3.
|
|
42464
|
+
"version": "3.79.0"
|
|
41787
42465
|
},
|
|
41788
42466
|
"openapi": "3.1.0",
|
|
41789
42467
|
"paths": {
|
|
@@ -42947,6 +43625,99 @@
|
|
|
42947
43625
|
]
|
|
42948
43626
|
}
|
|
42949
43627
|
},
|
|
43628
|
+
"/v1/agents/{id}/analytics/mortgaged-time-series": {
|
|
43629
|
+
"post": {
|
|
43630
|
+
"description": "Scoped to the agent's FINANCED deals: recorded loans on which the agent is the buyer's agent or the listing / co-listing agent, matched through the agent's MLS ids. Cash deals carry no loan and are not counted. The date window is the loan's recording date. One bucket per `interval` (default monthly): `units` = financed deals recorded in the bucket, `volume` = their total loan amount (out-of-range fill amounts excluded and counted in `excluded`). `previous` is the same series for the prior window. `side` defaults to `any`; `buyer` + `listing` = `any` per bucket. Pair with `agentAnalyticsTimeSeries` (closed sales by sale date) for a mortgaged-vs-total chart — the two use different date axes (loan recording vs sale close), so a deal can land a month apart.",
|
|
43631
|
+
"operationId": "agentMortgagedTimeSeries",
|
|
43632
|
+
"parameters": [
|
|
43633
|
+
{
|
|
43634
|
+
"description": "Agent document ID",
|
|
43635
|
+
"in": "path",
|
|
43636
|
+
"name": "id",
|
|
43637
|
+
"required": true,
|
|
43638
|
+
"schema": {
|
|
43639
|
+
"description": "Agent document ID",
|
|
43640
|
+
"type": "string"
|
|
43641
|
+
}
|
|
43642
|
+
}
|
|
43643
|
+
],
|
|
43644
|
+
"requestBody": {
|
|
43645
|
+
"content": {
|
|
43646
|
+
"application/json": {
|
|
43647
|
+
"schema": {
|
|
43648
|
+
"$ref": "#/components/schemas/AgentMortgagedTimeSeriesRequest"
|
|
43649
|
+
}
|
|
43650
|
+
}
|
|
43651
|
+
}
|
|
43652
|
+
},
|
|
43653
|
+
"responses": {
|
|
43654
|
+
"200": {
|
|
43655
|
+
"content": {
|
|
43656
|
+
"application/json": {
|
|
43657
|
+
"schema": {
|
|
43658
|
+
"$ref": "#/components/schemas/SimpleTimeSeriesResponse"
|
|
43659
|
+
}
|
|
43660
|
+
}
|
|
43661
|
+
},
|
|
43662
|
+
"description": "Financed deals and loan volume per bucket"
|
|
43663
|
+
},
|
|
43664
|
+
"400": {
|
|
43665
|
+
"content": {
|
|
43666
|
+
"application/json": {
|
|
43667
|
+
"schema": {
|
|
43668
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
43669
|
+
}
|
|
43670
|
+
}
|
|
43671
|
+
},
|
|
43672
|
+
"description": "Validation error"
|
|
43673
|
+
},
|
|
43674
|
+
"401": {
|
|
43675
|
+
"content": {
|
|
43676
|
+
"application/json": {
|
|
43677
|
+
"schema": {
|
|
43678
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
43679
|
+
}
|
|
43680
|
+
}
|
|
43681
|
+
},
|
|
43682
|
+
"description": "Unauthorized"
|
|
43683
|
+
},
|
|
43684
|
+
"403": {
|
|
43685
|
+
"content": {
|
|
43686
|
+
"application/json": {
|
|
43687
|
+
"schema": {
|
|
43688
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
43689
|
+
}
|
|
43690
|
+
}
|
|
43691
|
+
},
|
|
43692
|
+
"description": "Forbidden (authenticated, but missing required context — e.g. no active organization)"
|
|
43693
|
+
},
|
|
43694
|
+
"404": {
|
|
43695
|
+
"content": {
|
|
43696
|
+
"application/json": {
|
|
43697
|
+
"schema": {
|
|
43698
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
43699
|
+
}
|
|
43700
|
+
}
|
|
43701
|
+
},
|
|
43702
|
+
"description": "Not found"
|
|
43703
|
+
},
|
|
43704
|
+
"413": {
|
|
43705
|
+
"content": {
|
|
43706
|
+
"application/json": {
|
|
43707
|
+
"schema": {
|
|
43708
|
+
"$ref": "#/components/schemas/PayloadTooLarge"
|
|
43709
|
+
}
|
|
43710
|
+
}
|
|
43711
|
+
},
|
|
43712
|
+
"description": "Response payload too large — detail endpoint capped to fit Lambda response limits"
|
|
43713
|
+
}
|
|
43714
|
+
},
|
|
43715
|
+
"summary": "The agent's financed deals and loan volume, over time",
|
|
43716
|
+
"tags": [
|
|
43717
|
+
"Agents"
|
|
43718
|
+
]
|
|
43719
|
+
}
|
|
43720
|
+
},
|
|
42950
43721
|
"/v1/agents/{id}/breakdowns/builders": {
|
|
42951
43722
|
"post": {
|
|
42952
43723
|
"description": "New-construction builders named on the agent's deals in the period, ranked by units. The pre-aggregated builder list carries a deal COUNT only, so every row's `volume` and `pctVolume` are 0 — rank and share by `units` / `pctUnits` (a share of ALL the agent's deals in the period, so the rows sum to the builder-sold share, not to 1). It carries no buyer/listing split either: `side` must be `any` (or omitted); `buyer`/`listing` return 400.",
|
|
@@ -43042,6 +43813,7 @@
|
|
|
43042
43813
|
},
|
|
43043
43814
|
"/v1/agents/{id}/breakdowns/cities": {
|
|
43044
43815
|
"post": {
|
|
43816
|
+
"description": "Ranks the agent's CLOSED sales (MLS status sold, a real sale price — rentals and lease listings excluded, duplicate MLS records of one sale counted once) by this dimension. The same population `POST /v1/agents/{id}/sales` returns with `flatFilters.mlsStatus: \"SLD\"` and the agent analytics routes count. `side` narrows to the deals the agent was on that side of (`buyer` includes deals on both sides; `buyer` + `listing` = `any`).",
|
|
43045
43817
|
"operationId": "agentCities",
|
|
43046
43818
|
"parameters": [
|
|
43047
43819
|
{
|
|
@@ -43059,7 +43831,7 @@
|
|
|
43059
43831
|
"content": {
|
|
43060
43832
|
"application/json": {
|
|
43061
43833
|
"schema": {
|
|
43062
|
-
"$ref": "#/components/schemas/
|
|
43834
|
+
"$ref": "#/components/schemas/AgentSalesBreakdownRequest"
|
|
43063
43835
|
}
|
|
43064
43836
|
}
|
|
43065
43837
|
}
|
|
@@ -43226,6 +43998,7 @@
|
|
|
43226
43998
|
},
|
|
43227
43999
|
"/v1/agents/{id}/breakdowns/counties": {
|
|
43228
44000
|
"post": {
|
|
44001
|
+
"description": "Ranks the agent's CLOSED sales (MLS status sold, a real sale price — rentals and lease listings excluded, duplicate MLS records of one sale counted once) by this dimension. The same population `POST /v1/agents/{id}/sales` returns with `flatFilters.mlsStatus: \"SLD\"` and the agent analytics routes count. `side` narrows to the deals the agent was on that side of (`buyer` includes deals on both sides; `buyer` + `listing` = `any`).",
|
|
43229
44002
|
"operationId": "agentCounties",
|
|
43230
44003
|
"parameters": [
|
|
43231
44004
|
{
|
|
@@ -43243,7 +44016,7 @@
|
|
|
43243
44016
|
"content": {
|
|
43244
44017
|
"application/json": {
|
|
43245
44018
|
"schema": {
|
|
43246
|
-
"$ref": "#/components/schemas/
|
|
44019
|
+
"$ref": "#/components/schemas/AgentSalesBreakdownRequest"
|
|
43247
44020
|
}
|
|
43248
44021
|
}
|
|
43249
44022
|
}
|
|
@@ -43410,6 +44183,7 @@
|
|
|
43410
44183
|
},
|
|
43411
44184
|
"/v1/agents/{id}/breakdowns/offices": {
|
|
43412
44185
|
"post": {
|
|
44186
|
+
"description": "Ranks the agent's CLOSED sales (MLS status sold, a real sale price — rentals and lease listings excluded, duplicate MLS records of one sale counted once) by this dimension. The same population `POST /v1/agents/{id}/sales` returns with `flatFilters.mlsStatus: \"SLD\"` and the agent analytics routes count. `side` narrows to the deals the agent was on that side of (`buyer` includes deals on both sides; `buyer` + `listing` = `any`).",
|
|
43413
44187
|
"operationId": "agentOffices",
|
|
43414
44188
|
"parameters": [
|
|
43415
44189
|
{
|
|
@@ -43427,7 +44201,7 @@
|
|
|
43427
44201
|
"content": {
|
|
43428
44202
|
"application/json": {
|
|
43429
44203
|
"schema": {
|
|
43430
|
-
"$ref": "#/components/schemas/
|
|
44204
|
+
"$ref": "#/components/schemas/AgentSalesBreakdownRequest"
|
|
43431
44205
|
}
|
|
43432
44206
|
}
|
|
43433
44207
|
}
|
|
@@ -43594,6 +44368,7 @@
|
|
|
43594
44368
|
},
|
|
43595
44369
|
"/v1/agents/{id}/breakdowns/states": {
|
|
43596
44370
|
"post": {
|
|
44371
|
+
"description": "Ranks the agent's CLOSED sales (MLS status sold, a real sale price — rentals and lease listings excluded, duplicate MLS records of one sale counted once) by this dimension. The same population `POST /v1/agents/{id}/sales` returns with `flatFilters.mlsStatus: \"SLD\"` and the agent analytics routes count. `side` narrows to the deals the agent was on that side of (`buyer` includes deals on both sides; `buyer` + `listing` = `any`).",
|
|
43597
44372
|
"operationId": "agentStates",
|
|
43598
44373
|
"parameters": [
|
|
43599
44374
|
{
|
|
@@ -43611,7 +44386,7 @@
|
|
|
43611
44386
|
"content": {
|
|
43612
44387
|
"application/json": {
|
|
43613
44388
|
"schema": {
|
|
43614
|
-
"$ref": "#/components/schemas/
|
|
44389
|
+
"$ref": "#/components/schemas/AgentSalesBreakdownRequest"
|
|
43615
44390
|
}
|
|
43616
44391
|
}
|
|
43617
44392
|
}
|
|
@@ -43872,6 +44647,7 @@
|
|
|
43872
44647
|
},
|
|
43873
44648
|
"/v1/agents/{id}/breakdowns/zip-codes": {
|
|
43874
44649
|
"post": {
|
|
44650
|
+
"description": "Ranks the agent's CLOSED sales (MLS status sold, a real sale price — rentals and lease listings excluded, duplicate MLS records of one sale counted once) by this dimension. The same population `POST /v1/agents/{id}/sales` returns with `flatFilters.mlsStatus: \"SLD\"` and the agent analytics routes count. `side` narrows to the deals the agent was on that side of (`buyer` includes deals on both sides; `buyer` + `listing` = `any`).",
|
|
43875
44651
|
"operationId": "agentZipCodes",
|
|
43876
44652
|
"parameters": [
|
|
43877
44653
|
{
|
|
@@ -43889,7 +44665,7 @@
|
|
|
43889
44665
|
"content": {
|
|
43890
44666
|
"application/json": {
|
|
43891
44667
|
"schema": {
|
|
43892
|
-
"$ref": "#/components/schemas/
|
|
44668
|
+
"$ref": "#/components/schemas/AgentSalesBreakdownRequest"
|
|
43893
44669
|
}
|
|
43894
44670
|
}
|
|
43895
44671
|
}
|
|
@@ -69029,7 +69805,7 @@
|
|
|
69029
69805
|
},
|
|
69030
69806
|
"/v1/originators/{nmlsId}/breakdowns/agents": {
|
|
69031
69807
|
"post": {
|
|
69032
|
-
"description": "Ranks the real-estate agents on this LO's loans, by volume — the buyer's agent by default, the listing
|
|
69808
|
+
"description": "Ranks the real-estate agents on this LO's loans, by volume — the buyer's agent by default, the listing and co-listing agents with `side: \"listing\"`. Each loan is credited to the agent its MLS agent keys resolve to (a key naming several different people credits only the confirmed one), so `units` counts distinct loans per agent. `id` is that agent's id (pass it to `GET /v1/agents/{id}`); absent when the loan's key matches no agent profile, in which case `label` is the name the MLS recorded. Names that are an MLS placeholder for \"no agent recorded\" (`non member`, `non listed agent`, and ~140 board-specific spellings) are excluded — they are not people. Percentages are shares of the LO's whole loan population, so they do not sum to 100 across the page.",
|
|
69033
69809
|
"operationId": "originatorAgents",
|
|
69034
69810
|
"parameters": [
|
|
69035
69811
|
{
|