@model-match/api 3.64.0 → 3.65.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.
@@ -1,4 +1,4 @@
1
- import { S as client, n as createClient } from "../src-BMY6S6hr.mjs";
1
+ import { S as client, n as createClient } from "../src-DXHsejhh.mjs";
2
2
  //#region src/slim/sdk.gen.ts
3
3
  /**
4
4
  * Search agents with filters
@@ -5597,6 +5597,26 @@ const originatorRetention = (options) => (options.client ?? client).post({
5597
5597
  }
5598
5598
  });
5599
5599
  /**
5600
+ * Loans one capturer took from this LO
5601
+ *
5602
+ * The loss rows (`churnedLoans` shape) one capturing loan officer — or company — took from this LO's borrowers in `start`–`end`, newest first, paged. Same classification as `originatorRetention`, so `total` matches that capturer's `count` there; unlike the report, it is not limited to the newest 500 rows overall.
5603
+ */
5604
+ const originatorRetentionCaptured = (options) => (options.client ?? client).post({
5605
+ security: [{
5606
+ name: "x-api-key",
5607
+ type: "apiKey"
5608
+ }, {
5609
+ scheme: "bearer",
5610
+ type: "http"
5611
+ }],
5612
+ url: "/v1/originators/{nmlsId}/retention/captured",
5613
+ ...options,
5614
+ headers: {
5615
+ "Content-Type": "application/json",
5616
+ ...options.headers
5617
+ }
5618
+ });
5619
+ /**
5600
5620
  * Search properties with filters
5601
5621
  *
5602
5622
  * Search and list individual properties/parcels with filters — one row per parcel. Filter by location (state, county, city, zip, address), owner name, property characteristics (beds, baths, square footage, year built, property type), value, ownership or transaction history, and occupancy (`ownerOccupancy: not_flagged` plus `absenteeOwner: true` targets likely investor / non-owner-occupied parcels — pair `absenteeOwner` with a geography filter), with sorting and cursor pagination. This is the discrete per-property record search: use it to find specific properties or build a filtered property list. (For a single property by its ID use the property detail endpoint.) If you only need how many properties match and not the records themselves, send the same request body to `countProperties`.
@@ -6223,4 +6243,4 @@ const getSearchToken = (options) => (options?.client ?? client).get({
6223
6243
  ...options
6224
6244
  });
6225
6245
  //#endregion
6226
- export { client as _heyApiClient, actionCrmCallerId, addCrmContactMethod, addCrmListMember, addCrmListMembersBulk, addCrmNote, addCrmRecord, addCrmRecordsBulk, addWatchedAgent, addWatchedArea, addWatchedDocument, 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, branchCommunityLendingMap, branchCounties, branchLenders, branchLoans, branchOriginators, branchRoster, branchStates, branchStats, branchTitleCompanies, cancelAgentsBulkDeliveryJob, cancelBranchesBulkDeliveryJob, cancelCompaniesBulkDeliveryJob, cancelEnrichBulkJob, cancelLoansBulkDeliveryJob, cancelOriginatorsBulkDeliveryJob, cancelPropertiesBulkDeliveryJob, checkCrmImport, companyAgents, companyAnalyticsChart, companyAnalyticsSummary, companyAnalyticsTimeSeries, companyBranches, companyBrokers, companyCities, companyCommunityLendingBenchmark, companyCommunityLendingMap, companyCounties, companyDepartureStatus, companyEarlyExits, companyEmployeeStats, companyEmployment, companyHeadcount, companyLenders, companyMarkets, companyMoverProduction, companyOffices, companyOriginators, companyRelated, companyRetention, companyRetentionActiveListings, 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, getCrmImport, 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, getSavedFilterShares, getSearchToken, grantCrmListAccess, grantCrmRecordAccess, grantCrmRecordAccessRequest, grantSavedFilterAccess, hangupCrmCall, importCrmRecords, instantSearch, lenderCities, lenderCompanies, lenderCounties, lenderOriginators, lenderStates, linkCrmRecord, listAgentOfficeGroups, listAgents, listAlertDigests, listAlertLog, listAlertRecipes, listAlertSubscriptions, listBranches, listCompanies, listCrmActivity, listCrmCallerIds, listCrmContactMethods, listCrmCustomFields, listCrmImportRows, listCrmImports, listCrmListAssignees, listCrmListFields, listCrmListMemberships, listCrmListShareableMembers, listCrmLists, listCrmMeetings, listCrmMembers, listCrmOrgMembers, listCrmRecordShareableMembers, listCrmRecordShares, listCrmReferencedActivity, listCrmTasks, listCrmTemplates, listCrmWorkspaceMeetings, listCrmWorkspaceTasks, listEnrichments, listLenders, listLoans, listMyAlertRecipes, listOffices, listOriginators, listProperties, listSales, listSavedFilterShareableMembers, 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, marketSignals, officeAgents, officeBuilders, officeLenders, officeLoanTypes, officeOriginators, originatorAgents, originatorAnalyticsChart, originatorAnalyticsSummary, originatorAnalyticsTimeSeries, originatorBranches, originatorBrokers, originatorBuilders, originatorCitiesBreakdown, originatorCommunityLendingBenchmark, originatorCommunityLendingMap, originatorCompanies, originatorCountiesBreakdown, originatorLenders, originatorLoans, originatorMarkets, originatorOffices, originatorProperties, originatorRelated, originatorRetention, 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, revokeSavedFilterAccess, saleRelated, salesAnalyticsChart, salesAnalyticsSummary, salesAnalyticsTimeSeries, searchCrmEmailRecipients, searchCrmMatchCandidates, searchCrmMentionRecords, searchCrmRecords, searchProperties, sendCrmEmail, setCrmCallAnalysis, setCrmCustomValue, setCrmOverride, setCrmRecordOwner, setDefaultCrmCallerId, shareCrmTemplate, submitAgentsBulkDelivery, submitBranchesBulkDelivery, submitCompaniesBulkDelivery, submitLoansBulkDelivery, submitOriginatorsBulkDelivery, submitPropertiesBulkDelivery, subscribeAlertRecipe, suggestLocations, suggestOfficeNames, transcribeCrmCall, transferCrmListOwnership, undoCrmImport, unshareCrmTemplate, unsubscribeAlertRecipe, updateAlertConditions, updateCrmContactMethod, updateCrmList, updateCrmListField, updateCrmMeeting, updateCrmObjectField, updateCrmTask, updateCrmTemplate, updateMe, updateMyAlertRecipe, updateSavedFilter };
6246
+ export { client as _heyApiClient, actionCrmCallerId, addCrmContactMethod, addCrmListMember, addCrmListMembersBulk, addCrmNote, addCrmRecord, addCrmRecordsBulk, addWatchedAgent, addWatchedArea, addWatchedDocument, 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, branchCommunityLendingMap, branchCounties, branchLenders, branchLoans, branchOriginators, branchRoster, branchStates, branchStats, branchTitleCompanies, cancelAgentsBulkDeliveryJob, cancelBranchesBulkDeliveryJob, cancelCompaniesBulkDeliveryJob, cancelEnrichBulkJob, cancelLoansBulkDeliveryJob, cancelOriginatorsBulkDeliveryJob, cancelPropertiesBulkDeliveryJob, checkCrmImport, companyAgents, companyAnalyticsChart, companyAnalyticsSummary, companyAnalyticsTimeSeries, companyBranches, companyBrokers, companyCities, companyCommunityLendingBenchmark, companyCommunityLendingMap, companyCounties, companyDepartureStatus, companyEarlyExits, companyEmployeeStats, companyEmployment, companyHeadcount, companyLenders, companyMarkets, companyMoverProduction, companyOffices, companyOriginators, companyRelated, companyRetention, companyRetentionActiveListings, 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, getCrmImport, 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, getSavedFilterShares, getSearchToken, grantCrmListAccess, grantCrmRecordAccess, grantCrmRecordAccessRequest, grantSavedFilterAccess, hangupCrmCall, importCrmRecords, instantSearch, lenderCities, lenderCompanies, lenderCounties, lenderOriginators, lenderStates, linkCrmRecord, listAgentOfficeGroups, listAgents, listAlertDigests, listAlertLog, listAlertRecipes, listAlertSubscriptions, listBranches, listCompanies, listCrmActivity, listCrmCallerIds, listCrmContactMethods, listCrmCustomFields, listCrmImportRows, listCrmImports, listCrmListAssignees, listCrmListFields, listCrmListMemberships, listCrmListShareableMembers, listCrmLists, listCrmMeetings, listCrmMembers, listCrmOrgMembers, listCrmRecordShareableMembers, listCrmRecordShares, listCrmReferencedActivity, listCrmTasks, listCrmTemplates, listCrmWorkspaceMeetings, listCrmWorkspaceTasks, listEnrichments, listLenders, listLoans, listMyAlertRecipes, listOffices, listOriginators, listProperties, listSales, listSavedFilterShareableMembers, 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, marketSignals, officeAgents, officeBuilders, officeLenders, officeLoanTypes, officeOriginators, originatorAgents, originatorAnalyticsChart, originatorAnalyticsSummary, originatorAnalyticsTimeSeries, originatorBranches, originatorBrokers, originatorBuilders, originatorCitiesBreakdown, originatorCommunityLendingBenchmark, originatorCommunityLendingMap, originatorCompanies, originatorCountiesBreakdown, originatorLenders, originatorLoans, originatorMarkets, originatorOffices, originatorProperties, originatorRelated, originatorRetention, originatorRetentionCaptured, 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, revokeSavedFilterAccess, saleRelated, salesAnalyticsChart, salesAnalyticsSummary, salesAnalyticsTimeSeries, searchCrmEmailRecipients, searchCrmMatchCandidates, searchCrmMentionRecords, searchCrmRecords, searchProperties, sendCrmEmail, setCrmCallAnalysis, setCrmCustomValue, setCrmOverride, setCrmRecordOwner, setDefaultCrmCallerId, shareCrmTemplate, submitAgentsBulkDelivery, submitBranchesBulkDelivery, submitCompaniesBulkDelivery, submitLoansBulkDelivery, submitOriginatorsBulkDelivery, submitPropertiesBulkDelivery, subscribeAlertRecipe, suggestLocations, suggestOfficeNames, transcribeCrmCall, transferCrmListOwnership, undoCrmImport, unshareCrmTemplate, unsubscribeAlertRecipe, updateAlertConditions, updateCrmContactMethod, updateCrmList, updateCrmListField, updateCrmMeeting, updateCrmObjectField, updateCrmTask, updateCrmTemplate, updateMe, updateMyAlertRecipe, updateSavedFilter };
@@ -6937,6 +6937,28 @@ var Originators = class {
6937
6937
  }
6938
6938
  });
6939
6939
  }
6940
+ /**
6941
+ * Loans one capturer took from this LO
6942
+ *
6943
+ * The loss rows (`churnedLoans` shape) one capturing loan officer — or company — took from this LO's borrowers in `start`–`end`, newest first, paged. Same classification as `originatorRetention`, so `total` matches that capturer's `count` there; unlike the report, it is not limited to the newest 500 rows overall.
6944
+ */
6945
+ static retentionCaptured(options) {
6946
+ return (options.client ?? client).post({
6947
+ security: [{
6948
+ name: "x-api-key",
6949
+ type: "apiKey"
6950
+ }, {
6951
+ scheme: "bearer",
6952
+ type: "http"
6953
+ }],
6954
+ url: "/v1/originators/{nmlsId}/retention/captured",
6955
+ ...options,
6956
+ headers: {
6957
+ "Content-Type": "application/json",
6958
+ ...options.headers
6959
+ }
6960
+ });
6961
+ }
6940
6962
  };
6941
6963
  var Properties = class {
6942
6964
  /**
package/openapi.json CHANGED
@@ -38409,6 +38409,254 @@
38409
38409
  ],
38410
38410
  "type": "object"
38411
38411
  },
38412
+ "OriginatorRetentionCaptured": {
38413
+ "properties": {
38414
+ "counts": {
38415
+ "description": "The capturer's rows by kind, ignoring `kind`.",
38416
+ "properties": {
38417
+ "refi": {
38418
+ "type": "number"
38419
+ },
38420
+ "second": {
38421
+ "type": "number"
38422
+ }
38423
+ },
38424
+ "required": [
38425
+ "refi",
38426
+ "second"
38427
+ ],
38428
+ "type": "object"
38429
+ },
38430
+ "rows": {
38431
+ "items": {
38432
+ "properties": {
38433
+ "address": {
38434
+ "type": "string"
38435
+ },
38436
+ "borrower": {
38437
+ "type": "string"
38438
+ },
38439
+ "capturingAmount": {
38440
+ "type": "number"
38441
+ },
38442
+ "capturingCompany": {
38443
+ "type": "string"
38444
+ },
38445
+ "capturingCompanyNmlsId": {
38446
+ "type": "string"
38447
+ },
38448
+ "capturingLender": {
38449
+ "type": "string"
38450
+ },
38451
+ "capturingLoName": {
38452
+ "type": "string"
38453
+ },
38454
+ "capturingLoNmlsId": {
38455
+ "type": "string"
38456
+ },
38457
+ "capturingLoanType": {
38458
+ "type": "string"
38459
+ },
38460
+ "capturingRate": {
38461
+ "nullable": true,
38462
+ "type": "number"
38463
+ },
38464
+ "cashOut": {
38465
+ "type": "boolean"
38466
+ },
38467
+ "current": {
38468
+ "description": "What the parcel looks like today, when a scored snapshot newer than the event joined; null otherwise (unknown, never 'retained').",
38469
+ "nullable": true,
38470
+ "properties": {
38471
+ "currentBalance": {
38472
+ "nullable": true,
38473
+ "type": "number"
38474
+ },
38475
+ "currentLender": {
38476
+ "nullable": true,
38477
+ "type": "string"
38478
+ },
38479
+ "currentRate": {
38480
+ "nullable": true,
38481
+ "type": "number"
38482
+ },
38483
+ "lastSaleDate": {
38484
+ "nullable": true,
38485
+ "type": "number"
38486
+ },
38487
+ "loStillActive": {
38488
+ "type": "boolean"
38489
+ },
38490
+ "ownerChanged": {
38491
+ "nullable": true,
38492
+ "type": "boolean"
38493
+ }
38494
+ },
38495
+ "required": [
38496
+ "loStillActive",
38497
+ "ownerChanged",
38498
+ "lastSaleDate",
38499
+ "currentLender",
38500
+ "currentBalance",
38501
+ "currentRate"
38502
+ ],
38503
+ "type": "object"
38504
+ },
38505
+ "daysToEvent": {
38506
+ "type": "number"
38507
+ },
38508
+ "eventDate": {
38509
+ "type": "number"
38510
+ },
38511
+ "kind": {
38512
+ "enum": [
38513
+ "refi",
38514
+ "second"
38515
+ ],
38516
+ "type": "string"
38517
+ },
38518
+ "lane": {
38519
+ "enum": [
38520
+ "own_company",
38521
+ "servicer",
38522
+ "competitor"
38523
+ ],
38524
+ "type": "string"
38525
+ },
38526
+ "originalAmount": {
38527
+ "type": "number"
38528
+ },
38529
+ "originalLender": {
38530
+ "type": "string"
38531
+ },
38532
+ "originalLoanDate": {
38533
+ "type": "number"
38534
+ },
38535
+ "originalLoanType": {
38536
+ "type": "string"
38537
+ },
38538
+ "originalRate": {
38539
+ "nullable": true,
38540
+ "type": "number"
38541
+ },
38542
+ "originalTransactionType": {
38543
+ "type": "string"
38544
+ },
38545
+ "propertyId": {
38546
+ "type": "string"
38547
+ },
38548
+ "sameBorrower": {
38549
+ "nullable": true,
38550
+ "type": "boolean"
38551
+ }
38552
+ },
38553
+ "required": [
38554
+ "kind",
38555
+ "lane",
38556
+ "propertyId",
38557
+ "address",
38558
+ "borrower",
38559
+ "originalLoanDate",
38560
+ "originalAmount",
38561
+ "originalLoanType",
38562
+ "originalTransactionType",
38563
+ "originalRate",
38564
+ "originalLender",
38565
+ "eventDate",
38566
+ "daysToEvent",
38567
+ "capturingAmount",
38568
+ "capturingLoanType",
38569
+ "capturingRate",
38570
+ "capturingLoNmlsId",
38571
+ "capturingLoName",
38572
+ "capturingCompanyNmlsId",
38573
+ "capturingCompany",
38574
+ "capturingLender",
38575
+ "cashOut",
38576
+ "sameBorrower",
38577
+ "current"
38578
+ ],
38579
+ "type": "object"
38580
+ },
38581
+ "type": "array"
38582
+ },
38583
+ "status": {
38584
+ "description": "`timeout`: the book could not be read in time; `rows` is empty and the counts are zero.",
38585
+ "enum": [
38586
+ "ok",
38587
+ "timeout"
38588
+ ],
38589
+ "type": "string"
38590
+ },
38591
+ "total": {
38592
+ "description": "Rows matching the capturer (and `kind`), all pages.",
38593
+ "type": "number"
38594
+ },
38595
+ "truncated": {
38596
+ "description": "A scan hit its row cap; counts cover the rows read.",
38597
+ "type": "boolean"
38598
+ }
38599
+ },
38600
+ "required": [
38601
+ "status",
38602
+ "truncated",
38603
+ "total",
38604
+ "counts",
38605
+ "rows"
38606
+ ],
38607
+ "type": "object"
38608
+ },
38609
+ "OriginatorRetentionCapturedRequest": {
38610
+ "additionalProperties": false,
38611
+ "properties": {
38612
+ "capturingCompanyNmlsId": {
38613
+ "description": "The capturing company (a `capturingCompanies[].nmlsId`). Exactly one of the two capturer ids is required.",
38614
+ "pattern": "^\\d+$",
38615
+ "type": "string"
38616
+ },
38617
+ "capturingLoNmlsId": {
38618
+ "description": "The capturing loan officer (a `capturingOriginators[].nmlsId`).",
38619
+ "pattern": "^\\d+$",
38620
+ "type": "string"
38621
+ },
38622
+ "end": {
38623
+ "description": "Last day of the period (UTC, inclusive).",
38624
+ "example": "2025-08-15",
38625
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
38626
+ "type": "string"
38627
+ },
38628
+ "kind": {
38629
+ "description": "Only refinances or only second liens. Default both.",
38630
+ "enum": [
38631
+ "refi",
38632
+ "second"
38633
+ ],
38634
+ "type": "string"
38635
+ },
38636
+ "limit": {
38637
+ "description": "Rows per page (default 100, at most 500).",
38638
+ "maximum": 500,
38639
+ "minimum": 1,
38640
+ "type": "integer"
38641
+ },
38642
+ "offset": {
38643
+ "description": "Rows to skip (newest first).",
38644
+ "minimum": 0,
38645
+ "type": "integer"
38646
+ },
38647
+ "start": {
38648
+ "description": "First day of the period (UTC).",
38649
+ "example": "2025-08-15",
38650
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
38651
+ "type": "string"
38652
+ }
38653
+ },
38654
+ "required": [
38655
+ "start",
38656
+ "end"
38657
+ ],
38658
+ "type": "object"
38659
+ },
38412
38660
  "OriginatorRetentionRequest": {
38413
38661
  "additionalProperties": false,
38414
38662
  "properties": {
@@ -45596,7 +45844,7 @@
45596
45844
  "info": {
45597
45845
  "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.",
45598
45846
  "title": "ModelMatch API",
45599
- "version": "3.130.0"
45847
+ "version": "3.131.0"
45600
45848
  },
45601
45849
  "openapi": "3.1.0",
45602
45850
  "paths": {
@@ -79952,6 +80200,109 @@
79952
80200
  ]
79953
80201
  }
79954
80202
  },
80203
+ "/v1/originators/{nmlsId}/retention/captured": {
80204
+ "post": {
80205
+ "description": "The loss rows (`churnedLoans` shape) one capturing loan officer — or company — took from this LO's borrowers in `start`–`end`, newest first, paged. Same classification as `originatorRetention`, so `total` matches that capturer's `count` there; unlike the report, it is not limited to the newest 500 rows overall.",
80206
+ "operationId": "originatorRetentionCaptured",
80207
+ "parameters": [
80208
+ {
80209
+ "description": "Originator NMLS ID",
80210
+ "in": "path",
80211
+ "name": "nmlsId",
80212
+ "required": true,
80213
+ "schema": {
80214
+ "description": "Originator NMLS ID",
80215
+ "type": "string"
80216
+ }
80217
+ }
80218
+ ],
80219
+ "requestBody": {
80220
+ "content": {
80221
+ "application/json": {
80222
+ "schema": {
80223
+ "$ref": "#/components/schemas/OriginatorRetentionCapturedRequest"
80224
+ }
80225
+ }
80226
+ }
80227
+ },
80228
+ "responses": {
80229
+ "200": {
80230
+ "content": {
80231
+ "application/json": {
80232
+ "schema": {
80233
+ "$ref": "#/components/schemas/OriginatorRetentionCaptured"
80234
+ }
80235
+ }
80236
+ },
80237
+ "description": "The capturer's loss rows"
80238
+ },
80239
+ "400": {
80240
+ "content": {
80241
+ "application/json": {
80242
+ "schema": {
80243
+ "$ref": "#/components/schemas/ErrorResponse"
80244
+ }
80245
+ }
80246
+ },
80247
+ "description": "Validation error"
80248
+ },
80249
+ "401": {
80250
+ "content": {
80251
+ "application/json": {
80252
+ "schema": {
80253
+ "$ref": "#/components/schemas/ErrorResponse"
80254
+ }
80255
+ }
80256
+ },
80257
+ "description": "Unauthorized"
80258
+ },
80259
+ "403": {
80260
+ "content": {
80261
+ "application/json": {
80262
+ "schema": {
80263
+ "$ref": "#/components/schemas/ErrorResponse"
80264
+ }
80265
+ }
80266
+ },
80267
+ "description": "Forbidden (authenticated, but missing required context — e.g. no active organization)"
80268
+ },
80269
+ "404": {
80270
+ "content": {
80271
+ "application/json": {
80272
+ "schema": {
80273
+ "$ref": "#/components/schemas/ErrorResponse"
80274
+ }
80275
+ }
80276
+ },
80277
+ "description": "Not found"
80278
+ },
80279
+ "413": {
80280
+ "content": {
80281
+ "application/json": {
80282
+ "schema": {
80283
+ "$ref": "#/components/schemas/PayloadTooLarge"
80284
+ }
80285
+ }
80286
+ },
80287
+ "description": "Response payload too large — detail endpoint capped to fit Lambda response limits"
80288
+ },
80289
+ "503": {
80290
+ "content": {
80291
+ "application/json": {
80292
+ "schema": {
80293
+ "$ref": "#/components/schemas/SearchUnavailable"
80294
+ }
80295
+ }
80296
+ },
80297
+ "description": "Search timed out or the cluster is overloaded — retry after `Retry-After` seconds."
80298
+ }
80299
+ },
80300
+ "summary": "Loans one capturer took from this LO",
80301
+ "tags": [
80302
+ "Originators"
80303
+ ]
80304
+ }
80305
+ },
79955
80306
  "/v1/properties": {
79956
80307
  "post": {
79957
80308
  "description": "Search and list individual properties/parcels with filters — one row per parcel. Filter by location (state, county, city, zip, address), owner name, property characteristics (beds, baths, square footage, year built, property type), value, ownership or transaction history, and occupancy (`ownerOccupancy: not_flagged` plus `absenteeOwner: true` targets likely investor / non-owner-occupied parcels — pair `absenteeOwner` with a geography filter), with sorting and cursor pagination. This is the discrete per-property record search: use it to find specific properties or build a filtered property list. (For a single property by its ID use the property detail endpoint.) If you only need how many properties match and not the records themselves, send the same request body to `countProperties`.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@model-match/api",
3
- "version": "3.64.0",
3
+ "version": "3.65.0",
4
4
  "description": "TypeScript client for the ModelMatch API",
5
5
  "license": "MIT",
6
6
  "files": [