@model-match/api 3.35.0 → 3.37.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--dHVpmdx.d.mts → index-CSsb9sR0.d.mts} +2567 -153
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/slim/index.d.mts +77 -24
- package/dist/slim/index.mjs +232 -15
- package/dist/{src-BERwJQdR.mjs → src-Drg2qi1O.mjs} +235 -14
- package/openapi.json +7224 -987
- package/package.json +2 -2
package/dist/slim/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E as client, n as createClient } from "../src-Drg2qi1O.mjs";
|
|
2
2
|
//#region src/slim/sdk.gen.ts
|
|
3
3
|
/**
|
|
4
4
|
* An LO's sponsorship / registration links (admin)
|
|
@@ -18,10 +18,43 @@ const adminGetCadLinks = (options) => {
|
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
21
|
+
* List contact submissions (admin)
|
|
22
|
+
* Newest first. Default `status=needs_review`: pre-checked submissions waiting for a decision.
|
|
23
23
|
*/
|
|
24
|
-
const
|
|
24
|
+
const adminListContactSubmissions = (options) => {
|
|
25
|
+
return (options?.client ?? client).get({
|
|
26
|
+
security: [{
|
|
27
|
+
name: "x-api-key",
|
|
28
|
+
type: "apiKey"
|
|
29
|
+
}, {
|
|
30
|
+
scheme: "bearer",
|
|
31
|
+
type: "http"
|
|
32
|
+
}],
|
|
33
|
+
url: "/v1/admin/contact-submissions",
|
|
34
|
+
...options
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Approved contact values for one person (admin)
|
|
39
|
+
*/
|
|
40
|
+
const adminListApprovedContacts = (options) => {
|
|
41
|
+
return (options.client ?? client).get({
|
|
42
|
+
security: [{
|
|
43
|
+
name: "x-api-key",
|
|
44
|
+
type: "apiKey"
|
|
45
|
+
}, {
|
|
46
|
+
scheme: "bearer",
|
|
47
|
+
type: "http"
|
|
48
|
+
}],
|
|
49
|
+
url: "/v1/admin/contact-submissions/approved",
|
|
50
|
+
...options
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Revoke an approved contact value (admin)
|
|
55
|
+
* Already revoked → 200 with the row unchanged.
|
|
56
|
+
*/
|
|
57
|
+
const adminRevokeApprovedContact = (options) => {
|
|
25
58
|
return (options.client ?? client).post({
|
|
26
59
|
security: [{
|
|
27
60
|
name: "x-api-key",
|
|
@@ -30,7 +63,7 @@ const adminLaunchCadLoad = (options) => {
|
|
|
30
63
|
scheme: "bearer",
|
|
31
64
|
type: "http"
|
|
32
65
|
}],
|
|
33
|
-
url: "/v1/admin/
|
|
66
|
+
url: "/v1/admin/contact-submissions/approved/{id}/revoke",
|
|
34
67
|
...options,
|
|
35
68
|
headers: {
|
|
36
69
|
"Content-Type": "application/json",
|
|
@@ -39,10 +72,9 @@ const adminLaunchCadLoad = (options) => {
|
|
|
39
72
|
});
|
|
40
73
|
};
|
|
41
74
|
/**
|
|
42
|
-
*
|
|
43
|
-
* ECS lifecycle of a `load-cad` task. `succeeded` = exited 0 (load completed or paused); `failed` = any other stop. Per-file progress is in the task logs and the load bookkeeping tables.
|
|
75
|
+
* One contact submission with its subject and approved values (admin)
|
|
44
76
|
*/
|
|
45
|
-
const
|
|
77
|
+
const adminGetContactSubmission = (options) => {
|
|
46
78
|
return (options.client ?? client).get({
|
|
47
79
|
security: [{
|
|
48
80
|
name: "x-api-key",
|
|
@@ -51,11 +83,32 @@ const adminGetCadLoadTask = (options) => {
|
|
|
51
83
|
scheme: "bearer",
|
|
52
84
|
type: "http"
|
|
53
85
|
}],
|
|
54
|
-
url: "/v1/admin/
|
|
86
|
+
url: "/v1/admin/contact-submissions/{id}",
|
|
55
87
|
...options
|
|
56
88
|
});
|
|
57
89
|
};
|
|
58
90
|
/**
|
|
91
|
+
* Approve or reject items of a contact submission (admin)
|
|
92
|
+
* Approving inserts (or reuses) the live approved value; changing an approval to a rejection revokes the value it created, unless another approval still holds it. Sending a decision already recorded is a no-op. Once every item is decided the submission is `reviewed`.
|
|
93
|
+
*/
|
|
94
|
+
const adminReviewContactSubmission = (options) => {
|
|
95
|
+
return (options.client ?? client).post({
|
|
96
|
+
security: [{
|
|
97
|
+
name: "x-api-key",
|
|
98
|
+
type: "apiKey"
|
|
99
|
+
}, {
|
|
100
|
+
scheme: "bearer",
|
|
101
|
+
type: "http"
|
|
102
|
+
}],
|
|
103
|
+
url: "/v1/admin/contact-submissions/{id}/review",
|
|
104
|
+
...options,
|
|
105
|
+
headers: {
|
|
106
|
+
"Content-Type": "application/json",
|
|
107
|
+
...options?.headers
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
59
112
|
* Get a bulk job and a signed download URL (admin)
|
|
60
113
|
* Returns any org's bulk job (delivery or enrichment) with a freshly signed download URL for its result file. Cross-org: signs against the job's own stored org. `resultsUrl` is null until the job is completed.
|
|
61
114
|
*/
|
|
@@ -73,6 +126,43 @@ const adminGetBulkJob = (options) => {
|
|
|
73
126
|
});
|
|
74
127
|
};
|
|
75
128
|
/**
|
|
129
|
+
* Enrichment Firecrawl balance (admin)
|
|
130
|
+
*/
|
|
131
|
+
const adminGetLoEnrichmentBalance = (options) => {
|
|
132
|
+
return (options?.client ?? client).get({
|
|
133
|
+
security: [{
|
|
134
|
+
name: "x-api-key",
|
|
135
|
+
type: "apiKey"
|
|
136
|
+
}, {
|
|
137
|
+
scheme: "bearer",
|
|
138
|
+
type: "http"
|
|
139
|
+
}],
|
|
140
|
+
url: "/v1/admin/lo-enrichment/balance",
|
|
141
|
+
...options
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Launch an LO contact enrichment run (admin)
|
|
146
|
+
* Starts the `lo-enrichment` ECS task. Progress + outcome: the admin Job Runs page (job `lo-enrichment`). The run hard-stops at `creditBudget` and aborts if the enrichment Firecrawl account holds less than it.
|
|
147
|
+
*/
|
|
148
|
+
const adminLaunchLoEnrichmentRun = (options) => {
|
|
149
|
+
return (options.client ?? client).post({
|
|
150
|
+
security: [{
|
|
151
|
+
name: "x-api-key",
|
|
152
|
+
type: "apiKey"
|
|
153
|
+
}, {
|
|
154
|
+
scheme: "bearer",
|
|
155
|
+
type: "http"
|
|
156
|
+
}],
|
|
157
|
+
url: "/v1/admin/lo-enrichment/runs",
|
|
158
|
+
...options,
|
|
159
|
+
headers: {
|
|
160
|
+
"Content-Type": "application/json",
|
|
161
|
+
...options?.headers
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
76
166
|
* Search agents with filters
|
|
77
167
|
* Search and list individual real-estate agents with filters — one row per agent. Filter by name, location (state, city, zip), brokerage/office, and production metrics (sales volume, transaction units, price range), with sorting and cursor pagination. LOCATION SEMANTICS: the state/city/zip filters match ANY of an agent's location signals — their listed city/state, their office address(es), AND the markets where they actually closed transactions (production) — combined with OR. So an agent matches a searched location if their office OR their production is there (set `locationSource` to `office` or `production` to use one signal). A search for city "Long Beach" can therefore return agents whose office or displayed primary market is in a different city/state, because they transacted in Long Beach. The `state`/`city` returned on each row reflect the agent's primary market and may differ from the searched location. (Use the `office` filter to match by brokerage/office name — one or several names, each a case-insensitive whole-word phrase, `name*` for a prefix; `currentOffice` restricts to the agent's current office — and the per-agent city/county/state breakdown endpoints to rank an agent's volume within a specific market.) RANKING BY DEAL SIDE: combine a location filter with `sort` on `buyerVolume`/`buyerUnits` (or `sellerVolume`/`sellerUnits`, `dualVolume`/`dualUnits`) to rank agents by how active they are representing buyers vs. sellers in that market — e.g. sort `buyerVolume` descending for the most active buyer-side agents in a state or city. This is the per-agent record search: use it to find specific real-estate agents or build a filtered agent list. (For a single agent by ID use the agent detail endpoint.) If you only need how many agents match and not the records themselves, send the same request body to `countAgents`.
|
|
78
168
|
*/
|
|
@@ -218,6 +308,27 @@ const getAgentsBulkDeliveryJob = (options) => {
|
|
|
218
308
|
});
|
|
219
309
|
};
|
|
220
310
|
/**
|
|
311
|
+
* Submit contact details for a real estate agent
|
|
312
|
+
* Send contact details you know for a real estate agent — a phone number, an email address, a profile link, or the company they moved to. The submission is checked and reviewed before anything appears on the profile; this call only records it and answers immediately. Sending the same details for the same person again while the first submission is still being reviewed returns the first submission's `id`.
|
|
313
|
+
*/
|
|
314
|
+
const createAgentContactSubmission = (options) => {
|
|
315
|
+
return (options?.client ?? client).post({
|
|
316
|
+
security: [{
|
|
317
|
+
name: "x-api-key",
|
|
318
|
+
type: "apiKey"
|
|
319
|
+
}, {
|
|
320
|
+
scheme: "bearer",
|
|
321
|
+
type: "http"
|
|
322
|
+
}],
|
|
323
|
+
url: "/v1/agents/contact-submissions",
|
|
324
|
+
...options,
|
|
325
|
+
headers: {
|
|
326
|
+
"Content-Type": "application/json",
|
|
327
|
+
...options?.headers
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
};
|
|
331
|
+
/**
|
|
221
332
|
* Count agents matching filters
|
|
222
333
|
* Return the exact number of agents matching the given filters. Accepts the same request body as `listAgents` (pagination and sort are ignored). Use this when you only need a total; to get the matching agents themselves, send the same request body to `listAgents`.
|
|
223
334
|
*/
|
|
@@ -380,7 +491,8 @@ const agentCounties = (options) => {
|
|
|
380
491
|
});
|
|
381
492
|
};
|
|
382
493
|
/**
|
|
383
|
-
*
|
|
494
|
+
* Lenders on the agent's deals (pre-aggregated)
|
|
495
|
+
* Lenders that financed the agent's deals in the period. Each row's `id` is the lender id — pass it back as the `lender` filter on the loans routes to drill into that lender's loans — and `label` its display name. The row for deals with no lender attributed carries no `id`.
|
|
384
496
|
*/
|
|
385
497
|
const agentLenders = (options) => {
|
|
386
498
|
return (options.client ?? client).post({
|
|
@@ -400,8 +512,8 @@ const agentLenders = (options) => {
|
|
|
400
512
|
});
|
|
401
513
|
};
|
|
402
514
|
/**
|
|
403
|
-
*
|
|
404
|
-
* 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`).
|
|
515
|
+
* Offices the agent closed deals through (their side of each sale)
|
|
516
|
+
* 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`). Each sale is credited to the office recorded for the agent's OWN side of it (the listing office when the agent listed it, including dual deals; the buyer's office when the agent only represented the buyer), so every sale counts at most once. A sale with no office recorded on the agent's side lands in no row, so rows can sum to less than `totals`. Office names are as recorded and not normalized: one brokerage can appear under several spellings.
|
|
405
517
|
*/
|
|
406
518
|
const agentOffices = (options) => {
|
|
407
519
|
return (options.client ?? client).post({
|
|
@@ -2843,6 +2955,27 @@ const updateCrmList = (options) => {
|
|
|
2843
2955
|
});
|
|
2844
2956
|
};
|
|
2845
2957
|
/**
|
|
2958
|
+
* Apply accepted Market-Insights updates to several list records
|
|
2959
|
+
* Bulk form of `applyCrmMiUpdates` for records in one CRM list: for each record, persist ONLY the updates listed for it (copy them from `getCrmListMiUpdates` — `store`, `field` or `kind`, and the `incoming` value as `value`). Never send updates the user did not accept. Proposals on a record that were not accepted count as reviewed. Records not in the list are reported, not applied.
|
|
2960
|
+
*/
|
|
2961
|
+
const applyCrmListMiUpdates = (options) => {
|
|
2962
|
+
return (options.client ?? client).post({
|
|
2963
|
+
security: [{
|
|
2964
|
+
name: "x-api-key",
|
|
2965
|
+
type: "apiKey"
|
|
2966
|
+
}, {
|
|
2967
|
+
scheme: "bearer",
|
|
2968
|
+
type: "http"
|
|
2969
|
+
}],
|
|
2970
|
+
url: "/v1/crm/lists/{id}/apply-mi-updates",
|
|
2971
|
+
...options,
|
|
2972
|
+
headers: {
|
|
2973
|
+
"Content-Type": "application/json",
|
|
2974
|
+
...options?.headers
|
|
2975
|
+
}
|
|
2976
|
+
});
|
|
2977
|
+
};
|
|
2978
|
+
/**
|
|
2846
2979
|
* List who can be assigned on a list (access-filtered by visibility)
|
|
2847
2980
|
*/
|
|
2848
2981
|
const listCrmListAssignees = (options) => {
|
|
@@ -2859,6 +2992,27 @@ const listCrmListAssignees = (options) => {
|
|
|
2859
2992
|
});
|
|
2860
2993
|
};
|
|
2861
2994
|
/**
|
|
2995
|
+
* Snooze Market-Insights updates on several list records
|
|
2996
|
+
* Bulk form of `dismissCrmMiUpdates` for records in one CRM list: marks the updates last shown for each record as reviewed for the 31-day check window, so `getCrmListMiUpdates` stops returning them. Nothing is written to the records. A proposal that was not shown yet (new Market-Insights data) still comes back.
|
|
2997
|
+
*/
|
|
2998
|
+
const dismissCrmListMiUpdates = (options) => {
|
|
2999
|
+
return (options.client ?? client).post({
|
|
3000
|
+
security: [{
|
|
3001
|
+
name: "x-api-key",
|
|
3002
|
+
type: "apiKey"
|
|
3003
|
+
}, {
|
|
3004
|
+
scheme: "bearer",
|
|
3005
|
+
type: "http"
|
|
3006
|
+
}],
|
|
3007
|
+
url: "/v1/crm/lists/{id}/dismiss-mi-updates",
|
|
3008
|
+
...options,
|
|
3009
|
+
headers: {
|
|
3010
|
+
"Content-Type": "application/json",
|
|
3011
|
+
...options?.headers
|
|
3012
|
+
}
|
|
3013
|
+
});
|
|
3014
|
+
};
|
|
3015
|
+
/**
|
|
2862
3016
|
* Filter a list's members by entity attributes (read)
|
|
2863
3017
|
*/
|
|
2864
3018
|
const filterCrmListMembers = (options) => {
|
|
@@ -2955,6 +3109,27 @@ const addCrmListMembersBulk = (options) => {
|
|
|
2955
3109
|
});
|
|
2956
3110
|
};
|
|
2957
3111
|
/**
|
|
3112
|
+
* Find the records in a CRM list that have Market-Insights updates to review
|
|
3113
|
+
* Checks a CRM list's members against current Market-Insights data and returns ONLY the records that need attention, each with its proposed updates. Use this instead of calling `getCrmRecordProfile` + `getCrmMiUpdates` for every member: one call covers a page of up to 50 members, and records the user already reviewed (applied or dismissed) with nothing new since are left out. Page with `cursor` until `nextCursor` is null; a page may return no records and still have more to scan. Act on the results with `applyCrmListMiUpdates` (explicit per-record accepted updates) and `dismissCrmListMiUpdates` (snooze the rest). Each scan counts as a check of those records, exactly like `getCrmMiUpdates`.
|
|
3114
|
+
*/
|
|
3115
|
+
const getCrmListMiUpdates = (options) => {
|
|
3116
|
+
return (options.client ?? client).post({
|
|
3117
|
+
security: [{
|
|
3118
|
+
name: "x-api-key",
|
|
3119
|
+
type: "apiKey"
|
|
3120
|
+
}, {
|
|
3121
|
+
scheme: "bearer",
|
|
3122
|
+
type: "http"
|
|
3123
|
+
}],
|
|
3124
|
+
url: "/v1/crm/lists/{id}/mi-updates",
|
|
3125
|
+
...options,
|
|
3126
|
+
headers: {
|
|
3127
|
+
"Content-Type": "application/json",
|
|
3128
|
+
...options?.headers
|
|
3129
|
+
}
|
|
3130
|
+
});
|
|
3131
|
+
};
|
|
3132
|
+
/**
|
|
2958
3133
|
* List the org members a list can be shared with (manage-gated)
|
|
2959
3134
|
*/
|
|
2960
3135
|
const listCrmListShareableMembers = (options) => {
|
|
@@ -4286,7 +4461,7 @@ const shareCrmTemplate = (options) => {
|
|
|
4286
4461
|
};
|
|
4287
4462
|
/**
|
|
4288
4463
|
* Instant multi-entity typeahead search
|
|
4289
|
-
* Fast typeahead/autocomplete search across agents, originators, companies, and offices. Returns top matches per entity type. A bare NMLS ID resolves directly to its originator, company, or branch. Use this for quick name lookups, not for filtered searches (use the entity-specific list endpoints for those). If you already have an entity ID, prefer getOriginator / getCompany / getBranch.
|
|
4464
|
+
* Fast typeahead/autocomplete search across agents, originators, companies, and offices. Returns top matches per entity type. A bare NMLS ID resolves directly to its originator, company, or branch — including an originator who is in the NMLS registry with no production record yet (returned with `hasScoredData: false`). Use this for quick name lookups, not for filtered searches (use the entity-specific list endpoints for those). If you already have an entity ID, prefer getOriginator / getCompany / getBranch.
|
|
4290
4465
|
*/
|
|
4291
4466
|
const instantSearch = (options) => {
|
|
4292
4467
|
return (options?.client ?? client).post({
|
|
@@ -5155,7 +5330,7 @@ const getOffice = (options) => {
|
|
|
5155
5330
|
};
|
|
5156
5331
|
/**
|
|
5157
5332
|
* Search originators with filters
|
|
5158
|
-
* Search and list individual loan originators (LOs — NMLS-registered mortgage loan officers) with filters — one row per originator. Filter by name, NMLS ID, location (state, city), employer/company, and production metrics (loan volume, units, product mix), with sorting and cursor pagination. LOCATION SEMANTICS: the state/city filters match an originator's PRODUCTION GEOGRAPHY — the markets where they actually originated loans in the selected period — not where their office or employer sits. An LO who lends across several markets matches a filter for ANY of those markets, while the `state`/`city` returned on each row reflect only their PRIMARY (highest-volume) market. So a search for city "Long Beach" can return an LO whose displayed location is a different city/state (e.g. their top market is in Arizona) — they still originated loans in Long Beach, it just isn't their #1 market. To rank originators by their volume within a specific market, sort by volume after filtering, or use the per-originator city/county/state breakdown endpoints. This is the per-originator record search: use it to find specific loan officers or build a filtered LO list. (For a single originator by NMLS ID use the originator detail endpoint.) If you only need how many originators match and not the records themselves, send the same request body to `countOriginators`.
|
|
5333
|
+
* Search and list individual loan originators (LOs — NMLS-registered mortgage loan officers) with filters — one row per originator. Filter by name, NMLS ID, location (state, city), employer/company, and production metrics (loan volume, units, product mix), with sorting and cursor pagination. LOCATION SEMANTICS: the state/city filters match an originator's PRODUCTION GEOGRAPHY — the markets where they actually originated loans in the selected period — not where their office or employer sits. An LO who lends across several markets matches a filter for ANY of those markets, while the `state`/`city` returned on each row reflect only their PRIMARY (highest-volume) market. So a search for city "Long Beach" can return an LO whose displayed location is a different city/state (e.g. their top market is in Arizona) — they still originated loans in Long Beach, it just isn't their #1 market. To rank originators by their volume within a specific market, sort by volume after filtering, or use the per-originator city/county/state breakdown endpoints. NEWLY LICENSED / NO PRODUCTION: an originator who is in the NMLS registry but has no production record is returned only by an identity search — `nmlsId`, `name` or `namePrefix` as the ONLY filter — sent with `producersOnly: false`. Those rows come after the rows that have production, carry `hasScoredData: false`, and have `null` production fields. Under any other filter, or without `producersOnly: false`, they are not returned (use `getOriginator` for one by NMLS id). This is the per-originator record search: use it to find specific loan officers or build a filtered LO list. (For a single originator by NMLS ID use the originator detail endpoint.) If you only need how many originators match and not the records themselves, send the same request body to `countOriginators`.
|
|
5159
5334
|
*/
|
|
5160
5335
|
const listOriginators = (options) => {
|
|
5161
5336
|
return (options?.client ?? client).post({
|
|
@@ -5299,6 +5474,27 @@ const getOriginatorsBulkDeliveryJob = (options) => {
|
|
|
5299
5474
|
});
|
|
5300
5475
|
};
|
|
5301
5476
|
/**
|
|
5477
|
+
* Submit contact details for a loan officer
|
|
5478
|
+
* Send contact details you know for a loan officer — a phone number, an email address, a profile link, or the company they moved to. The submission is checked and reviewed before anything appears on the profile; this call only records it and answers immediately. Sending the same details for the same person again while the first submission is still being reviewed returns the first submission's `id`.
|
|
5479
|
+
*/
|
|
5480
|
+
const createOriginatorContactSubmission = (options) => {
|
|
5481
|
+
return (options?.client ?? client).post({
|
|
5482
|
+
security: [{
|
|
5483
|
+
name: "x-api-key",
|
|
5484
|
+
type: "apiKey"
|
|
5485
|
+
}, {
|
|
5486
|
+
scheme: "bearer",
|
|
5487
|
+
type: "http"
|
|
5488
|
+
}],
|
|
5489
|
+
url: "/v1/originators/contact-submissions",
|
|
5490
|
+
...options,
|
|
5491
|
+
headers: {
|
|
5492
|
+
"Content-Type": "application/json",
|
|
5493
|
+
...options?.headers
|
|
5494
|
+
}
|
|
5495
|
+
});
|
|
5496
|
+
};
|
|
5497
|
+
/**
|
|
5302
5498
|
* Count originators matching filters
|
|
5303
5499
|
* Return the exact number of originators matching the given filters. Accepts the same request body as `listOriginators` (pagination and sort are ignored). Use this when you only need a total; to get the matching originators themselves, send the same request body to `listOriginators`.
|
|
5304
5500
|
*/
|
|
@@ -5878,6 +6074,27 @@ const listEnrichments = (options) => {
|
|
|
5878
6074
|
});
|
|
5879
6075
|
};
|
|
5880
6076
|
/**
|
|
6077
|
+
* Resolve a batch of addresses to property ids
|
|
6078
|
+
* Resolve up to 2,000 postal addresses to property ids in one call — e.g. a mailing list before a bulk delivery. Free. Returns one result per input, in order, keyed by your `ref`. `matched` carries the parcel `id` and `mmPropertyId` — pass them to bulk delivery `propertyIds` or the list `flatFilters.id`, then join the rows back on `ref`. Each address is first matched on the normalized number + street + unit + zip key (suffix, directional, punctuation and case insensitive); misses fall back to a ranked search that only accepts a hit with the same house number, the same zip or city, and a near-identical street name. `ambiguous` lists `candidates`: `unit_required` (a building whose units are separate parcels — resend with the unit), `duplicate_parcels` (one address on several parcel records; usually safe to take them all), `multiple_parcels`. `not_found` gives a `reason`: `no_parcel_at_number` (no parcel at that house number in that zip/city), `low_confidence`, or an input problem (`no_house_number`, `no_street`, `no_location`).
|
|
6079
|
+
*/
|
|
6080
|
+
const resolveProperties = (options) => {
|
|
6081
|
+
return (options?.client ?? client).post({
|
|
6082
|
+
security: [{
|
|
6083
|
+
name: "x-api-key",
|
|
6084
|
+
type: "apiKey"
|
|
6085
|
+
}, {
|
|
6086
|
+
scheme: "bearer",
|
|
6087
|
+
type: "http"
|
|
6088
|
+
}],
|
|
6089
|
+
url: "/v1/properties/resolve",
|
|
6090
|
+
...options,
|
|
6091
|
+
headers: {
|
|
6092
|
+
"Content-Type": "application/json",
|
|
6093
|
+
...options?.headers
|
|
6094
|
+
}
|
|
6095
|
+
});
|
|
6096
|
+
};
|
|
6097
|
+
/**
|
|
5881
6098
|
* Free-text property search
|
|
5882
6099
|
* Find properties by a single free-text query — a full or partial address, an owner name, or a place. Results are ranked by relevance and tolerate typos, missing components, and reordered street directionals (e.g. "112 5th ave nw" and "112 nw 5th ave" both match). Returns the same property summary rows as the list endpoint. Use this for a search box; use the list endpoint for structured filtering.
|
|
5883
6100
|
*/
|
|
@@ -6210,4 +6427,4 @@ const getSearchToken = (options) => {
|
|
|
6210
6427
|
});
|
|
6211
6428
|
};
|
|
6212
6429
|
//#endregion
|
|
6213
|
-
export { client as _heyApiClient, actionCrmCallerId, addCrmContactMethod, addCrmListMember, addCrmListMembersBulk, addCrmNote, addCrmRecord, addCrmRecordsBulk, addWatchedAgent, addWatchedArea, addWatchedDocument, adminGetBulkJob, adminGetCadLinks,
|
|
6430
|
+
export { client as _heyApiClient, actionCrmCallerId, addCrmContactMethod, addCrmListMember, addCrmListMembersBulk, addCrmNote, addCrmRecord, addCrmRecordsBulk, addWatchedAgent, addWatchedArea, addWatchedDocument, adminGetBulkJob, adminGetCadLinks, adminGetContactSubmission, adminGetLoEnrichmentBalance, adminLaunchLoEnrichmentRun, adminListApprovedContacts, adminListContactSubmissions, adminReviewContactSubmission, adminRevokeApprovedContact, agentAnalyticsChart, agentAnalyticsSummary, agentAnalyticsTimeSeries, agentBuilders, agentCities, agentCompanies, agentCounties, agentLenders, agentLoanMix, agentMarkets, agentMortgagedTimeSeries, agentOffices, agentOriginators, agentProperties, agentRelated, agentSales, agentStates, agentTitleCompanies, agentTitleCompaniesTimeSeries, agentZipCodes, analyzeCrmCall, applyCrmEnrichment, applyCrmListMiUpdates, applyCrmListTemplate, applyCrmMiUpdates, branchAnalyticsChart, branchAnalyticsSummary, branchAnalyticsTimeSeries, branchCities, branchCounties, branchLenders, branchLoans, branchOriginators, branchRoster, branchStates, branchTitleCompanies, cancelAgentsBulkDeliveryJob, cancelBranchesBulkDeliveryJob, cancelCompaniesBulkDeliveryJob, cancelEnrichBulkJob, cancelLoansBulkDeliveryJob, cancelOriginatorsBulkDeliveryJob, cancelPropertiesBulkDeliveryJob, companyAgents, companyAnalyticsChart, companyAnalyticsSummary, companyAnalyticsTimeSeries, companyBranches, companyBrokers, companyCities, companyCounties, companyEarlyExits, companyEmployeeStats, companyEmployment, companyHeadcount, companyLenders, companyMarkets, companyOffices, companyOriginators, companyRelated, companySponsoredIndividuals, companySponsorshipMovement, companyStates, companyTalentFlow, companyTitleCompanies, companyZipCodes, countAgents, countBranches, countCompanies, countLenders, countLoans, countOffices, countOriginators, countProperties, countSales, createAgentContactSubmission, createAlertSubscription, createClient, createCrmList, createCrmListField, createCrmManualRecord, createCrmMeeting, createCrmObjectField, createCrmRecord, createCrmTask, createCrmTemplate, createMyAlertRecipe, createOriginatorContactSubmission, createSavedFilter, crmLenderChannels, crmLoLoanMix, crmLoMomentum, crmLoSponsorLocation, crmSimilarOriginators, declineCrmMiUpdate, deleteAlertSubscription, deleteCrmCallerId, deleteCrmList, deleteCrmListField, deleteCrmMeeting, deleteCrmNote, deleteCrmObjectField, deleteCrmRecord, deleteCrmRecords, deleteCrmTask, deleteCrmTemplate, deleteMyAlertRecipe, deleteSavedFilter, describeCrmRecordsOnAdd, dismissCrmListMiUpdates, dismissCrmMiUpdates, editCrmLoggedActivity, editCrmNote, enrichPropertiesBatch, enrichPropertiesBulk, enrichProperty, filterCrmListMembers, findCrmRecordByNmls, generateCrmRecordDescription, getAgent, getAgentsBulkDeliveryJob, getAlertConditions, getAlertEmailTokens, getAlertUnreadCount, getBranch, getBranchesBulkDeliveryJob, getCompaniesBulkDeliveryJob, getCompany, getCrmActiveCall, getCrmActivityReport, getCrmCall, getCrmCallTranscript, getCrmCustomValues, getCrmImportJob, getCrmList, getCrmListMemberIds, getCrmListMiUpdates, getCrmListShares, getCrmMiUpdates, getCrmOutcomesReport, getCrmOverrides, getCrmProductionEnrichJob, getCrmRecordAccess, getCrmRecordAccessRequest, getCrmRecordConnections, getCrmRecordMemberIds, getCrmRecordProfile, getCrmTemplate, getCrmTemplateShares, getEnrichBulkJob, getHubspotPushStatus, getLender, getLoan, getLoansBulkDeliveryJob, getMe, getMeCredits, getMePlan, getOffice, getOriginator, getOriginatorsBulkDeliveryJob, getPropertiesBulkDeliveryJob, getProperty, getRealtimeConfig, getSale, getSavedFilter, getSearchToken, grantCrmListAccess, grantCrmRecordAccess, grantCrmRecordAccessRequest, hangupCrmCall, importCrmRecords, instantSearch, lenderCities, lenderCompanies, lenderCounties, lenderOriginators, lenderStates, linkCrmRecord, listAgents, listAlertDigests, listAlertLog, listAlertRecipes, listAlertSubscriptions, listBranches, listCompanies, listCrmActivity, listCrmCallerIds, listCrmCustomFields, listCrmListAssignees, listCrmListFields, listCrmListMemberships, listCrmListShareableMembers, listCrmLists, listCrmMeetings, listCrmMembers, listCrmOrgMembers, listCrmRecordShareableMembers, listCrmRecordShares, listCrmReferencedActivity, listCrmTasks, listCrmTemplates, listCrmWorkspaceMeetings, listCrmWorkspaceTasks, listEnrichments, listLenders, listLoans, listMarket, listMyAlertRecipes, listOffices, listOriginators, listProperties, listSales, listSavedFilters, listWatchedAgents, listWatchedAreas, listWatchedDocuments, loanRelated, loansAnalyticsChart, loansAnalyticsSummary, loansAnalyticsTimeSeries, logCrmActivity, lookupCompanies, markAlertDigestRead, markAlertRead, markAllAlertsRead, marketAnalyticsChart, marketAnalyticsSummary, marketAnalyticsTimeSeries, marketCommunityLending, marketMovementActivity, marketMovementByState, marketMovementCohortPayoff, marketMovementMostGained, marketMovementMostLost, marketMovementMovers, marketMovementRankings, marketMovementStats, marketMovementTransitions, officeAgents, originatorAgents, originatorAnalyticsChart, originatorAnalyticsSummary, originatorAnalyticsTimeSeries, originatorBranches, originatorBrokers, originatorCitiesBreakdown, originatorCompanies, originatorCountiesBreakdown, originatorLenders, originatorLoans, originatorMarkets, originatorOffices, originatorProperties, originatorRelated, originatorStatesBreakdown, originatorTitleCompanies, originatorZipCodes, placeCrmCall, previewAlertEmailTemplate, previewAlertRecipe, previewAlerts, previewMyAlertRecipe, propertiesAnalyticsChart, propertiesAnalyticsSummary, propertyRelated, pushToHubspot, reconcileCrmMeetings, refreshCrmRecordMirror, removeCrmContactMethod, removeCrmListMember, removeWatchedAgent, removeWatchedArea, removeWatchedDocument, requestCrmAccess, requestCrmRecordAccess, resolveProperties, retrieveLocation, revokeCrmListAccess, revokeCrmRecordAccess, saleRelated, salesAnalyticsChart, salesAnalyticsSummary, salesAnalyticsTimeSeries, searchCrmEmailRecipients, searchCrmMatchCandidates, searchCrmMentionRecords, searchCrmRecords, searchProperties, sendCrmEmail, setCrmCallAnalysis, setCrmCustomValue, setCrmOverride, setCrmRecordOwner, setDefaultCrmCallerId, shareCrmTemplate, submitAgentsBulkDelivery, submitBranchesBulkDelivery, submitCompaniesBulkDelivery, submitLoansBulkDelivery, submitOriginatorsBulkDelivery, submitPropertiesBulkDelivery, subscribeAlertRecipe, suggestLocations, transcribeCrmCall, transferCrmListOwnership, unshareCrmTemplate, unsubscribeAlertRecipe, updateAlertConditions, updateCrmContactMethod, updateCrmList, updateCrmListField, updateCrmMeeting, updateCrmObjectField, updateCrmTask, updateCrmTemplate, updateMe, updateMyAlertRecipe, updateSavedFilter };
|