@model-match/api 3.47.0 → 3.49.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/RELEASE_NOTES.md +16 -0
- package/dist/{index-BhsKtXOJ.d.mts → index-6nE5Y3ti.d.mts} +646 -24
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/slim/index.d.mts +38 -6
- package/dist/slim/index.mjs +96 -6
- package/dist/{src-D2hEr2wd.mjs → src-CvwNdqc1.mjs} +104 -4
- package/openapi.json +1848 -263
- package/package.json +1 -1
package/RELEASE_NOTES.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Changes to `@model-match/api` that affect how you use it. Each version is generated from the ModelMatch API's OpenAPI spec, so new endpoints and fields appear in the [API reference](https://docs.modelmatch.com/developers) as they ship.
|
|
4
4
|
|
|
5
|
+
## 3.49.0
|
|
6
|
+
|
|
7
|
+
- **Companies: borrower retention.** `companyRetention` (`GET /v1/companies/{nmlsId}/retention`) returns a company's borrower retention for `window=last12Months` (the default, with the prior 12 months for comparison) or `allTime`: the refinance retention rate and verdict, where lost borrowers went (servicers vs. other lenders), the top capturing companies and loan officers, and `leakiestOriginators`, the company's own loan officers ranked by borrowers lost. A refinance written by any loan officer at the same company counts as retained. Figures are recomputed weekly and `computedAt` says when; a company that has not been computed yet returns 404.
|
|
8
|
+
|
|
9
|
+
## 3.48.0
|
|
10
|
+
|
|
11
|
+
- **Branches: `licenses` on each row.** `getBranch` and `listBranches` gain `licenses`, one entry per state license or registration on file for the branch, authorized or not: `regulator`, `licenseType`, `licenseNumber`, `issueDate`, `status`, `statusDate`, `isAuthorized` and `authorizedSince` (when the current authorized period began; `null` when the license is not authorized). `licenses` is `null` when the branch's licenses aren't on file.
|
|
12
|
+
|
|
13
|
+
- **Branches: `licensedSince` filter.** `listBranches`, `countBranches` and branch bulk exports accept `licensedSince: { gte?, lte? }` (`YYYY-MM-DD`, inclusive) to find branches by the date they were first licensed, the earliest `issueDate` across their `licenses`. `{ gte: "2026-07-01" }` returns branches whose licenses were all issued on or after that date, so an established branch that added a state recently does not match. Branches with no license dates never match. A range that matches more than 5,000 branches is rejected with a 400; narrow the range.
|
|
14
|
+
|
|
15
|
+
- **Saved filters: sharing.** Share a saved filter with specific workspace members (`grantSavedFilterAccess` / `revokeSavedFilterAccess`, as `viewer` or `editor`) or with the whole workspace (`updateSavedFilter` with `visibility: "organization"`, optionally `orgWidePermission: "editor"`). `getSavedFilterShares` returns who a filter is shared with and `listSavedFilterShareableMembers` lists the members it can be shared with. `listSavedFilters` and `getSavedFilter` now include filters shared with you, and every saved filter carries `ownerUserId`, `ownerName`, `isOwner`, `permission`, `canEdit`, `canDelete` and `canManageSharing`. `listSavedFilters` accepts `ownership` (`mine` or `shared`). Only the owner or a workspace admin can delete a filter or change who it is shared with; filters shared with you don't count toward your saved-filter limit.
|
|
16
|
+
|
|
17
|
+
- **Breaking: saved-filter icons are emoji only.** `createSavedFilter` and `updateSavedFilter` accept `icon: { type: "emoji", emoji }` (or `null`); the `color` and named `icon` variants are removed and now return 400. Existing saved filters with a color or named icon were converted to the closest emoji (named icons by meaning, e.g. a flag icon becomes 🚩; color dots become the nearest colored circle), so reads only ever return the emoji shape. Update any code that builds `{ type: "color" }` or `{ type: "icon" }`.
|
|
18
|
+
- **Saved filters report usage.** Every saved filter carries `useCount` and `lastUsedAt`. A filter counts as used when it is fetched with `getSavedFilter`, or when a list request (for example `listOriginators`) sends its id in the `X-MM-Saved-Filter-Id` header. Count requests do not add a use.
|
|
19
|
+
- **`listAgentOfficeGroups` is free.** Listing the agent office groups no longer uses credits.
|
|
20
|
+
|
|
5
21
|
## 3.47.0
|
|
6
22
|
|
|
7
23
|
- **CRM import: safe re-runs with external keys.** `importCrmRecords` rows accept `externalId` (the record's id in your source system) and the batch accepts `externalSource`. A known key updates that record instead of creating a duplicate, so re-running an import or retrying a timed-out request is safe. A conflicting key fails the row with the new `EXTERNAL_ID_CONFLICT` code.
|