@chadwin/sdk 0.5.0 → 0.7.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.d.cts CHANGED
@@ -7,6 +7,23 @@ interface PromiseWithResponse<T> extends Promise<T> {
7
7
 
8
8
  interface components {
9
9
  schemas: {
10
+ CompanyFinancialStatementPeriod: {
11
+ accession_number: string;
12
+ balance_sheet: components["schemas"]["FinancialStatementBalanceSheet"];
13
+ cash_flow_statement: components["schemas"]["FinancialStatementCashFlowStatement"];
14
+ currency: string;
15
+ /** @enum {string} */
16
+ fiscal_period: "FY";
17
+ fiscal_year: number;
18
+ income_statement: components["schemas"]["FinancialStatementIncomeStatement"];
19
+ metrics: components["schemas"]["FinancialStatementMetrics"];
20
+ /** Format: date */
21
+ period_end_date: string;
22
+ };
23
+ CompanyFinancialStatementsResponse: {
24
+ issuer: components["schemas"]["FinancialStatementIssuer"];
25
+ periods: components["schemas"]["CompanyFinancialStatementPeriod"][];
26
+ };
10
27
  CompanyInsiderTransactionListItem: {
11
28
  /**
12
29
  * Format: date-time
@@ -103,22 +120,25 @@ interface components {
103
120
  };
104
121
  CompanyInsiderTransactionsBadRequestResponse: {
105
122
  /**
106
- * @description Machine-readable error code. date_window_too_large means the requested filing-date window matched more than 1000 rows and should be narrowed.
107
- * @example date_window_too_large
123
+ * @example invalid_cursor
108
124
  * @enum {string}
109
125
  */
110
- error: "invalid_transaction_codes" | "invalid_limit" | "invalid_since" | "invalid_date_window" | "date_window_too_large";
126
+ error: "invalid_cursor" | "invalid_transaction_codes" | "invalid_limit" | "invalid_since" | "invalid_date_window" | "unsupported_cursor";
111
127
  };
112
128
  CompanyInsiderTransactionsResponse: {
129
+ has_more: boolean;
113
130
  issuer: components["schemas"]["InsiderIssuer"];
131
+ next_cursor: string | null;
114
132
  transactions: components["schemas"]["CompanyInsiderTransactionListItem"][];
115
133
  };
116
134
  CompanyProposedSalesResponse: {
135
+ has_more: boolean;
117
136
  issuer: {
118
137
  cik: string;
119
138
  name: string;
120
139
  ticker: string;
121
140
  };
141
+ next_cursor: string | null;
122
142
  proposed_sales: {
123
143
  accepted_at: string;
124
144
  accession_number: string;
@@ -249,6 +269,123 @@ interface components {
249
269
  /** @example unauthorized */
250
270
  error: string;
251
271
  };
272
+ FinancialStatementBalanceSheet: {
273
+ accounts_payable_current?: string;
274
+ accounts_receivable_current?: string;
275
+ cash_and_cash_equivalents?: string;
276
+ current_portion_of_long_term_debt?: string;
277
+ equity_attributable_to_parent?: string;
278
+ goodwill?: string;
279
+ intangible_assets_net_excluding_goodwill?: string;
280
+ inventory?: string;
281
+ long_term_debt_noncurrent?: string;
282
+ property_plant_and_equipment_net?: string;
283
+ short_term_borrowings?: string;
284
+ short_term_investments?: string;
285
+ total_assets?: string;
286
+ total_borrowings?: string;
287
+ total_current_assets?: string;
288
+ total_current_liabilities?: string;
289
+ total_liabilities?: string;
290
+ total_liabilities_and_equity?: string;
291
+ };
292
+ FinancialStatementCashFlowStatement: {
293
+ business_acquisitions_net?: string;
294
+ capital_expenditure?: string;
295
+ common_dividends_paid?: string;
296
+ common_stock_repurchases?: string;
297
+ depreciation_and_amortization_adjustment?: string;
298
+ effect_of_exchange_rate_on_cash?: string;
299
+ net_cash_from_financing_activities?: string;
300
+ net_cash_from_investing_activities?: string;
301
+ net_cash_from_operating_activities?: string;
302
+ net_change_in_cash_cash_equivalents_and_restricted_cash_including_exchange_rate_effect?: string;
303
+ proceeds_from_common_stock_issuance?: string;
304
+ proceeds_from_debt_issuance?: string;
305
+ purchases_of_investments?: string;
306
+ repayments_of_debt?: string;
307
+ share_based_compensation_adjustment?: string;
308
+ };
309
+ FinancialStatementIncomeStatement: {
310
+ basic_earnings_per_share?: string;
311
+ basic_weighted_average_shares?: string;
312
+ cost_of_sales?: string;
313
+ diluted_earnings_per_share?: string;
314
+ diluted_weighted_average_shares?: string;
315
+ gross_profit?: string;
316
+ income_before_income_taxes?: string;
317
+ income_tax_expense?: string;
318
+ interest_expense?: string;
319
+ net_income_attributable_to_noncontrolling_interests?: string;
320
+ net_income_attributable_to_parent?: string;
321
+ net_income_including_noncontrolling_interests?: string;
322
+ nonoperating_income_expense?: string;
323
+ operating_income?: string;
324
+ research_and_development_expense?: string;
325
+ revenue?: string;
326
+ selling_general_and_administrative_expense?: string;
327
+ total_operating_expenses?: string;
328
+ };
329
+ FinancialStatementIssuer: {
330
+ cik: string;
331
+ name: string;
332
+ ticker: string;
333
+ };
334
+ FinancialStatementMetrics: {
335
+ asset_turnover?: string;
336
+ cash_ratio?: string;
337
+ current_ratio?: string;
338
+ debt_to_assets?: string;
339
+ debt_to_equity?: string;
340
+ ebit?: string;
341
+ effective_tax_rate?: string;
342
+ free_cash_flow?: string;
343
+ free_cash_flow_margin?: string;
344
+ gross_margin?: string;
345
+ interest_coverage?: string;
346
+ net_debt?: string;
347
+ net_margin?: string;
348
+ operating_cash_flow_margin?: string;
349
+ operating_cash_flow_to_net_income?: string;
350
+ operating_margin?: string;
351
+ pretax_margin?: string;
352
+ quick_ratio?: string;
353
+ return_on_assets?: string;
354
+ return_on_equity?: string;
355
+ working_capital?: string;
356
+ };
357
+ FinancialStatementsBadRequest: {
358
+ /** @enum {string} */
359
+ error: "invalid_ticker" | "invalid_query_parameters";
360
+ };
361
+ FinancialStatementsCompanyNotFound: {
362
+ /** @enum {string} */
363
+ error: "company_not_found";
364
+ };
365
+ FinancialStatementsInternalError: {
366
+ /** @enum {string} */
367
+ error: "internal_server_error";
368
+ };
369
+ FinancialStatementsNotEntitled: {
370
+ /** @enum {string} */
371
+ error: "dataset_not_entitled";
372
+ };
373
+ FinancialStatementsTickerAmbiguous: {
374
+ /** @enum {string} */
375
+ error: "company_ticker_ambiguous";
376
+ };
377
+ FinancialStatementsTooManyRequests: {
378
+ /** @enum {string} */
379
+ error: "rate_limited" | "billing_period_quota_exceeded";
380
+ };
381
+ FinancialStatementsUnauthorized: {
382
+ /** @enum {string} */
383
+ error: "unauthorized";
384
+ };
385
+ FinancialStatementsUnavailable: {
386
+ /** @enum {string} */
387
+ error: "database_unavailable";
388
+ };
252
389
  InitialOwnershipActivity: {
253
390
  /**
254
391
  * Format: date-time
@@ -310,7 +447,7 @@ interface components {
310
447
  has_more: boolean;
311
448
  /**
312
449
  * @description Cursor to send after the current page has been processed successfully.
313
- * @example cur_eyJ2IjoxLCJhZnRlciI6MjAzfQ
450
+ * @example cur_request_bound_example
314
451
  */
315
452
  next_cursor: string;
316
453
  };
@@ -522,7 +659,7 @@ interface components {
522
659
  has_more: boolean;
523
660
  /**
524
661
  * @description Cursor to send after the current page has been processed successfully.
525
- * @example cur_eyJ2IjoxLCJhZnRlciI6MTI5fQ
662
+ * @example cur_request_bound_example
526
663
  */
527
664
  next_cursor: string;
528
665
  transactions: components["schemas"]["InsiderTransactionFeedEvent"][];
@@ -644,13 +781,14 @@ interface components {
644
781
  };
645
782
  InsiderTransactionsBadRequestResponse: {
646
783
  /**
647
- * @description Machine-readable error code. date_window_too_large means the requested filing-date window matched more than 1000 rows and should be narrowed.
648
784
  * @example invalid_tickers
649
785
  * @enum {string}
650
786
  */
651
- error: "invalid_transaction_codes" | "invalid_tickers" | "invalid_limit" | "invalid_since" | "invalid_date_window" | "date_window_too_large";
787
+ error: "invalid_cursor" | "invalid_transaction_codes" | "invalid_tickers" | "invalid_limit" | "invalid_since" | "invalid_date_window" | "unsupported_cursor";
652
788
  };
653
789
  InsiderTransactionsResponse: {
790
+ has_more: boolean;
791
+ next_cursor: string | null;
654
792
  transactions: components["schemas"]["InsiderTransactionListItem"][];
655
793
  };
656
794
  InsiderUnderlyingSecurity: {
@@ -718,7 +856,7 @@ interface components {
718
856
  has_more: boolean;
719
857
  /**
720
858
  * @description Cursor to send after the current page has been processed successfully.
721
- * @example cur_eyJ2IjoxLCJhZnRlciI6MTIzfQ
859
+ * @example cur_request_bound_example
722
860
  */
723
861
  next_cursor: string;
724
862
  updates: components["schemas"]["InstitutionalHoldingFeedUpdate"][];
@@ -1184,6 +1322,8 @@ interface components {
1184
1322
  source_row_index: number;
1185
1323
  };
1186
1324
  ProposedSalesResponse: {
1325
+ has_more: boolean;
1326
+ next_cursor: string | null;
1187
1327
  proposed_sales: {
1188
1328
  accepted_at: string;
1189
1329
  accession_number: string;
@@ -1427,14 +1567,178 @@ interface operations {
1427
1567
  };
1428
1568
  };
1429
1569
  };
1570
+ getCompanyFinancialStatements: {
1571
+ parameters: {
1572
+ query?: {
1573
+ /** @description One fiscal year from 1900 through 9999. */
1574
+ fiscal_year?: number;
1575
+ /** @description Newest available fiscal years to return, from 1 through 20. */
1576
+ years?: number;
1577
+ };
1578
+ header?: never;
1579
+ path: {
1580
+ /** @description US listed company ticker */
1581
+ ticker: string;
1582
+ };
1583
+ cookie?: never;
1584
+ };
1585
+ requestBody?: never;
1586
+ responses: {
1587
+ /** @description Published and reviewed normalized annual financial statements. */
1588
+ 200: {
1589
+ headers: {
1590
+ "Cache-Control"?: string;
1591
+ "X-Billing-Period-Quota-Limit"?: string;
1592
+ "X-Billing-Period-Quota-Remaining"?: string;
1593
+ "X-Billing-Period-Quota-Reset"?: string;
1594
+ [name: string]: unknown;
1595
+ };
1596
+ content: {
1597
+ /**
1598
+ * @example {
1599
+ * "issuer": {
1600
+ * "cik": "0000320193",
1601
+ * "name": "Apple Inc.",
1602
+ * "ticker": "AAPL"
1603
+ * },
1604
+ * "periods": [
1605
+ * {
1606
+ * "accession_number": "0000320193-24-000123",
1607
+ * "balance_sheet": {
1608
+ * "cash_and_cash_equivalents": "29943000000",
1609
+ * "equity_attributable_to_parent": "56950000000",
1610
+ * "total_assets": "364980000000",
1611
+ * "total_current_assets": "152987000000",
1612
+ * "total_current_liabilities": "176392000000"
1613
+ * },
1614
+ * "cash_flow_statement": {
1615
+ * "net_cash_from_financing_activities": "-121983000000",
1616
+ * "net_cash_from_investing_activities": "2935000000",
1617
+ * "net_cash_from_operating_activities": "118254000000"
1618
+ * },
1619
+ * "currency": "USD",
1620
+ * "fiscal_period": "FY",
1621
+ * "fiscal_year": 2024,
1622
+ * "income_statement": {
1623
+ * "basic_earnings_per_share": "6.11",
1624
+ * "diluted_earnings_per_share": "6.08",
1625
+ * "income_before_income_taxes": "123485000000",
1626
+ * "income_tax_expense": "29749000000",
1627
+ * "net_income_attributable_to_parent": "93736000000",
1628
+ * "operating_income": "123216000000",
1629
+ * "revenue": "391035000000"
1630
+ * },
1631
+ * "metrics": {
1632
+ * "cash_ratio": "0.17",
1633
+ * "current_ratio": "0.87",
1634
+ * "effective_tax_rate": "24.09",
1635
+ * "net_margin": "23.97",
1636
+ * "operating_cash_flow_margin": "30.24",
1637
+ * "operating_margin": "31.51",
1638
+ * "pretax_margin": "31.58",
1639
+ * "return_on_equity": "157.41",
1640
+ * "working_capital": "-23405000000"
1641
+ * },
1642
+ * "period_end_date": "2024-09-28"
1643
+ * }
1644
+ * ]
1645
+ * }
1646
+ */
1647
+ "application/json": components["schemas"]["CompanyFinancialStatementsResponse"];
1648
+ };
1649
+ };
1650
+ /** @description The ticker or query parameters are invalid. */
1651
+ 400: {
1652
+ headers: {
1653
+ [name: string]: unknown;
1654
+ };
1655
+ content: {
1656
+ "application/json": components["schemas"]["FinancialStatementsBadRequest"];
1657
+ };
1658
+ };
1659
+ /** @description The request is missing a valid Chadwin API key. */
1660
+ 401: {
1661
+ headers: {
1662
+ [name: string]: unknown;
1663
+ };
1664
+ content: {
1665
+ "application/json": components["schemas"]["FinancialStatementsUnauthorized"];
1666
+ };
1667
+ };
1668
+ /** @description The subscription does not include this dataset. */
1669
+ 403: {
1670
+ headers: {
1671
+ [name: string]: unknown;
1672
+ };
1673
+ content: {
1674
+ "application/json": components["schemas"]["FinancialStatementsNotEntitled"];
1675
+ };
1676
+ };
1677
+ /** @description No current company has the requested ticker. */
1678
+ 404: {
1679
+ headers: {
1680
+ [name: string]: unknown;
1681
+ };
1682
+ content: {
1683
+ "application/json": components["schemas"]["FinancialStatementsCompanyNotFound"];
1684
+ };
1685
+ };
1686
+ /** @description More than one current company has the ticker. */
1687
+ 409: {
1688
+ headers: {
1689
+ [name: string]: unknown;
1690
+ };
1691
+ content: {
1692
+ "application/json": components["schemas"]["FinancialStatementsTickerAmbiguous"];
1693
+ };
1694
+ };
1695
+ /** @description The request exceeded a rate limit or monthly quota. */
1696
+ 429: {
1697
+ headers: {
1698
+ "RateLimit-Limit"?: string;
1699
+ "RateLimit-Reset"?: string;
1700
+ "Retry-After"?: string;
1701
+ "X-Billing-Period-Quota-Limit"?: string;
1702
+ "X-Billing-Period-Quota-Remaining"?: string;
1703
+ "X-Billing-Period-Quota-Reset"?: string;
1704
+ [name: string]: unknown;
1705
+ };
1706
+ content: {
1707
+ "application/json": components["schemas"]["FinancialStatementsTooManyRequests"];
1708
+ };
1709
+ };
1710
+ /** @description A stored result cannot map to the public schema. */
1711
+ 500: {
1712
+ headers: {
1713
+ [name: string]: unknown;
1714
+ };
1715
+ content: {
1716
+ "application/json": components["schemas"]["FinancialStatementsInternalError"];
1717
+ };
1718
+ };
1719
+ /** @description The database is unavailable. */
1720
+ 503: {
1721
+ headers: {
1722
+ [name: string]: unknown;
1723
+ };
1724
+ content: {
1725
+ "application/json": components["schemas"]["FinancialStatementsUnavailable"];
1726
+ };
1727
+ };
1728
+ };
1729
+ };
1430
1730
  listCompanyInsiderTransactions: {
1431
1731
  parameters: {
1432
1732
  query: {
1733
+ /** @description Opaque next_cursor from the preceding page. Keep the same filters and limit. */
1734
+ cursor?: string;
1735
+ /** @description Rows per page from 1 through 1000. Defaults to 1000. */
1736
+ limit?: string;
1433
1737
  /** @description Optional comma-separated SEC insider transaction codes to include. Supported codes: A, C, D, E, F, G, H, I, J, K, L, M, O, P, S, U, V, W, X, Z. Omitted or empty means all supported codes. */
1434
1738
  transaction_codes?: string;
1435
- /** @description Required inclusive SEC filing-date lower bound in YYYY-MM-DD format. If the filing-date window matches more than 1000 rows, narrow the window. */
1739
+ /** @description Required inclusive SEC filing-date lower bound in YYYY-MM-DD format. */
1436
1740
  from: string;
1437
- /** @description Optional inclusive SEC filing-date upper bound in YYYY-MM-DD format. Defaults to the current date. If the filing-date window matches more than 1000 rows, narrow the window. */
1741
+ /** @description Optional inclusive SEC filing-date upper bound in YYYY-MM-DD format. Defaults to the current date. */
1438
1742
  until?: string;
1439
1743
  };
1440
1744
  header?: never;
@@ -1458,11 +1762,13 @@ interface operations {
1458
1762
  content: {
1459
1763
  /**
1460
1764
  * @example {
1765
+ * "has_more": false,
1461
1766
  * "issuer": {
1462
1767
  * "cik": "0000320193",
1463
1768
  * "name": "Apple Inc.",
1464
1769
  * "ticker": "AAPL"
1465
1770
  * },
1771
+ * "next_cursor": null,
1466
1772
  * "transactions": [
1467
1773
  * {
1468
1774
  * "accepted_at": "2026-05-29T22:30:27.000Z",
@@ -1581,7 +1887,7 @@ interface operations {
1581
1887
  "application/json": components["schemas"]["CompanyInsiderTransactionsResponse"];
1582
1888
  };
1583
1889
  };
1584
- /** @description The query parameters are invalid, or the requested filing-date window matches more than 1000 rows. */
1890
+ /** @description The query parameters or pagination cursor are invalid. */
1585
1891
  400: {
1586
1892
  headers: {
1587
1893
  [name: string]: unknown;
@@ -1646,6 +1952,10 @@ interface operations {
1646
1952
  listCompanyProposedSales: {
1647
1953
  parameters: {
1648
1954
  query: {
1955
+ /** @description Opaque next_cursor from the preceding page. Keep the same filters and limit. */
1956
+ cursor?: string;
1957
+ /** @description Rows per page from 1 through 1000. Defaults to 1000. */
1958
+ limit?: string;
1649
1959
  from: string;
1650
1960
  until?: string;
1651
1961
  };
@@ -1670,11 +1980,13 @@ interface operations {
1670
1980
  content: {
1671
1981
  /**
1672
1982
  * @example {
1983
+ * "has_more": false,
1673
1984
  * "issuer": {
1674
1985
  * "cik": "0000320193",
1675
1986
  * "name": "Apple Inc.",
1676
1987
  * "ticker": "AAPL"
1677
1988
  * },
1989
+ * "next_cursor": null,
1678
1990
  * "proposed_sales": [
1679
1991
  * {
1680
1992
  * "accepted_at": "2026-07-29T18:04:05.000Z",
@@ -1699,13 +2011,16 @@ interface operations {
1699
2011
  "application/json": components["schemas"]["CompanyProposedSalesResponse"];
1700
2012
  };
1701
2013
  };
1702
- /** @description The query is invalid or matches more than 1000 rows */
2014
+ /** @description The query parameters or pagination cursor are invalid */
1703
2015
  400: {
1704
2016
  headers: {
1705
2017
  [name: string]: unknown;
1706
2018
  };
1707
2019
  content: {
1708
- "application/json": components["schemas"]["ErrorResponse"];
2020
+ "application/json": {
2021
+ /** @enum {string} */
2022
+ error: "invalid_cursor" | "invalid_date_window" | "invalid_limit" | "invalid_tickers" | "unsupported_cursor";
2023
+ };
1709
2024
  };
1710
2025
  };
1711
2026
  /** @description The request is missing a valid Chadwin API key. */
@@ -2001,7 +2316,7 @@ interface operations {
2001
2316
  listCompanyReportFeed: {
2002
2317
  parameters: {
2003
2318
  query?: {
2004
- /** @description Use `next_cursor` from the previous response. Keep the same `forms` filter and do not combine this with `start`. */
2319
+ /** @description Use `next_cursor` from the previous response. The cursor is bound to this feed, the normalized `forms` filter, and the page size. Do not combine it with `start`. */
2005
2320
  cursor?: string;
2006
2321
  /** @description Optional comma-separated report families. Supported values are 10-K, 10-Q, 20-F, and 40-F. Each family includes its /A amendments. */
2007
2322
  forms?: string;
@@ -2029,7 +2344,7 @@ interface operations {
2029
2344
  /**
2030
2345
  * @example {
2031
2346
  * "has_more": false,
2032
- * "next_cursor": "cur_eyJ2IjoxLCJhZnRlciI6MTIzNDV9",
2347
+ * "next_cursor": "cur_request_bound_example",
2033
2348
  * "updates": [
2034
2349
  * {
2035
2350
  * "accepted_at": "2025-08-01T10:00:42.000Z",
@@ -2146,7 +2461,7 @@ interface operations {
2146
2461
  query?: {
2147
2462
  /** @description Optional comma-separated SEC forms to include. Supported forms: 3, 3/A, 4, 4/A, 5, 5/A, 144, 144/A. Omission selects all supported forms. Reuse the same selection with every cursor request. */
2148
2463
  forms?: string;
2149
- /** @description Use `next_cursor` from the previous response to continue where you left off. Keep the same `forms` filter. Do not use `cursor` and `start` together. Omit both to get the most recent activity updates. */
2464
+ /** @description Use `next_cursor` from the previous response to continue where you left off. The cursor is bound to this feed, the normalized `forms` filter, and the page size. Do not use `cursor` and `start` together. Omit both to get the most recent activity updates. */
2150
2465
  cursor?: string;
2151
2466
  /** @description Page size from 1 through 1000. */
2152
2467
  limit?: string;
@@ -2228,11 +2543,15 @@ interface operations {
2228
2543
  listInsiderTransactions: {
2229
2544
  parameters: {
2230
2545
  query: {
2546
+ /** @description Opaque next_cursor from the preceding page. Keep the same filters and limit. */
2547
+ cursor?: string;
2548
+ /** @description Rows per page from 1 through 1000. Defaults to 1000. */
2549
+ limit?: string;
2231
2550
  /** @description Optional comma-separated SEC insider transaction codes to include. Supported codes: A, C, D, E, F, G, H, I, J, K, L, M, O, P, S, U, V, W, X, Z. Omitted or empty means all supported codes. */
2232
2551
  transaction_codes?: string;
2233
- /** @description Required inclusive SEC filing-date lower bound in YYYY-MM-DD format. If the filing-date window matches more than 1000 rows, narrow the window. */
2552
+ /** @description Required inclusive SEC filing-date lower bound in YYYY-MM-DD format. */
2234
2553
  from: string;
2235
- /** @description Optional inclusive SEC filing-date upper bound in YYYY-MM-DD format. Defaults to the current date. If the filing-date window matches more than 1000 rows, narrow the window. */
2554
+ /** @description Optional inclusive SEC filing-date upper bound in YYYY-MM-DD format. Defaults to the current date. */
2236
2555
  until?: string;
2237
2556
  /** @description Optional comma-separated US listed ticker filter. */
2238
2557
  tickers?: string;
@@ -2255,6 +2574,8 @@ interface operations {
2255
2574
  content: {
2256
2575
  /**
2257
2576
  * @example {
2577
+ * "has_more": false,
2578
+ * "next_cursor": null,
2258
2579
  * "transactions": [
2259
2580
  * {
2260
2581
  * "accepted_at": "2026-05-29T22:30:27.000Z",
@@ -2383,7 +2704,7 @@ interface operations {
2383
2704
  "application/json": components["schemas"]["InsiderTransactionsResponse"];
2384
2705
  };
2385
2706
  };
2386
- /** @description The query parameters are invalid, or the requested filing-date window matches more than 1000 rows. */
2707
+ /** @description The query parameters or pagination cursor are invalid. */
2387
2708
  400: {
2388
2709
  headers: {
2389
2710
  [name: string]: unknown;
@@ -2439,7 +2760,7 @@ interface operations {
2439
2760
  listInsiderTransactionFeed: {
2440
2761
  parameters: {
2441
2762
  query?: {
2442
- /** @description Use `next_cursor` from the previous response to continue where you left off. Keep the same `transaction_codes` filter. Do not use `cursor` and `start` together. Omit both to get the most recent transaction updates. */
2763
+ /** @description Use `next_cursor` from the previous response to continue where you left off. The cursor is bound to this feed, the normalized `transaction_codes` filter, and the page size. Do not use `cursor` and `start` together. Omit both to get the most recent transaction updates. */
2443
2764
  cursor?: string;
2444
2765
  /** @description Page size from 1 through 1000. */
2445
2766
  limit?: string;
@@ -2523,7 +2844,7 @@ interface operations {
2523
2844
  listInstitutionalFilingFeed: {
2524
2845
  parameters: {
2525
2846
  query?: {
2526
- /** @description Use `next_cursor` from the previous response to continue where you left off. Keep the same `forms` filter. Do not use `cursor` and `start` together. Omit both to get the most recent filing updates. */
2847
+ /** @description Use `next_cursor` from the previous response to continue where you left off. The cursor is bound to this feed, the normalized `forms` filter, and the page size. Do not use `cursor` and `start` together. Omit both to get the most recent filing updates. */
2527
2848
  cursor?: string;
2528
2849
  /** @description Optional comma-separated 13F form types to include. Supported forms: 13F-HR, 13F-HR/A, 13F-NT, 13F-NT/A. Omitted or empty means all supported forms. */
2529
2850
  forms?: string;
@@ -2607,7 +2928,7 @@ interface operations {
2607
2928
  listInstitutionalManagers: {
2608
2929
  parameters: {
2609
2930
  query?: {
2610
- /** @description Optional pagination cursor returned as next_cursor from a prior response. */
2931
+ /** @description Opaque next_cursor from the prior page. Keep the same filters and page size. */
2611
2932
  cursor?: string;
2612
2933
  /** @description Page size from 1 through 1000. */
2613
2934
  limit?: string;
@@ -2646,7 +2967,7 @@ interface operations {
2646
2967
  * "total_value_usd": "267891234567"
2647
2968
  * }
2648
2969
  * ],
2649
- * "next_cursor": "cur_eyJ2IjoxLCJuYW1lIjoiQmVya3NoaXJlIEhhdGhhd2F5IEluYy4iLCJmb3JtXzEzZl9maWxlX251bWJlciI6IjAyOC0wNDU0NSJ9"
2970
+ * "next_cursor": "cur_request_bound_example"
2650
2971
  * }
2651
2972
  */
2652
2973
  "application/json": components["schemas"]["InstitutionalManagersResponse"];
@@ -2906,7 +3227,7 @@ interface operations {
2906
3227
  listInstitutionalManagerHoldings: {
2907
3228
  parameters: {
2908
3229
  query: {
2909
- /** @description Optional pagination cursor returned as next_cursor from a prior response. */
3230
+ /** @description Opaque next_cursor from the prior page. Keep the same resource identifiers and page size. If the bound filing or manager-period revision changed, restart without a cursor. */
2910
3231
  cursor?: string;
2911
3232
  /** @description Page size from 1 through 5000. */
2912
3233
  limit?: string;
@@ -2970,7 +3291,7 @@ interface operations {
2970
3291
  * "form_13f_file_number": "028-04545",
2971
3292
  * "name": "Berkshire Hathaway Inc."
2972
3293
  * },
2973
- * "next_cursor": "cur_eyJ2IjoxLCJhZnRlciI6MX0",
3294
+ * "next_cursor": "cur_request_bound_example",
2974
3295
  * "period": {
2975
3296
  * "accepted_at": "2026-05-15T20:12:34.000Z",
2976
3297
  * "period_of_report": "2026-03-31"
@@ -3016,6 +3337,15 @@ interface operations {
3016
3337
  "application/json": components["schemas"]["ErrorResponse"];
3017
3338
  };
3018
3339
  };
3340
+ /** @description The manager-period holdings changed after the cursor was issued. Restart pagination from the first page. */
3341
+ 409: {
3342
+ headers: {
3343
+ [name: string]: unknown;
3344
+ };
3345
+ content: {
3346
+ "application/json": components["schemas"]["ErrorResponse"];
3347
+ };
3348
+ };
3019
3349
  /** @description The request exceeded a rate limit. */
3020
3350
  429: {
3021
3351
  headers: {
@@ -3161,7 +3491,7 @@ interface operations {
3161
3491
  listInstitutionalManagerPositions: {
3162
3492
  parameters: {
3163
3493
  query: {
3164
- /** @description Optional pagination cursor returned as next_cursor from a prior response. */
3494
+ /** @description Opaque next_cursor from the prior page. Keep the same resource identifiers and page size. If the bound filing or manager-period revision changed, restart without a cursor. */
3165
3495
  cursor?: string;
3166
3496
  /** @description Page size from 1 through 5000. */
3167
3497
  limit?: string;
@@ -3305,6 +3635,10 @@ interface operations {
3305
3635
  listProposedSales: {
3306
3636
  parameters: {
3307
3637
  query: {
3638
+ /** @description Opaque next_cursor from the preceding page. Keep the same filters and limit. */
3639
+ cursor?: string;
3640
+ /** @description Rows per page from 1 through 1000. Defaults to 1000. */
3641
+ limit?: string;
3308
3642
  from: string;
3309
3643
  until?: string;
3310
3644
  tickers?: string;
@@ -3327,6 +3661,8 @@ interface operations {
3327
3661
  content: {
3328
3662
  /**
3329
3663
  * @example {
3664
+ * "has_more": false,
3665
+ * "next_cursor": null,
3330
3666
  * "proposed_sales": [
3331
3667
  * {
3332
3668
  * "accepted_at": "2026-07-29T18:04:05.000Z",
@@ -3356,13 +3692,16 @@ interface operations {
3356
3692
  "application/json": components["schemas"]["ProposedSalesResponse"];
3357
3693
  };
3358
3694
  };
3359
- /** @description The query is invalid or matches more than 1000 rows */
3695
+ /** @description The query parameters or pagination cursor are invalid */
3360
3696
  400: {
3361
3697
  headers: {
3362
3698
  [name: string]: unknown;
3363
3699
  };
3364
3700
  content: {
3365
- "application/json": components["schemas"]["ErrorResponse"];
3701
+ "application/json": {
3702
+ /** @enum {string} */
3703
+ error: "invalid_cursor" | "invalid_date_window" | "invalid_limit" | "invalid_tickers" | "unsupported_cursor";
3704
+ };
3366
3705
  };
3367
3706
  };
3368
3707
  /** @description The request is missing a valid Chadwin API key. */
@@ -3935,7 +4274,7 @@ interface operations {
3935
4274
  listSecInstitutionalFilingHoldings: {
3936
4275
  parameters: {
3937
4276
  query?: {
3938
- /** @description Optional pagination cursor returned as next_cursor from a prior response. */
4277
+ /** @description Opaque next_cursor from the prior page. Keep the same resource identifiers and page size. If the bound filing or manager-period revision changed, restart without a cursor. */
3939
4278
  cursor?: string;
3940
4279
  /** @description Page size from 1 through 5000. */
3941
4280
  limit?: string;
@@ -3991,7 +4330,7 @@ interface operations {
3991
4330
  * }
3992
4331
  * }
3993
4332
  * ],
3994
- * "next_cursor": "cur_eyJ2IjoxLCJhZnRlciI6MX0",
4333
+ * "next_cursor": "cur_request_bound_example",
3995
4334
  * "period_of_report": "2026-03-31",
3996
4335
  * "report_type": "13F HOLDINGS REPORT"
3997
4336
  * }
@@ -4035,6 +4374,15 @@ interface operations {
4035
4374
  "application/json": components["schemas"]["ErrorResponse"];
4036
4375
  };
4037
4376
  };
4377
+ /** @description The filing holdings changed after the cursor was issued. Restart pagination from the first page. */
4378
+ 409: {
4379
+ headers: {
4380
+ [name: string]: unknown;
4381
+ };
4382
+ content: {
4383
+ "application/json": components["schemas"]["ErrorResponse"];
4384
+ };
4385
+ };
4038
4386
  /** @description The request exceeded a rate limit. */
4039
4387
  429: {
4040
4388
  headers: {
@@ -4218,6 +4566,19 @@ interface operations {
4218
4566
 
4219
4567
  type CompanyReportForm = "10-K" | "10-Q" | "20-F" | "40-F";
4220
4568
  type CompanyReportFiscalPeriod = "Q1" | "Q2" | "Q3";
4569
+ type FinancialStatementsGetParams = {
4570
+ ticker: string;
4571
+ fiscalYear: number;
4572
+ years?: never;
4573
+ } | {
4574
+ ticker: string;
4575
+ years: number;
4576
+ fiscalYear?: never;
4577
+ } | {
4578
+ ticker: string;
4579
+ fiscalYear?: never;
4580
+ years?: never;
4581
+ };
4221
4582
  type InsiderActivityForm = "3" | "3/A" | "4" | "4/A" | "5" | "5/A" | "144" | "144/A";
4222
4583
  type InsiderTransactionCode = "A" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "O" | "P" | "S" | "U" | "V" | "W" | "X" | "Z";
4223
4584
  type InstitutionalFilingForm = "13F-HR" | "13F-HR/A" | "13F-NT" | "13F-NT/A";
@@ -4358,21 +4719,44 @@ declare class CompanyReports {
4358
4719
  accessionNumber: string;
4359
4720
  }): PromiseWithResponse<TextResponse<"getSecCompanyReportContent">>;
4360
4721
  }
4722
+ declare class FinancialStatements {
4723
+ private readonly transport;
4724
+ constructor(transport: HttpTransport);
4725
+ get({ ticker, fiscalYear, years, }: FinancialStatementsGetParams): PromiseWithResponse<JsonResponse<"getCompanyFinancialStatements">>;
4726
+ }
4361
4727
  declare class InsiderTransactions {
4362
4728
  private readonly transport;
4363
4729
  constructor(transport: HttpTransport);
4364
- list({ from, until, tickers, transactionCodes, }: {
4730
+ list({ cursor, from, limit, until, tickers, transactionCodes, }: {
4731
+ cursor?: string;
4365
4732
  from: string;
4733
+ limit?: number;
4366
4734
  until?: string;
4367
4735
  tickers?: string[];
4368
4736
  transactionCodes?: InsiderTransactionCode[];
4369
4737
  }): PromiseWithResponse<JsonResponse<"listInsiderTransactions">>;
4370
- listForCompany({ ticker, from, until, transactionCodes, }: {
4738
+ listForCompany({ cursor, ticker, from, limit, until, transactionCodes, }: {
4739
+ cursor?: string;
4371
4740
  ticker: string;
4372
4741
  from: string;
4742
+ limit?: number;
4373
4743
  until?: string;
4374
4744
  transactionCodes?: InsiderTransactionCode[];
4375
4745
  }): PromiseWithResponse<JsonResponse<"listCompanyInsiderTransactions">>;
4746
+ iterate({ from, until, tickers, transactionCodes, limit, }: {
4747
+ from: string;
4748
+ until?: string;
4749
+ tickers?: string[];
4750
+ transactionCodes?: InsiderTransactionCode[];
4751
+ limit?: number;
4752
+ }): AsyncGenerator<JsonResponse<"listInsiderTransactions">["transactions"][number]>;
4753
+ iterateForCompany({ ticker, from, until, transactionCodes, limit, }: {
4754
+ ticker: string;
4755
+ from: string;
4756
+ until?: string;
4757
+ transactionCodes?: InsiderTransactionCode[];
4758
+ limit?: number;
4759
+ }): AsyncGenerator<JsonResponse<"listCompanyInsiderTransactions">["transactions"][number]>;
4376
4760
  }
4377
4761
  declare class InsiderFilings {
4378
4762
  private readonly transport;
@@ -4384,16 +4768,32 @@ declare class InsiderFilings {
4384
4768
  declare class ProposedSales {
4385
4769
  private readonly transport;
4386
4770
  constructor(transport: HttpTransport);
4387
- list({ from, until, tickers, }: {
4771
+ list({ cursor, from, limit, until, tickers, }: {
4772
+ cursor?: string;
4388
4773
  from: string;
4774
+ limit?: number;
4389
4775
  until?: string;
4390
4776
  tickers?: string[];
4391
4777
  }): PromiseWithResponse<JsonResponse<"listProposedSales">>;
4392
- listForCompany({ ticker, from, until, }: {
4778
+ listForCompany({ cursor, ticker, from, limit, until, }: {
4779
+ cursor?: string;
4393
4780
  ticker: string;
4394
4781
  from: string;
4782
+ limit?: number;
4395
4783
  until?: string;
4396
4784
  }): PromiseWithResponse<JsonResponse<"listCompanyProposedSales">>;
4785
+ iterate({ from, until, tickers, limit, }: {
4786
+ from: string;
4787
+ until?: string;
4788
+ tickers?: string[];
4789
+ limit?: number;
4790
+ }): AsyncGenerator<JsonResponse<"listProposedSales">["proposed_sales"][number]>;
4791
+ iterateForCompany({ ticker, from, until, limit, }: {
4792
+ ticker: string;
4793
+ from: string;
4794
+ until?: string;
4795
+ limit?: number;
4796
+ }): AsyncGenerator<JsonResponse<"listCompanyProposedSales">["proposed_sales"][number]>;
4397
4797
  getFiling({ accessionNumber, }: {
4398
4798
  accessionNumber: string;
4399
4799
  }): PromiseWithResponse<JsonResponse<"getSecProposedSaleFiling">>;
@@ -4469,6 +4869,7 @@ declare class Chadwin {
4469
4869
  readonly companies: Companies;
4470
4870
  readonly companyReports: CompanyReports;
4471
4871
  readonly feeds: Feeds;
4872
+ readonly financialStatements: FinancialStatements;
4472
4873
  readonly insiderFilings: InsiderFilings;
4473
4874
  readonly insiderTransactions: InsiderTransactions;
4474
4875
  readonly institutionalFilings: InstitutionalFilings;
@@ -4489,4 +4890,4 @@ declare class APIError extends Error {
4489
4890
  constructor(message: string, options?: APIErrorOptions);
4490
4891
  }
4491
4892
 
4492
- export { APIError, Chadwin, type ClientOptions, type CompanyReportFeedFilters, type CompanyReportFiscalPeriod, type CompanyReportForm, type InsiderActivityFeedFilters, type InsiderActivityForm, type InsiderTransactionCode, type InsiderTransactionFeedFilters, type InstitutionalFilingFeedFilters, type InstitutionalFilingForm, type InstitutionalHolding, type InstitutionalManager, type InstitutionalPosition, type PromiseWithResponse };
4893
+ export { APIError, Chadwin, type ClientOptions, type CompanyReportFeedFilters, type CompanyReportFiscalPeriod, type CompanyReportForm, type FinancialStatementsGetParams, type InsiderActivityFeedFilters, type InsiderActivityForm, type InsiderTransactionCode, type InsiderTransactionFeedFilters, type InstitutionalFilingFeedFilters, type InstitutionalFilingForm, type InstitutionalHolding, type InstitutionalManager, type InstitutionalPosition, type PromiseWithResponse };