@model-match/api 3.13.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.
- package/dist/{index-Deq18_95.d.mts → index-BCrq4x8K.d.mts} +268 -16
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/slim/index.d.mts +18 -2
- package/dist/slim/index.mjs +58 -2
- package/dist/{src-B_YslAkc.mjs → src-DA2DVf_U.mjs} +59 -1
- package/openapi.json +683 -16
- package/package.json +2 -2
package/openapi.json
CHANGED
|
@@ -582,6 +582,357 @@
|
|
|
582
582
|
],
|
|
583
583
|
"type": "object"
|
|
584
584
|
},
|
|
585
|
+
"AdminCadLinks": {
|
|
586
|
+
"properties": {
|
|
587
|
+
"current": {
|
|
588
|
+
"nullable": true,
|
|
589
|
+
"properties": {
|
|
590
|
+
"companyName": {
|
|
591
|
+
"nullable": true,
|
|
592
|
+
"type": "string"
|
|
593
|
+
},
|
|
594
|
+
"companyNmlsId": {
|
|
595
|
+
"nullable": true,
|
|
596
|
+
"type": "string"
|
|
597
|
+
},
|
|
598
|
+
"startDate": {
|
|
599
|
+
"nullable": true,
|
|
600
|
+
"type": "string"
|
|
601
|
+
}
|
|
602
|
+
},
|
|
603
|
+
"required": [
|
|
604
|
+
"companyNmlsId",
|
|
605
|
+
"companyName",
|
|
606
|
+
"startDate"
|
|
607
|
+
],
|
|
608
|
+
"type": "object"
|
|
609
|
+
},
|
|
610
|
+
"explanation": {
|
|
611
|
+
"properties": {
|
|
612
|
+
"activeLogic": {
|
|
613
|
+
"type": "string"
|
|
614
|
+
},
|
|
615
|
+
"registrationLink": {
|
|
616
|
+
"type": "string"
|
|
617
|
+
},
|
|
618
|
+
"sponsorshipLink": {
|
|
619
|
+
"type": "string"
|
|
620
|
+
}
|
|
621
|
+
},
|
|
622
|
+
"required": [
|
|
623
|
+
"sponsorshipLink",
|
|
624
|
+
"registrationLink",
|
|
625
|
+
"activeLogic"
|
|
626
|
+
],
|
|
627
|
+
"type": "object"
|
|
628
|
+
},
|
|
629
|
+
"indexGaps": {
|
|
630
|
+
"items": {
|
|
631
|
+
"type": "string"
|
|
632
|
+
},
|
|
633
|
+
"type": "array"
|
|
634
|
+
},
|
|
635
|
+
"isWorking": {
|
|
636
|
+
"nullable": true,
|
|
637
|
+
"type": "boolean"
|
|
638
|
+
},
|
|
639
|
+
"name": {
|
|
640
|
+
"nullable": true,
|
|
641
|
+
"type": "string"
|
|
642
|
+
},
|
|
643
|
+
"nmlsId": {
|
|
644
|
+
"type": "string"
|
|
645
|
+
},
|
|
646
|
+
"registrations": {
|
|
647
|
+
"properties": {
|
|
648
|
+
"active": {
|
|
649
|
+
"type": "number"
|
|
650
|
+
},
|
|
651
|
+
"inactive": {
|
|
652
|
+
"type": "number"
|
|
653
|
+
},
|
|
654
|
+
"rows": {
|
|
655
|
+
"items": {
|
|
656
|
+
"properties": {
|
|
657
|
+
"companyName": {
|
|
658
|
+
"nullable": true,
|
|
659
|
+
"type": "string"
|
|
660
|
+
},
|
|
661
|
+
"companyNmlsId": {
|
|
662
|
+
"nullable": true,
|
|
663
|
+
"type": "string"
|
|
664
|
+
},
|
|
665
|
+
"endDate": {
|
|
666
|
+
"nullable": true,
|
|
667
|
+
"type": "string"
|
|
668
|
+
},
|
|
669
|
+
"isActive": {
|
|
670
|
+
"type": "boolean"
|
|
671
|
+
},
|
|
672
|
+
"licenseType": {
|
|
673
|
+
"nullable": true,
|
|
674
|
+
"type": "string"
|
|
675
|
+
},
|
|
676
|
+
"locationNmlsId": {
|
|
677
|
+
"nullable": true,
|
|
678
|
+
"type": "string"
|
|
679
|
+
},
|
|
680
|
+
"regulator": {
|
|
681
|
+
"nullable": true,
|
|
682
|
+
"type": "string"
|
|
683
|
+
},
|
|
684
|
+
"source": {
|
|
685
|
+
"enum": [
|
|
686
|
+
"sponsorship",
|
|
687
|
+
"registration",
|
|
688
|
+
null
|
|
689
|
+
],
|
|
690
|
+
"nullable": true,
|
|
691
|
+
"type": "string"
|
|
692
|
+
},
|
|
693
|
+
"startDate": {
|
|
694
|
+
"nullable": true,
|
|
695
|
+
"type": "string"
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
"required": [
|
|
699
|
+
"source",
|
|
700
|
+
"companyNmlsId",
|
|
701
|
+
"companyName",
|
|
702
|
+
"startDate",
|
|
703
|
+
"endDate",
|
|
704
|
+
"isActive",
|
|
705
|
+
"regulator",
|
|
706
|
+
"licenseType",
|
|
707
|
+
"locationNmlsId"
|
|
708
|
+
],
|
|
709
|
+
"type": "object"
|
|
710
|
+
},
|
|
711
|
+
"type": "array"
|
|
712
|
+
},
|
|
713
|
+
"total": {
|
|
714
|
+
"type": "number"
|
|
715
|
+
}
|
|
716
|
+
},
|
|
717
|
+
"required": [
|
|
718
|
+
"total",
|
|
719
|
+
"active",
|
|
720
|
+
"inactive",
|
|
721
|
+
"rows"
|
|
722
|
+
],
|
|
723
|
+
"type": "object"
|
|
724
|
+
},
|
|
725
|
+
"sponsorships": {
|
|
726
|
+
"properties": {
|
|
727
|
+
"active": {
|
|
728
|
+
"type": "number"
|
|
729
|
+
},
|
|
730
|
+
"inactive": {
|
|
731
|
+
"type": "number"
|
|
732
|
+
},
|
|
733
|
+
"rows": {
|
|
734
|
+
"items": {
|
|
735
|
+
"properties": {
|
|
736
|
+
"companyName": {
|
|
737
|
+
"nullable": true,
|
|
738
|
+
"type": "string"
|
|
739
|
+
},
|
|
740
|
+
"companyNmlsId": {
|
|
741
|
+
"nullable": true,
|
|
742
|
+
"type": "string"
|
|
743
|
+
},
|
|
744
|
+
"endDate": {
|
|
745
|
+
"nullable": true,
|
|
746
|
+
"type": "string"
|
|
747
|
+
},
|
|
748
|
+
"isActive": {
|
|
749
|
+
"type": "boolean"
|
|
750
|
+
},
|
|
751
|
+
"licenseType": {
|
|
752
|
+
"nullable": true,
|
|
753
|
+
"type": "string"
|
|
754
|
+
},
|
|
755
|
+
"locationNmlsId": {
|
|
756
|
+
"nullable": true,
|
|
757
|
+
"type": "string"
|
|
758
|
+
},
|
|
759
|
+
"regulator": {
|
|
760
|
+
"nullable": true,
|
|
761
|
+
"type": "string"
|
|
762
|
+
},
|
|
763
|
+
"source": {
|
|
764
|
+
"enum": [
|
|
765
|
+
"sponsorship",
|
|
766
|
+
"registration",
|
|
767
|
+
null
|
|
768
|
+
],
|
|
769
|
+
"nullable": true,
|
|
770
|
+
"type": "string"
|
|
771
|
+
},
|
|
772
|
+
"startDate": {
|
|
773
|
+
"nullable": true,
|
|
774
|
+
"type": "string"
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
"required": [
|
|
778
|
+
"source",
|
|
779
|
+
"companyNmlsId",
|
|
780
|
+
"companyName",
|
|
781
|
+
"startDate",
|
|
782
|
+
"endDate",
|
|
783
|
+
"isActive",
|
|
784
|
+
"regulator",
|
|
785
|
+
"licenseType",
|
|
786
|
+
"locationNmlsId"
|
|
787
|
+
],
|
|
788
|
+
"type": "object"
|
|
789
|
+
},
|
|
790
|
+
"type": "array"
|
|
791
|
+
},
|
|
792
|
+
"total": {
|
|
793
|
+
"type": "number"
|
|
794
|
+
}
|
|
795
|
+
},
|
|
796
|
+
"required": [
|
|
797
|
+
"total",
|
|
798
|
+
"active",
|
|
799
|
+
"inactive",
|
|
800
|
+
"rows"
|
|
801
|
+
],
|
|
802
|
+
"type": "object"
|
|
803
|
+
}
|
|
804
|
+
},
|
|
805
|
+
"required": [
|
|
806
|
+
"nmlsId",
|
|
807
|
+
"name",
|
|
808
|
+
"isWorking",
|
|
809
|
+
"current",
|
|
810
|
+
"sponsorships",
|
|
811
|
+
"registrations",
|
|
812
|
+
"explanation",
|
|
813
|
+
"indexGaps"
|
|
814
|
+
],
|
|
815
|
+
"type": "object"
|
|
816
|
+
},
|
|
817
|
+
"AdminCadLoadLaunch": {
|
|
818
|
+
"properties": {
|
|
819
|
+
"payload": {
|
|
820
|
+
"additionalProperties": {
|
|
821
|
+
"nullable": true
|
|
822
|
+
},
|
|
823
|
+
"type": "object"
|
|
824
|
+
},
|
|
825
|
+
"taskArn": {
|
|
826
|
+
"type": "string"
|
|
827
|
+
},
|
|
828
|
+
"taskId": {
|
|
829
|
+
"type": "string"
|
|
830
|
+
}
|
|
831
|
+
},
|
|
832
|
+
"required": [
|
|
833
|
+
"taskId",
|
|
834
|
+
"taskArn",
|
|
835
|
+
"payload"
|
|
836
|
+
],
|
|
837
|
+
"type": "object"
|
|
838
|
+
},
|
|
839
|
+
"AdminCadLoadRequest": {
|
|
840
|
+
"properties": {
|
|
841
|
+
"bucket": {
|
|
842
|
+
"description": "Source bucket (default `nmls-raw-data`).",
|
|
843
|
+
"minLength": 1,
|
|
844
|
+
"type": "string"
|
|
845
|
+
},
|
|
846
|
+
"loadType": {
|
|
847
|
+
"description": "`sample` loads only the first file. Default `full`.",
|
|
848
|
+
"enum": [
|
|
849
|
+
"full",
|
|
850
|
+
"sample"
|
|
851
|
+
],
|
|
852
|
+
"type": "string"
|
|
853
|
+
},
|
|
854
|
+
"prefix": {
|
|
855
|
+
"description": "S3 prefix of one month's NMLS file set. Required unless resuming.",
|
|
856
|
+
"example": "consumer-access/2026/ConsumerAccess_nmlsb2bfiles_Sep2026/",
|
|
857
|
+
"minLength": 1,
|
|
858
|
+
"type": "string"
|
|
859
|
+
},
|
|
860
|
+
"reindex": {
|
|
861
|
+
"description": "Launch a full `index-cad` run when the load completes.",
|
|
862
|
+
"type": "boolean"
|
|
863
|
+
},
|
|
864
|
+
"restartFromFile": {
|
|
865
|
+
"description": "With `resumeLoadId`: reset this file (e.g. `Branch.csv`) and every later one first.",
|
|
866
|
+
"minLength": 1,
|
|
867
|
+
"type": "string"
|
|
868
|
+
},
|
|
869
|
+
"resumeLoadId": {
|
|
870
|
+
"description": "Resume an existing load by its id (resets stuck/failed files).",
|
|
871
|
+
"minLength": 1,
|
|
872
|
+
"type": "string"
|
|
873
|
+
}
|
|
874
|
+
},
|
|
875
|
+
"type": "object"
|
|
876
|
+
},
|
|
877
|
+
"AdminCadLoadTaskStatus": {
|
|
878
|
+
"properties": {
|
|
879
|
+
"createdAt": {
|
|
880
|
+
"nullable": true,
|
|
881
|
+
"type": "string"
|
|
882
|
+
},
|
|
883
|
+
"desiredStatus": {
|
|
884
|
+
"nullable": true,
|
|
885
|
+
"type": "string"
|
|
886
|
+
},
|
|
887
|
+
"exitCode": {
|
|
888
|
+
"nullable": true,
|
|
889
|
+
"type": "number"
|
|
890
|
+
},
|
|
891
|
+
"lastStatus": {
|
|
892
|
+
"type": "string"
|
|
893
|
+
},
|
|
894
|
+
"startedAt": {
|
|
895
|
+
"nullable": true,
|
|
896
|
+
"type": "string"
|
|
897
|
+
},
|
|
898
|
+
"state": {
|
|
899
|
+
"enum": [
|
|
900
|
+
"pending",
|
|
901
|
+
"running",
|
|
902
|
+
"succeeded",
|
|
903
|
+
"failed"
|
|
904
|
+
],
|
|
905
|
+
"type": "string"
|
|
906
|
+
},
|
|
907
|
+
"stoppedAt": {
|
|
908
|
+
"nullable": true,
|
|
909
|
+
"type": "string"
|
|
910
|
+
},
|
|
911
|
+
"stoppedReason": {
|
|
912
|
+
"nullable": true,
|
|
913
|
+
"type": "string"
|
|
914
|
+
},
|
|
915
|
+
"taskArn": {
|
|
916
|
+
"type": "string"
|
|
917
|
+
},
|
|
918
|
+
"taskId": {
|
|
919
|
+
"type": "string"
|
|
920
|
+
}
|
|
921
|
+
},
|
|
922
|
+
"required": [
|
|
923
|
+
"taskId",
|
|
924
|
+
"taskArn",
|
|
925
|
+
"state",
|
|
926
|
+
"lastStatus",
|
|
927
|
+
"desiredStatus",
|
|
928
|
+
"exitCode",
|
|
929
|
+
"stoppedReason",
|
|
930
|
+
"createdAt",
|
|
931
|
+
"startedAt",
|
|
932
|
+
"stoppedAt"
|
|
933
|
+
],
|
|
934
|
+
"type": "object"
|
|
935
|
+
},
|
|
585
936
|
"AdminPushAlertRequest": {
|
|
586
937
|
"properties": {
|
|
587
938
|
"dedupeKey": {
|
|
@@ -4918,7 +5269,7 @@
|
|
|
4918
5269
|
"$ref": "#/components/schemas/Pagination"
|
|
4919
5270
|
},
|
|
4920
5271
|
"period": {
|
|
4921
|
-
"$ref": "#/components/schemas/
|
|
5272
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
4922
5273
|
},
|
|
4923
5274
|
"sort": {
|
|
4924
5275
|
"$ref": "#/components/schemas/BreakdownSort"
|
|
@@ -5293,6 +5644,10 @@
|
|
|
5293
5644
|
"measure": {
|
|
5294
5645
|
"type": "string"
|
|
5295
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
|
+
},
|
|
5296
5651
|
"omittedCount": {
|
|
5297
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.",
|
|
5298
5653
|
"type": "number"
|
|
@@ -5303,6 +5658,14 @@
|
|
|
5303
5658
|
},
|
|
5304
5659
|
"slice": {
|
|
5305
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"
|
|
5306
5669
|
}
|
|
5307
5670
|
},
|
|
5308
5671
|
"required": [
|
|
@@ -15724,6 +16087,36 @@
|
|
|
15724
16087
|
}
|
|
15725
16088
|
]
|
|
15726
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
|
+
},
|
|
15727
16120
|
"EarlyExitCounterparty": {
|
|
15728
16121
|
"properties": {
|
|
15729
16122
|
"name": {
|
|
@@ -18026,6 +18419,11 @@
|
|
|
18026
18419
|
"advancedFilters": {
|
|
18027
18420
|
"$ref": "#/components/schemas/FilterNode"
|
|
18028
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
|
+
},
|
|
18029
18427
|
"filters": {
|
|
18030
18428
|
"$ref": "#/components/schemas/FilterNode"
|
|
18031
18429
|
},
|
|
@@ -18319,7 +18717,13 @@
|
|
|
18319
18717
|
"$ref": "#/components/schemas/ChartMeasure"
|
|
18320
18718
|
},
|
|
18321
18719
|
"period": {
|
|
18322
|
-
"$ref": "#/components/schemas/
|
|
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"
|
|
18323
18727
|
},
|
|
18324
18728
|
"slice": {
|
|
18325
18729
|
"$ref": "#/components/schemas/LoanSlice"
|
|
@@ -18717,7 +19121,7 @@
|
|
|
18717
19121
|
"$ref": "#/components/schemas/Pagination"
|
|
18718
19122
|
},
|
|
18719
19123
|
"period": {
|
|
18720
|
-
"$ref": "#/components/schemas/
|
|
19124
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
18721
19125
|
},
|
|
18722
19126
|
"sort": {
|
|
18723
19127
|
"items": {
|
|
@@ -19260,7 +19664,7 @@
|
|
|
19260
19664
|
"type": "object"
|
|
19261
19665
|
},
|
|
19262
19666
|
"period": {
|
|
19263
|
-
"$ref": "#/components/schemas/
|
|
19667
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
19264
19668
|
}
|
|
19265
19669
|
},
|
|
19266
19670
|
"type": "object"
|
|
@@ -19567,7 +19971,7 @@
|
|
|
19567
19971
|
"$ref": "#/components/schemas/Measure"
|
|
19568
19972
|
},
|
|
19569
19973
|
"period": {
|
|
19570
|
-
"$ref": "#/components/schemas/
|
|
19974
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
19571
19975
|
},
|
|
19572
19976
|
"segment": {
|
|
19573
19977
|
"$ref": "#/components/schemas/LoanSlice"
|
|
@@ -19870,7 +20274,7 @@
|
|
|
19870
20274
|
"$ref": "#/components/schemas/MarketChartMeasure"
|
|
19871
20275
|
},
|
|
19872
20276
|
"period": {
|
|
19873
|
-
"$ref": "#/components/schemas/
|
|
20277
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
19874
20278
|
},
|
|
19875
20279
|
"slice": {
|
|
19876
20280
|
"$ref": "#/components/schemas/MarketSliceDimension"
|
|
@@ -20062,7 +20466,7 @@
|
|
|
20062
20466
|
"type": "integer"
|
|
20063
20467
|
},
|
|
20064
20468
|
"period": {
|
|
20065
|
-
"$ref": "#/components/schemas/
|
|
20469
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
20066
20470
|
},
|
|
20067
20471
|
"slice": {
|
|
20068
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.",
|
|
@@ -20488,7 +20892,7 @@
|
|
|
20488
20892
|
"$ref": "#/components/schemas/Pagination"
|
|
20489
20893
|
},
|
|
20490
20894
|
"period": {
|
|
20491
|
-
"$ref": "#/components/schemas/
|
|
20895
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
20492
20896
|
},
|
|
20493
20897
|
"sort": {
|
|
20494
20898
|
"items": {
|
|
@@ -20847,7 +21251,7 @@
|
|
|
20847
21251
|
"$ref": "#/components/schemas/MarketFlatFilters"
|
|
20848
21252
|
},
|
|
20849
21253
|
"period": {
|
|
20850
|
-
"$ref": "#/components/schemas/
|
|
21254
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
20851
21255
|
}
|
|
20852
21256
|
},
|
|
20853
21257
|
"type": "object"
|
|
@@ -20940,7 +21344,7 @@
|
|
|
20940
21344
|
"$ref": "#/components/schemas/MarketMeasure"
|
|
20941
21345
|
},
|
|
20942
21346
|
"period": {
|
|
20943
|
-
"$ref": "#/components/schemas/
|
|
21347
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
20944
21348
|
},
|
|
20945
21349
|
"segment": {
|
|
20946
21350
|
"$ref": "#/components/schemas/MarketSliceDimension"
|
|
@@ -24338,6 +24742,46 @@
|
|
|
24338
24742
|
"nmlsId": {
|
|
24339
24743
|
"$ref": "#/components/schemas/TextFilterValue"
|
|
24340
24744
|
},
|
|
24745
|
+
"officeCity": {
|
|
24746
|
+
"allOf": [
|
|
24747
|
+
{
|
|
24748
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
24749
|
+
},
|
|
24750
|
+
{
|
|
24751
|
+
"description": "Office city — matches originators whose NMLS-registered office is in this city (NOT where they produced loans; that is `city`). Resolved through the location dictionary, so spelling variants match (`Saint Louis` = `St. Louis`); pair it with `officeState` to pick one of several same-named cities (a sibling production `state` does NOT disambiguate it), or pass a dictionary city id. An unrecognized city is a 400 naming `instantSearch`. Pass an array to match any of several."
|
|
24752
|
+
}
|
|
24753
|
+
]
|
|
24754
|
+
},
|
|
24755
|
+
"officeCounty": {
|
|
24756
|
+
"allOf": [
|
|
24757
|
+
{
|
|
24758
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
24759
|
+
},
|
|
24760
|
+
{
|
|
24761
|
+
"description": "Office county — matches originators whose NMLS-registered office zip lies in this county. Accepts a county name (`Orleans`, with a sibling `officeState` when the name exists in several states), a 5-digit FIPS code (`22071`) or a dictionary county id. The office address carries no county of its own, so it is derived from the office zip: each zip is assigned to the ONE county holding most of its parcels, which makes the counties of a state partition its offices but attributes an office in a zip that straddles a county line to the zip's main county. An unrecognized county is a 400."
|
|
24762
|
+
}
|
|
24763
|
+
]
|
|
24764
|
+
},
|
|
24765
|
+
"officeState": {
|
|
24766
|
+
"allOf": [
|
|
24767
|
+
{
|
|
24768
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
24769
|
+
},
|
|
24770
|
+
{
|
|
24771
|
+
"description": "Office state — matches originators whose NMLS-registered office is in this state (NOT where they produced loans; that is `state`). A 2-letter code or full name (`LA` or `Louisiana`), any case; pass an array to match any of several. Period-independent. Originators with no office address on file never match."
|
|
24772
|
+
}
|
|
24773
|
+
]
|
|
24774
|
+
},
|
|
24775
|
+
"officeZip": {
|
|
24776
|
+
"allOf": [
|
|
24777
|
+
{
|
|
24778
|
+
"$ref": "#/components/schemas/TextFilterValue"
|
|
24779
|
+
},
|
|
24780
|
+
{
|
|
24781
|
+
"description": "Office zip code — matches originators whose NMLS-registered office is in this 5-digit zip (ZIP+4 office addresses match their 5-digit prefix). Pass an array to match any of several."
|
|
24782
|
+
}
|
|
24783
|
+
]
|
|
24784
|
+
},
|
|
24341
24785
|
"opportunityZoneCount": {
|
|
24342
24786
|
"allOf": [
|
|
24343
24787
|
{
|
|
@@ -24741,7 +25185,9 @@
|
|
|
24741
25185
|
"city",
|
|
24742
25186
|
"countyFips",
|
|
24743
25187
|
"producersOnly",
|
|
24744
|
-
"yearsInIndustry"
|
|
25188
|
+
"yearsInIndustry",
|
|
25189
|
+
"officeState",
|
|
25190
|
+
"officeCity"
|
|
24745
25191
|
],
|
|
24746
25192
|
"type": "string"
|
|
24747
25193
|
},
|
|
@@ -25667,6 +26113,21 @@
|
|
|
25667
26113
|
"nullable": true,
|
|
25668
26114
|
"type": "string"
|
|
25669
26115
|
},
|
|
26116
|
+
"officeCity": {
|
|
26117
|
+
"description": "City of the originator's NMLS-registered office — the value the `officeCity` filter matches. Null when no office address is on file.",
|
|
26118
|
+
"nullable": true,
|
|
26119
|
+
"type": "string"
|
|
26120
|
+
},
|
|
26121
|
+
"officeState": {
|
|
26122
|
+
"description": "2-letter state of the originator's NMLS-registered office — the value the `officeState` filter matches.",
|
|
26123
|
+
"nullable": true,
|
|
26124
|
+
"type": "string"
|
|
26125
|
+
},
|
|
26126
|
+
"officeZip": {
|
|
26127
|
+
"description": "Zip of the originator's NMLS-registered office as stored (5-digit, occasionally ZIP+4) — the value the `officeZip` filter matches.",
|
|
26128
|
+
"nullable": true,
|
|
26129
|
+
"type": "string"
|
|
26130
|
+
},
|
|
25670
26131
|
"phone": {
|
|
25671
26132
|
"nullable": true,
|
|
25672
26133
|
"type": "string"
|
|
@@ -26459,6 +26920,7 @@
|
|
|
26459
26920
|
"type": "object"
|
|
26460
26921
|
},
|
|
26461
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`).",
|
|
26462
26924
|
"enum": [
|
|
26463
26925
|
"2017",
|
|
26464
26926
|
"2018",
|
|
@@ -29578,7 +30040,7 @@
|
|
|
29578
30040
|
"$ref": "#/components/schemas/ChartMeasure"
|
|
29579
30041
|
},
|
|
29580
30042
|
"period": {
|
|
29581
|
-
"$ref": "#/components/schemas/
|
|
30043
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
29582
30044
|
},
|
|
29583
30045
|
"slice": {
|
|
29584
30046
|
"$ref": "#/components/schemas/SaleChartSlice"
|
|
@@ -29778,7 +30240,7 @@
|
|
|
29778
30240
|
"$ref": "#/components/schemas/Pagination"
|
|
29779
30241
|
},
|
|
29780
30242
|
"period": {
|
|
29781
|
-
"$ref": "#/components/schemas/
|
|
30243
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
29782
30244
|
},
|
|
29783
30245
|
"sort": {
|
|
29784
30246
|
"items": {
|
|
@@ -30032,7 +30494,7 @@
|
|
|
30032
30494
|
"$ref": "#/components/schemas/SaleFlatFilters"
|
|
30033
30495
|
},
|
|
30034
30496
|
"period": {
|
|
30035
|
-
"$ref": "#/components/schemas/
|
|
30497
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
30036
30498
|
}
|
|
30037
30499
|
},
|
|
30038
30500
|
"type": "object"
|
|
@@ -30056,7 +30518,7 @@
|
|
|
30056
30518
|
"$ref": "#/components/schemas/Measure"
|
|
30057
30519
|
},
|
|
30058
30520
|
"period": {
|
|
30059
|
-
"$ref": "#/components/schemas/
|
|
30521
|
+
"$ref": "#/components/schemas/DatedPeriod"
|
|
30060
30522
|
},
|
|
30061
30523
|
"segment": {
|
|
30062
30524
|
"$ref": "#/components/schemas/SegmentDimension"
|
|
@@ -31284,7 +31746,7 @@
|
|
|
31284
31746
|
"info": {
|
|
31285
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.",
|
|
31286
31748
|
"title": "ModelMatch API",
|
|
31287
|
-
"version": "3.
|
|
31749
|
+
"version": "3.59.0"
|
|
31288
31750
|
},
|
|
31289
31751
|
"openapi": "3.1.0",
|
|
31290
31752
|
"paths": {
|
|
@@ -34972,6 +35434,210 @@
|
|
|
34972
35434
|
]
|
|
34973
35435
|
}
|
|
34974
35436
|
},
|
|
35437
|
+
"/v1/admin/cad/links/{nmlsId}": {
|
|
35438
|
+
"get": {
|
|
35439
|
+
"description": "Diagnostic: the LO's indexed employment union (sponsorships + registrations), split by source with active counts. `indexGaps` lists what the former database diagnostic showed that the index does not carry.",
|
|
35440
|
+
"operationId": "adminGetCadLinks",
|
|
35441
|
+
"parameters": [
|
|
35442
|
+
{
|
|
35443
|
+
"description": "Individual NMLS id.",
|
|
35444
|
+
"in": "path",
|
|
35445
|
+
"name": "nmlsId",
|
|
35446
|
+
"required": true,
|
|
35447
|
+
"schema": {
|
|
35448
|
+
"description": "Individual NMLS id.",
|
|
35449
|
+
"example": "3352",
|
|
35450
|
+
"pattern": "^\\d+$/u",
|
|
35451
|
+
"type": "string"
|
|
35452
|
+
}
|
|
35453
|
+
}
|
|
35454
|
+
],
|
|
35455
|
+
"responses": {
|
|
35456
|
+
"200": {
|
|
35457
|
+
"content": {
|
|
35458
|
+
"application/json": {
|
|
35459
|
+
"schema": {
|
|
35460
|
+
"$ref": "#/components/schemas/AdminCadLinks"
|
|
35461
|
+
}
|
|
35462
|
+
}
|
|
35463
|
+
},
|
|
35464
|
+
"description": "Links"
|
|
35465
|
+
},
|
|
35466
|
+
"401": {
|
|
35467
|
+
"content": {
|
|
35468
|
+
"application/json": {
|
|
35469
|
+
"schema": {
|
|
35470
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
35471
|
+
}
|
|
35472
|
+
}
|
|
35473
|
+
},
|
|
35474
|
+
"description": "Not authenticated"
|
|
35475
|
+
},
|
|
35476
|
+
"403": {
|
|
35477
|
+
"content": {
|
|
35478
|
+
"application/json": {
|
|
35479
|
+
"schema": {
|
|
35480
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
35481
|
+
}
|
|
35482
|
+
}
|
|
35483
|
+
},
|
|
35484
|
+
"description": "Admin role required"
|
|
35485
|
+
},
|
|
35486
|
+
"404": {
|
|
35487
|
+
"content": {
|
|
35488
|
+
"application/json": {
|
|
35489
|
+
"schema": {
|
|
35490
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
35491
|
+
}
|
|
35492
|
+
}
|
|
35493
|
+
},
|
|
35494
|
+
"description": "No individual with that NMLS id"
|
|
35495
|
+
}
|
|
35496
|
+
},
|
|
35497
|
+
"summary": "An LO's sponsorship / registration links (admin)",
|
|
35498
|
+
"tags": [
|
|
35499
|
+
"Admin: NMLS"
|
|
35500
|
+
]
|
|
35501
|
+
}
|
|
35502
|
+
},
|
|
35503
|
+
"/v1/admin/cad/load": {
|
|
35504
|
+
"post": {
|
|
35505
|
+
"description": "Starts the `load-cad` ECS task and returns its id. Poll `GET /v1/admin/cad/load/{taskId}`. The load writes the licensing database only; run `index-cad` afterwards (or pass `reindex: true`) to publish it.",
|
|
35506
|
+
"operationId": "adminLaunchCadLoad",
|
|
35507
|
+
"requestBody": {
|
|
35508
|
+
"content": {
|
|
35509
|
+
"application/json": {
|
|
35510
|
+
"schema": {
|
|
35511
|
+
"$ref": "#/components/schemas/AdminCadLoadRequest"
|
|
35512
|
+
}
|
|
35513
|
+
}
|
|
35514
|
+
},
|
|
35515
|
+
"required": true
|
|
35516
|
+
},
|
|
35517
|
+
"responses": {
|
|
35518
|
+
"202": {
|
|
35519
|
+
"content": {
|
|
35520
|
+
"application/json": {
|
|
35521
|
+
"schema": {
|
|
35522
|
+
"$ref": "#/components/schemas/AdminCadLoadLaunch"
|
|
35523
|
+
}
|
|
35524
|
+
}
|
|
35525
|
+
},
|
|
35526
|
+
"description": "Task launched"
|
|
35527
|
+
},
|
|
35528
|
+
"400": {
|
|
35529
|
+
"content": {
|
|
35530
|
+
"application/json": {
|
|
35531
|
+
"schema": {
|
|
35532
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
35533
|
+
}
|
|
35534
|
+
}
|
|
35535
|
+
},
|
|
35536
|
+
"description": "Invalid body"
|
|
35537
|
+
},
|
|
35538
|
+
"401": {
|
|
35539
|
+
"content": {
|
|
35540
|
+
"application/json": {
|
|
35541
|
+
"schema": {
|
|
35542
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
35543
|
+
}
|
|
35544
|
+
}
|
|
35545
|
+
},
|
|
35546
|
+
"description": "Not authenticated"
|
|
35547
|
+
},
|
|
35548
|
+
"403": {
|
|
35549
|
+
"content": {
|
|
35550
|
+
"application/json": {
|
|
35551
|
+
"schema": {
|
|
35552
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
35553
|
+
}
|
|
35554
|
+
}
|
|
35555
|
+
},
|
|
35556
|
+
"description": "Admin role required"
|
|
35557
|
+
},
|
|
35558
|
+
"503": {
|
|
35559
|
+
"content": {
|
|
35560
|
+
"application/json": {
|
|
35561
|
+
"schema": {
|
|
35562
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
35563
|
+
}
|
|
35564
|
+
}
|
|
35565
|
+
},
|
|
35566
|
+
"description": "ECS not configured (local dev)"
|
|
35567
|
+
}
|
|
35568
|
+
},
|
|
35569
|
+
"summary": "Launch the NMLS loader (admin)",
|
|
35570
|
+
"tags": [
|
|
35571
|
+
"Admin: NMLS"
|
|
35572
|
+
]
|
|
35573
|
+
}
|
|
35574
|
+
},
|
|
35575
|
+
"/v1/admin/cad/load/{taskId}": {
|
|
35576
|
+
"get": {
|
|
35577
|
+
"description": "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.",
|
|
35578
|
+
"operationId": "adminGetCadLoadTask",
|
|
35579
|
+
"parameters": [
|
|
35580
|
+
{
|
|
35581
|
+
"description": "ECS task id returned by the launch route.",
|
|
35582
|
+
"in": "path",
|
|
35583
|
+
"name": "taskId",
|
|
35584
|
+
"required": true,
|
|
35585
|
+
"schema": {
|
|
35586
|
+
"description": "ECS task id returned by the launch route.",
|
|
35587
|
+
"example": "0123456789abcdef0123456789abcdef",
|
|
35588
|
+
"pattern": "^[a-f0-9]{32}$/u",
|
|
35589
|
+
"type": "string"
|
|
35590
|
+
}
|
|
35591
|
+
}
|
|
35592
|
+
],
|
|
35593
|
+
"responses": {
|
|
35594
|
+
"200": {
|
|
35595
|
+
"content": {
|
|
35596
|
+
"application/json": {
|
|
35597
|
+
"schema": {
|
|
35598
|
+
"$ref": "#/components/schemas/AdminCadLoadTaskStatus"
|
|
35599
|
+
}
|
|
35600
|
+
}
|
|
35601
|
+
},
|
|
35602
|
+
"description": "Task status"
|
|
35603
|
+
},
|
|
35604
|
+
"401": {
|
|
35605
|
+
"content": {
|
|
35606
|
+
"application/json": {
|
|
35607
|
+
"schema": {
|
|
35608
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
35609
|
+
}
|
|
35610
|
+
}
|
|
35611
|
+
},
|
|
35612
|
+
"description": "Not authenticated"
|
|
35613
|
+
},
|
|
35614
|
+
"403": {
|
|
35615
|
+
"content": {
|
|
35616
|
+
"application/json": {
|
|
35617
|
+
"schema": {
|
|
35618
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
35619
|
+
}
|
|
35620
|
+
}
|
|
35621
|
+
},
|
|
35622
|
+
"description": "Admin role required"
|
|
35623
|
+
},
|
|
35624
|
+
"404": {
|
|
35625
|
+
"content": {
|
|
35626
|
+
"application/json": {
|
|
35627
|
+
"schema": {
|
|
35628
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
35629
|
+
}
|
|
35630
|
+
}
|
|
35631
|
+
},
|
|
35632
|
+
"description": "No load-cad task with that id (or ECS expired it)"
|
|
35633
|
+
}
|
|
35634
|
+
},
|
|
35635
|
+
"summary": "Status of a loader task (admin)",
|
|
35636
|
+
"tags": [
|
|
35637
|
+
"Admin: NMLS"
|
|
35638
|
+
]
|
|
35639
|
+
}
|
|
35640
|
+
},
|
|
34975
35641
|
"/v1/admin/jobs/{jobId}": {
|
|
34976
35642
|
"get": {
|
|
34977
35643
|
"description": "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.",
|
|
@@ -55297,6 +55963,7 @@
|
|
|
55297
55963
|
},
|
|
55298
55964
|
"/v1/loans/analytics/chart": {
|
|
55299
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.",
|
|
55300
55967
|
"operationId": "loansAnalyticsChart",
|
|
55301
55968
|
"requestBody": {
|
|
55302
55969
|
"content": {
|