@model-match/api 3.14.0 → 3.15.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 { C as client, n as createClient } from "../src-Bm5e4LYA.mjs";
1
+ import { C as client, n as createClient } from "../src-DA2DVf_U.mjs";
2
2
  //#region src/slim/sdk.gen.ts
3
3
  /**
4
4
  * Search agents with filters
@@ -4906,6 +4906,7 @@ const listLoans = (options) => {
4906
4906
  };
4907
4907
  /**
4908
4908
  * Configurable chart data (measure × slice)
4909
+ * Buckets the filtered loans by `slice` and ranks them by `measure`, descending. Party slices (`originator`, `broker`, `loanCompany`) are pageable: send `size` (1–1000) and follow `nextCursor` via `after` to walk the whole ranking, with `total` giving the (approximate) number of distinct parties. Other slices return their fixed top-N. `period` accepts rolling windows (`last30Days`, `last60Days`, `last90Days`, `previousMonth`, `currentMonth`) resolved in UTC; `/loans/analytics/summary` with the same filters and period returns the matching population totals.
4909
4910
  */
4910
4911
  const loansAnalyticsChart = (options) => {
4911
4912
  return (options?.client ?? client).post({
@@ -5469,6 +5469,7 @@ var Loans = class {
5469
5469
  }
5470
5470
  /**
5471
5471
  * Configurable chart data (measure × slice)
5472
+ * Buckets the filtered loans by `slice` and ranks them by `measure`, descending. Party slices (`originator`, `broker`, `loanCompany`) are pageable: send `size` (1–1000) and follow `nextCursor` via `after` to walk the whole ranking, with `total` giving the (approximate) number of distinct parties. Other slices return their fixed top-N. `period` accepts rolling windows (`last30Days`, `last60Days`, `last90Days`, `previousMonth`, `currentMonth`) resolved in UTC; `/loans/analytics/summary` with the same filters and period returns the matching population totals.
5472
5473
  */
5473
5474
  static analyticsChart(options) {
5474
5475
  return (options?.client ?? client).post({
package/openapi.json CHANGED
@@ -5269,7 +5269,7 @@
5269
5269
  "$ref": "#/components/schemas/Pagination"
5270
5270
  },
5271
5271
  "period": {
5272
- "$ref": "#/components/schemas/Period"
5272
+ "$ref": "#/components/schemas/DatedPeriod"
5273
5273
  },
5274
5274
  "sort": {
5275
5275
  "$ref": "#/components/schemas/BreakdownSort"
@@ -5644,6 +5644,10 @@
5644
5644
  "measure": {
5645
5645
  "type": "string"
5646
5646
  },
5647
+ "nextCursor": {
5648
+ "description": "Paged party slices only (a chart request that passed `size` or `after` with `slice` `originator` / `broker` / `loanCompany`). Opaque cursor for the next page of the ranking — send it back as `after` with the same body. Absent on the last page.",
5649
+ "type": "string"
5650
+ },
5647
5651
  "omittedCount": {
5648
5652
  "description": "How many documents fell outside the bars — the size of the dropped tail, not its value. A chart groups by a capped number of distinct values, so a slice with more of them than the cap returns its largest groups and drops the rest; `zip`, `city`, `lender` and `originator` are the ones that reach it. It is the documents in the groups past the size cap, and only those: documents excluded from the slice by its empty-value filter, or carrying no value for it at all, are never grouped and are not counted here either. Where the response carries an `unattributed` row that row collects them; elsewhere a small residual against `/analytics/summary` can remain on `city`, `lender`, `originator` and similar, so bars plus this count reconcile with the summary's population exactly only on a slice with no such documents. `0` means the bars ARE the complete set, and the field is absent only where the grouping cannot truncate at all — so `0` and missing are different claims. Unlike a breakdown there is no next page to fetch: narrow the filters or pick a coarser slice. It is a DOCUMENT count and never a dollar or an average — the aggregation reports how many rows it left out, not what they were worth, so a truncated volume chart cannot be completed from this figure. One exception it does not cover: the average measures drop buckets thinner than a minimum sample size, and those are not counted here — compare against the summary when a mean matters.",
5649
5653
  "type": "number"
@@ -5654,6 +5658,14 @@
5654
5658
  },
5655
5659
  "slice": {
5656
5660
  "type": "string"
5661
+ },
5662
+ "total": {
5663
+ "description": "Paged party slices only. Distinct bucket keys (e.g. originators) in the filtered population — what a consumer paginates against. A cardinality ESTIMATE (see `totalApproximate`): near-exact below 40,000, approximate above. On an average measure it can exceed the ranked buckets, which drop keys under the 5-document floor. Use `nextCursor`, not `total`, to decide whether another page exists.",
5664
+ "type": "integer"
5665
+ },
5666
+ "totalApproximate": {
5667
+ "description": "Present (always `true`) alongside `total`: the total is a cardinality estimate, not an exact count.",
5668
+ "type": "boolean"
5657
5669
  }
5658
5670
  },
5659
5671
  "required": [
@@ -16075,6 +16087,36 @@
16075
16087
  }
16076
16088
  ]
16077
16089
  },
16090
+ "DatedPeriod": {
16091
+ "description": "Date window for loans / sales / market endpoints. Accepts every `Period` value plus rolling windows: `last30Days` / `last60Days` / `last90Days` (today minus 30 / 60 / 90 days through today), `previousMonth` (the last complete calendar month) and `currentMonth` (the 1st of this month through today). All windows are resolved in UTC with inclusive calendar-date bounds. Rolling windows are only accepted by the loans, sales and market endpoints (list, count, breakdowns, analytics summary / time-series / chart); originators / companies / branches / agents / offices endpoints return 400 for them.",
16092
+ "enum": [
16093
+ "2017",
16094
+ "2018",
16095
+ "2019",
16096
+ "2020",
16097
+ "2021",
16098
+ "2022",
16099
+ "2023",
16100
+ "2024",
16101
+ "2025",
16102
+ "2026",
16103
+ "last3Months",
16104
+ "last6Months",
16105
+ "last12Months",
16106
+ "last14Months",
16107
+ "last16Months",
16108
+ "last18Months",
16109
+ "last24Months",
16110
+ "yearToDate",
16111
+ "allTime",
16112
+ "last30Days",
16113
+ "last60Days",
16114
+ "last90Days",
16115
+ "previousMonth",
16116
+ "currentMonth"
16117
+ ],
16118
+ "type": "string"
16119
+ },
16078
16120
  "EarlyExitCounterparty": {
16079
16121
  "properties": {
16080
16122
  "name": {
@@ -18377,6 +18419,11 @@
18377
18419
  "advancedFilters": {
18378
18420
  "$ref": "#/components/schemas/FilterNode"
18379
18421
  },
18422
+ "after": {
18423
+ "description": "PARTY slices only. Opaque cursor from a previous page's `nextCursor`; send the same body otherwise. A cursor is bound to the `slice` and `measure` it was issued for (400 if they change). It is an offset into the ranking, so a rolling `period` re-resolved on a later UTC day ranks a shifted window.",
18424
+ "minLength": 1,
18425
+ "type": "string"
18426
+ },
18380
18427
  "filters": {
18381
18428
  "$ref": "#/components/schemas/FilterNode"
18382
18429
  },
@@ -18670,7 +18717,13 @@
18670
18717
  "$ref": "#/components/schemas/ChartMeasure"
18671
18718
  },
18672
18719
  "period": {
18673
- "$ref": "#/components/schemas/Period"
18720
+ "$ref": "#/components/schemas/DatedPeriod"
18721
+ },
18722
+ "size": {
18723
+ "description": "PARTY slices only (`originator`, `broker`, `loanCompany`; 400 on any other slice). Page size for the ranking, 1–1000. Passing `size` (or `after`) turns on paging: the response gains `total` / `totalApproximate` and, when more buckets remain, `nextCursor`, and drops `omittedCount`. Buckets stay ranked by `measure` descending (ties broken by key), and bucket labels stay NMLS ids. Default when only `after` is sent: 200, the fixed chart's bucket count. Paging reaches the top 10,000 ranked buckets.",
18724
+ "maximum": 1000,
18725
+ "minimum": 1,
18726
+ "type": "integer"
18674
18727
  },
18675
18728
  "slice": {
18676
18729
  "$ref": "#/components/schemas/LoanSlice"
@@ -19068,7 +19121,7 @@
19068
19121
  "$ref": "#/components/schemas/Pagination"
19069
19122
  },
19070
19123
  "period": {
19071
- "$ref": "#/components/schemas/Period"
19124
+ "$ref": "#/components/schemas/DatedPeriod"
19072
19125
  },
19073
19126
  "sort": {
19074
19127
  "items": {
@@ -19611,7 +19664,7 @@
19611
19664
  "type": "object"
19612
19665
  },
19613
19666
  "period": {
19614
- "$ref": "#/components/schemas/Period"
19667
+ "$ref": "#/components/schemas/DatedPeriod"
19615
19668
  }
19616
19669
  },
19617
19670
  "type": "object"
@@ -19918,7 +19971,7 @@
19918
19971
  "$ref": "#/components/schemas/Measure"
19919
19972
  },
19920
19973
  "period": {
19921
- "$ref": "#/components/schemas/Period"
19974
+ "$ref": "#/components/schemas/DatedPeriod"
19922
19975
  },
19923
19976
  "segment": {
19924
19977
  "$ref": "#/components/schemas/LoanSlice"
@@ -20221,7 +20274,7 @@
20221
20274
  "$ref": "#/components/schemas/MarketChartMeasure"
20222
20275
  },
20223
20276
  "period": {
20224
- "$ref": "#/components/schemas/Period"
20277
+ "$ref": "#/components/schemas/DatedPeriod"
20225
20278
  },
20226
20279
  "slice": {
20227
20280
  "$ref": "#/components/schemas/MarketSliceDimension"
@@ -20413,7 +20466,7 @@
20413
20466
  "type": "integer"
20414
20467
  },
20415
20468
  "period": {
20416
- "$ref": "#/components/schemas/Period"
20469
+ "$ref": "#/components/schemas/DatedPeriod"
20417
20470
  },
20418
20471
  "slice": {
20419
20472
  "description": "Break the mix down by a market dimension — `metro` for the metro (CBSA) grain, `state` / `county` / `zip` for geography, or any product dimension. Each bucket reports its OWN denominators, so bucket shares are comparable to each other and to the overall mix. Omit for the overall mix only.",
@@ -20839,7 +20892,7 @@
20839
20892
  "$ref": "#/components/schemas/Pagination"
20840
20893
  },
20841
20894
  "period": {
20842
- "$ref": "#/components/schemas/Period"
20895
+ "$ref": "#/components/schemas/DatedPeriod"
20843
20896
  },
20844
20897
  "sort": {
20845
20898
  "items": {
@@ -21198,7 +21251,7 @@
21198
21251
  "$ref": "#/components/schemas/MarketFlatFilters"
21199
21252
  },
21200
21253
  "period": {
21201
- "$ref": "#/components/schemas/Period"
21254
+ "$ref": "#/components/schemas/DatedPeriod"
21202
21255
  }
21203
21256
  },
21204
21257
  "type": "object"
@@ -21291,7 +21344,7 @@
21291
21344
  "$ref": "#/components/schemas/MarketMeasure"
21292
21345
  },
21293
21346
  "period": {
21294
- "$ref": "#/components/schemas/Period"
21347
+ "$ref": "#/components/schemas/DatedPeriod"
21295
21348
  },
21296
21349
  "segment": {
21297
21350
  "$ref": "#/components/schemas/MarketSliceDimension"
@@ -26867,6 +26920,7 @@
26867
26920
  "type": "object"
26868
26921
  },
26869
26922
  "Period": {
26923
+ "description": "Pre-aggregated period block. Rolling windows (last30Days, last60Days, last90Days, previousMonth, currentMonth) are NOT accepted here and return 400; they are supported on the loans, sales and market endpoints (list, count, breakdowns, analytics summary / time-series / chart) (see `DatedPeriod`).",
26870
26924
  "enum": [
26871
26925
  "2017",
26872
26926
  "2018",
@@ -29986,7 +30040,7 @@
29986
30040
  "$ref": "#/components/schemas/ChartMeasure"
29987
30041
  },
29988
30042
  "period": {
29989
- "$ref": "#/components/schemas/Period"
30043
+ "$ref": "#/components/schemas/DatedPeriod"
29990
30044
  },
29991
30045
  "slice": {
29992
30046
  "$ref": "#/components/schemas/SaleChartSlice"
@@ -30186,7 +30240,7 @@
30186
30240
  "$ref": "#/components/schemas/Pagination"
30187
30241
  },
30188
30242
  "period": {
30189
- "$ref": "#/components/schemas/Period"
30243
+ "$ref": "#/components/schemas/DatedPeriod"
30190
30244
  },
30191
30245
  "sort": {
30192
30246
  "items": {
@@ -30440,7 +30494,7 @@
30440
30494
  "$ref": "#/components/schemas/SaleFlatFilters"
30441
30495
  },
30442
30496
  "period": {
30443
- "$ref": "#/components/schemas/Period"
30497
+ "$ref": "#/components/schemas/DatedPeriod"
30444
30498
  }
30445
30499
  },
30446
30500
  "type": "object"
@@ -30464,7 +30518,7 @@
30464
30518
  "$ref": "#/components/schemas/Measure"
30465
30519
  },
30466
30520
  "period": {
30467
- "$ref": "#/components/schemas/Period"
30521
+ "$ref": "#/components/schemas/DatedPeriod"
30468
30522
  },
30469
30523
  "segment": {
30470
30524
  "$ref": "#/components/schemas/SegmentDimension"
@@ -31692,7 +31746,7 @@
31692
31746
  "info": {
31693
31747
  "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 1,000 rows per delivery: no entitlement required.** Available to\n every authenticated caller.\n- **Above 1,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.",
31694
31748
  "title": "ModelMatch API",
31695
- "version": "3.58.0"
31749
+ "version": "3.59.0"
31696
31750
  },
31697
31751
  "openapi": "3.1.0",
31698
31752
  "paths": {
@@ -55909,6 +55963,7 @@
55909
55963
  },
55910
55964
  "/v1/loans/analytics/chart": {
55911
55965
  "post": {
55966
+ "description": "Buckets the filtered loans by `slice` and ranks them by `measure`, descending. Party slices (`originator`, `broker`, `loanCompany`) are pageable: send `size` (1–1000) and follow `nextCursor` via `after` to walk the whole ranking, with `total` giving the (approximate) number of distinct parties. Other slices return their fixed top-N. `period` accepts rolling windows (`last30Days`, `last60Days`, `last90Days`, `previousMonth`, `currentMonth`) resolved in UTC; `/loans/analytics/summary` with the same filters and period returns the matching population totals.",
55912
55967
  "operationId": "loansAnalyticsChart",
55913
55968
  "requestBody": {
55914
55969
  "content": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@model-match/api",
3
- "version": "3.14.0",
3
+ "version": "3.15.0",
4
4
  "description": "TypeScript client for the ModelMatch API",
5
5
  "license": "MIT",
6
6
  "files": [