sentisense 0.61.0 → 0.63.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.mts CHANGED
@@ -191,12 +191,122 @@ interface StockProfile {
191
191
  imageUrl?: string | null;
192
192
  [key: string]: unknown;
193
193
  }
194
+ /**
195
+ * A knowledge-base entity related to a stock (a person, product, partner and so on), as
196
+ * returned by `stocks.getEntities()`.
197
+ *
198
+ * Address the entity by `urlSlug` (the handle the metric and document endpoints take) and
199
+ * label it with `displayName`.
200
+ */
194
201
  interface StockEntity {
202
+ /**
203
+ * Entity id as sent by the API.
204
+ * @deprecated Not a stable public identifier. Use `urlSlug` to refer to an entity.
205
+ */
206
+ id: string;
207
+ /** Human-readable name, e.g. `"Tim Cook"`. */
208
+ displayName: string;
209
+ /** Entity type, e.g. `"PERSON"`, `"COMPANY"`, `"PRODUCT_OR_SERVICE"`. */
210
+ type: string;
211
+ /** Ticker of the stock this entity is related to. */
212
+ relatedStock?: string | null;
213
+ /** Handle the metric and document endpoints address this entity by. `null` when it has none. */
214
+ urlSlug?: string | null;
215
+ /** A person's title, e.g. `"Executive Chairman"`. `null` for non-people. */
216
+ title?: string | null;
217
+ /** A product's category. `null` for non-products. */
218
+ category?: string | null;
219
+ /** Icon image URL, or `null` when none is assigned. */
220
+ iconUrl?: string | null;
221
+ /** App Store id when the product has a tracked companion app. Omitted otherwise. */
222
+ appId?: string | null;
223
+ /** @deprecated Never sent by the API. To refer to the entity, use `urlSlug`. */
195
224
  entityId: string;
225
+ /** @deprecated Never sent by the API; read `displayName`. */
196
226
  name: string;
197
- type: string;
198
227
  [key: string]: unknown;
199
228
  }
229
+ /** Options for `stocks.getGraph()`. */
230
+ interface GetStockGraphOptions {
231
+ /** Hops from the stock's own company node: `1` (default) or `2`. */
232
+ depth?: 1 | 2;
233
+ /** Maximum non-root nodes, 1 to 200 (default 75). The root is always included in addition. */
234
+ cap?: number;
235
+ }
236
+ /** One node in a {@link StockGraph}. Every identifier in the graph is a `slug`. */
237
+ interface GraphNode {
238
+ /** Handle for this entity, the same one the metric and document endpoints take. */
239
+ slug: string;
240
+ displayName: string;
241
+ /** `"COMPANY"`, `"PERSON"`, `"PRODUCT_OR_SERVICE"`, `"ORGANIZATION"`, `"PUBLISHER"`, `"TOPIC"`, ... */
242
+ type: string;
243
+ /** Product category, present only on PRODUCT_OR_SERVICE nodes when known. */
244
+ category?: string;
245
+ }
246
+ /** One typed relationship in a {@link StockGraph}, between two node slugs. */
247
+ interface GraphEdge {
248
+ /** Slug of the node the relationship starts from. */
249
+ source: string;
250
+ /** Slug of the node the relationship points to. */
251
+ target: string;
252
+ /** Relationship type, e.g. `"LEADS"`, `"FOUNDED"`, `"PRODUCT_OF"`, `"VARIANT_OF"`, `"PEER"`. */
253
+ type: string;
254
+ /** `"DIRECTED"` (source to target) or `"BIDIRECTIONAL"` (for example peers). */
255
+ direction: string;
256
+ /**
257
+ * Extra facts about the relationship, all values as strings. Keys depend on the edge
258
+ * type, for example `role` and `since` on `LEADS`, `year` on `FOUNDED`. Empty when the
259
+ * edge carries none.
260
+ */
261
+ properties: Record<string, string>;
262
+ }
263
+ /** A product family and the slugs of its member products. */
264
+ interface GraphProductFamily {
265
+ /** Parent product's slug, e.g. `"iPhone"`. Join to nodes[].slug for its displayName label. */
266
+ family: string;
267
+ /** Slugs of the products in the family. */
268
+ members: string[];
269
+ }
270
+ /** Node slugs in a {@link StockGraph}, grouped by role relative to the stock. */
271
+ interface GraphGroups {
272
+ people: string[];
273
+ products: string[];
274
+ productFamilies: GraphProductFamily[];
275
+ /** Peer companies. */
276
+ peers: string[];
277
+ organizations: string[];
278
+ publishers: string[];
279
+ topics: string[];
280
+ }
281
+ /** Size of a {@link StockGraph}. */
282
+ interface GraphCounts {
283
+ nodes: number;
284
+ edges: number;
285
+ /** Node count per node `type`, e.g. `{ PERSON: 6, PRODUCT_OR_SERVICE: 23 }`. */
286
+ byType: Record<string, number>;
287
+ }
288
+ /**
289
+ * The company knowledge graph around one stock, from `GET /api/v1/stocks/{ticker}/graph`:
290
+ * the people, products, peers and other entities linked to the company, and the typed
291
+ * relationships between them. Every identifier is a slug.
292
+ */
293
+ interface StockGraph {
294
+ ticker: string;
295
+ /** Slug of the stock's own company node, the graph's starting point. */
296
+ root: string;
297
+ /** Depth the graph was walked to (1 or 2). */
298
+ depth: number;
299
+ /** Node cap applied to this response. */
300
+ cap: number;
301
+ /** True when the cap cut the graph short. */
302
+ truncated: boolean;
303
+ /** Nodes left out because they carry no slug. */
304
+ omitted: number;
305
+ counts: GraphCounts;
306
+ groups: GraphGroups;
307
+ nodes: GraphNode[];
308
+ edges: GraphEdge[];
309
+ }
200
310
  /** Per-source tone for a stock: where the conversation is, and how it leans. */
201
311
  interface SentimentSourceTone {
202
312
  /** "News", "Reddit", "X", "YouTube", "Substack". */
@@ -446,18 +556,81 @@ interface FundamentalsPeriodsResponse {
446
556
  /** Populated when no periods are available, explaining why. */
447
557
  reason?: string | null;
448
558
  }
559
+ /** One settlement-date reading in {@link ShortInterest}. */
560
+ interface ShortInterestDataPoint {
561
+ /** Shares sold short and not yet covered as of `settlementDate`. */
562
+ shortInterest: number | null;
563
+ /** `shortInterest` divided by `avgDailyVolume`: trading days to cover at average volume. */
564
+ daysToCover: number | null;
565
+ /** Average daily trading volume, in shares. */
566
+ avgDailyVolume: number | null;
567
+ /** ISO date `"YYYY-MM-DD"` of the settlement this reading is for. */
568
+ settlementDate: string | null;
569
+ }
570
+ /**
571
+ * Short interest history from `stocks.getShortInterest()`, newest first. An unknown
572
+ * ticker returns an empty `dataPoints` array and `count: 0`, not an error.
573
+ */
449
574
  interface ShortInterest {
450
575
  ticker: string;
576
+ dataPoints: ShortInterestDataPoint[];
577
+ /** Number of entries in `dataPoints`. */
578
+ count: number;
451
579
  [key: string]: unknown;
452
580
  }
581
+ /**
582
+ * Free float from `stocks.getFloat()`. An unknown ticker returns every field other than
583
+ * `ticker` as `null`, not an error.
584
+ */
453
585
  interface FloatInfo {
454
586
  ticker: string;
587
+ /**
588
+ * Shares available to trade publicly. `0` means the symbol has no free float, as with
589
+ * funds such as SPY or QQQ. Shares outstanding is not on this response; read it from
590
+ * the fundamentals endpoints.
591
+ */
592
+ freeFloat: number | null;
593
+ /** Free float as percentage points of shares outstanding: `92.1` means 92.1%. */
594
+ freeFloatPercent: number | null;
595
+ /**
596
+ * Date the float figure is effective: `"YYYY-MM-DD"` or `"YYYY-MM-DD HH:mm:ss"`
597
+ * depending on the data source, so parse it leniently.
598
+ */
599
+ effectiveDate: string | null;
455
600
  [key: string]: unknown;
456
601
  }
602
+ /** One trading day in {@link ShortVolume}. */
603
+ interface ShortVolumeDataPoint {
604
+ /** Shares sold short that day on the reporting venues. */
605
+ shortVolume: number | null;
606
+ /** Total shares traded that day on the same reporting venues, not consolidated volume. */
607
+ totalVolume: number | null;
608
+ /** `shortVolume` as percentage points of `totalVolume`: `41.04` means 41.04%. */
609
+ shortVolumeRatio: number | null;
610
+ /** ISO date `"YYYY-MM-DD"` of the trading day. */
611
+ date: string | null;
612
+ }
613
+ /**
614
+ * Daily short volume from `stocks.getShortVolume()`, newest first. An unknown ticker
615
+ * returns an empty `dataPoints` array and `count: 0`, not an error.
616
+ */
457
617
  interface ShortVolume {
458
618
  ticker: string;
619
+ dataPoints: ShortVolumeDataPoint[];
620
+ /** Number of entries in `dataPoints`. */
621
+ count: number;
459
622
  [key: string]: unknown;
460
623
  }
624
+ /** Options for `stocks.getShortInterest()`. */
625
+ interface GetShortInterestOptions {
626
+ /** Settlement dates to return. Omitted, the API returns 24. */
627
+ limit?: number;
628
+ }
629
+ /** Options for `stocks.getShortVolume()`. */
630
+ interface GetShortVolumeOptions {
631
+ /** Trading days to return. Omitted, the API returns 90. */
632
+ limit?: number;
633
+ }
461
634
  interface MetricsBreakdown {
462
635
  [key: string]: unknown;
463
636
  }
@@ -743,6 +916,10 @@ interface OptionsSummary {
743
916
  largestPrintPctl?: number;
744
917
  /** Where the intraday board lives and who can open it. */
745
918
  capabilities?: OptionsCapabilities;
919
+ /** DELISTED marks a frozen last dossier; absent for listed or pending symbols. */
920
+ listingStatus?: "DELISTED";
921
+ /** ISO day (YYYY-MM-DD) trading stopped; absent when the date is unknown. */
922
+ delistedDate?: string;
746
923
  }
747
924
  /** Trailing window for `client.stocks.getOptionsHistory()`. */
748
925
  type OptionsHistoryWindow = "1y" | "2y" | "5y";
@@ -1458,6 +1635,38 @@ interface GetHoldersOptions {
1458
1635
  /** Sort direction. Server default is `"desc"`. Requires `limit`. */
1459
1636
  sortDir?: "asc" | "desc";
1460
1637
  }
1638
+ /**
1639
+ * Optional wire keys inside an institution detail's preview envelope.
1640
+ * Opt in with PreviewResponse<InstitutionDetail>; getInstitutionDetail retains
1641
+ * Promise<unknown> for compatibility with existing callers and implementations.
1642
+ */
1643
+ interface InstitutionDetail {
1644
+ filerCik?: string | null;
1645
+ displayName?: string | null;
1646
+ urlSlug?: string | null;
1647
+ filerCategory?: string | null;
1648
+ /** Equity portfolio value in USD. */
1649
+ totalValueUsd?: number;
1650
+ /** Full row count, including synthetic SOLD_OUT rows. */
1651
+ holdingsCount?: number;
1652
+ /** Latest report's ISO calendar day (YYYY-MM-DD). */
1653
+ latestReportDate?: string | null;
1654
+ quartersTracked?: number;
1655
+ newPositions?: number;
1656
+ increasedPositions?: number;
1657
+ decreasedPositions?: number;
1658
+ soldOutPositions?: number;
1659
+ multiCikRollup?: boolean | null;
1660
+ childCikCount?: number | null;
1661
+ childCiks?: string[] | null;
1662
+ holdings?: Record<string, unknown>[] | null;
1663
+ optionPositions?: Record<string, unknown>[];
1664
+ returnedCount?: number;
1665
+ offset?: number;
1666
+ /** max(0, holdingsCount - soldOutPositions), for the full portfolio on every tier. */
1667
+ positionsHeld?: number;
1668
+ [key: string]: unknown;
1669
+ }
1461
1670
  /** A single institution summary from the discovery list. */
1462
1671
  interface InstitutionSummary {
1463
1672
  /** SEC Central Index Key of the (rolled-up) institution. */
@@ -2286,8 +2495,35 @@ interface KpiTypeEntry {
2286
2495
  category: string;
2287
2496
  chartType: string;
2288
2497
  }
2498
+ /**
2499
+ * A knowledge-base entity, as returned by `kb.getPopularEntities()`. Address it by
2500
+ * `urlSlug` and label it with `displayName`.
2501
+ */
2289
2502
  interface KBEntity {
2503
+ /**
2504
+ * Entity id as sent by the API.
2505
+ * @deprecated Not a stable public identifier. Use `urlSlug` to refer to an entity.
2506
+ */
2507
+ id: string;
2508
+ /** Human-readable name, e.g. `"Elon Musk"`. */
2509
+ displayName: string;
2510
+ /** Entity type, e.g. `"PERSON"`, `"COMPANY"`, `"PRODUCT_OR_SERVICE"`. */
2511
+ type: string;
2512
+ /** Ticker of the stock this entity is most closely related to, when it has one. */
2513
+ relatedStock?: string | null;
2514
+ /** Handle the metric and document endpoints address this entity by. `null` when it has none. */
2515
+ urlSlug?: string | null;
2516
+ /** A person's title. `null` for non-people. */
2517
+ title?: string | null;
2518
+ /** A product's category. `null` for non-products. */
2519
+ category?: string | null;
2520
+ /** Icon image URL, or `null` when none is assigned. */
2521
+ iconUrl?: string | null;
2522
+ /** App Store id when the product has a tracked companion app. Omitted otherwise. */
2523
+ appId?: string | null;
2524
+ /** @deprecated Never sent by the API. To refer to the entity, use `urlSlug`. */
2290
2525
  entityId: string;
2526
+ /** @deprecated Never sent by the API; read `displayName`. */
2291
2527
  name: string;
2292
2528
  [key: string]: unknown;
2293
2529
  }
@@ -2928,12 +3164,48 @@ interface AnalystAction {
2928
3164
  fromGrade: string | null;
2929
3165
  toGrade: string | null;
2930
3166
  }
3167
+ /** Which forward period an {@link AnalystEstimate} covers. */
3168
+ type AnalystEstimatePeriodType = "CURRENT_QUARTER" | "NEXT_QUARTER" | "CURRENT_YEAR" | "NEXT_YEAR";
3169
+ /** Consensus EPS estimate for one forward period. */
2931
3170
  interface AnalystEstimate {
2932
- /** Fiscal period descriptor (provider-specific shape). */
3171
+ /**
3172
+ * Period label as sent by the API: usually a date such as `"2026-10-29"` for the
3173
+ * current quarter (a relative code such as `"0q"` when no date is known yet), a
3174
+ * relative code such as `"+1q"`, `"0y"` or `"+1y"` otherwise. Use
3175
+ * `periodType` to tell periods apart.
3176
+ */
3177
+ periodLabel: string | null;
3178
+ periodType: AnalystEstimatePeriodType | null;
3179
+ /** Lowest analyst EPS estimate for the period. */
3180
+ estimateLow: number | null;
3181
+ /** Mean analyst EPS estimate for the period. */
3182
+ estimateMean: number | null;
3183
+ /** Highest analyst EPS estimate for the period. */
3184
+ estimateHigh: number | null;
3185
+ /** Analysts contributing to the estimate. */
3186
+ numberOfAnalysts: number | null;
2933
3187
  [key: string]: unknown;
2934
3188
  }
3189
+ /** Reported EPS against the consensus estimate for one past report. */
2935
3190
  interface AnalystEarningsSurprise {
2936
- /** Past report descriptor (provider-specific shape). */
3191
+ /** Period label as sent by the API, e.g. `"2026-07-30"`. */
3192
+ periodLabel: string | null;
3193
+ /** ISO date `"YYYY-MM-DD"` the results were reported. */
3194
+ reportDate: string | null;
3195
+ /** Consensus EPS estimate going into the report. */
3196
+ estimateEps: number | null;
3197
+ /** Reported EPS. */
3198
+ actualEps: number | null;
3199
+ /**
3200
+ * As sent by the API: a fraction rounded to 2 decimals (0.07 = 7%), despite the name.
3201
+ */
3202
+ surprisePercent: number | null;
3203
+ /**
3204
+ * Signed true percent: (actualEps - estimateEps) * 100 / abs(estimateEps),
3205
+ * rounded half-up to 2 decimals. Null when either EPS is missing or the estimate
3206
+ * is zero. The legacy surprisePercent fraction is unchanged.
3207
+ */
3208
+ surprisePct?: number | null;
2937
3209
  [key: string]: unknown;
2938
3210
  }
2939
3211
  interface AnalystEstimatesResponse {
@@ -2956,6 +3228,15 @@ interface GetAnalystMarketActivityOptions {
2956
3228
  /** Days of history to return. Default 30. */
2957
3229
  lookbackDays?: number;
2958
3230
  }
3231
+ /** A named analyst, as referenced from a note. */
3232
+ interface AnalystRef {
3233
+ /**
3234
+ * Addresses `analyst.profile(slug)` and `analyst.calls(slug)`. `null` when we hold no
3235
+ * profile for the named analyst; the `name` is still returned.
3236
+ */
3237
+ slug: string | null;
3238
+ name: string;
3239
+ }
2959
3240
  /** One price target note. */
2960
3241
  interface AnalystNote {
2961
3242
  /** ISO date the note was published, `"YYYY-MM-DD"`. */
@@ -2964,7 +3245,7 @@ interface AnalystNote {
2964
3245
  * The individual named on the note, or `null` when the report named nobody.
2965
3246
  * Absent means the report did not identify one, never that the note did not happen.
2966
3247
  */
2967
- analyst: string | null;
3248
+ analyst: AnalystRef | null;
2968
3249
  priceTarget: number | null;
2969
3250
  adjPriceTarget: number | null;
2970
3251
  priceWhenPosted: number | null;
@@ -3324,9 +3605,11 @@ declare class Earnings {
3324
3605
  * management phrased it, and a summary of the earnings call.
3325
3606
  *
3326
3607
  * Branch on `isPreview`: a PRO key receives every hydrated quarter in full, a
3327
- * FREE key receives the latest quarter shaped rather than truncated, plus
3328
- * `totalCount`. {@link EarningsQuarter} documents which fields each tier
3329
- * carries.
3608
+ * FREE key receives the latest quarter shaped rather than truncated.
3609
+ * `totalCount` on the envelope counts indexed quarters on both tiers. The
3610
+ * returned array can be shorter when a body is unavailable or limit cuts it.
3611
+ * Older responses may omit the count. {@link EarningsQuarter} documents
3612
+ * which fields each tier carries.
3330
3613
  *
3331
3614
  * A quarter typically appears within 48 hours of the company reporting, and
3332
3615
  * the call summary can arrive after the press-release content for the same
@@ -3431,6 +3714,53 @@ interface EtfInfo {
3431
3714
  */
3432
3715
  imageUrl: string | null;
3433
3716
  }
3717
+ /**
3718
+ * Quote snapshot for an ETF from `GET /api/v1/etfs/{ticker}/quote`: the same price-side
3719
+ * fields as the stock quote, with fund facts (AUM, expense ratio, NAV, inception date) in
3720
+ * place of market cap, P/E and EPS.
3721
+ *
3722
+ * Every field except `ticker` and `timestamp` is left out of the response when unknown
3723
+ * rather than sent as `null`, so check for presence before rendering.
3724
+ */
3725
+ interface EtfQuote {
3726
+ ticker: string;
3727
+ /** Regular-session price, delayed. During regular hours: the most recent regular-session value. Otherwise: the most recent regular-session close. */
3728
+ currentPrice?: number | null;
3729
+ change?: number | null;
3730
+ /** Change in percentage points: `-0.21` means -0.21%. */
3731
+ changePercent?: number | null;
3732
+ /** Shares traded in the session. */
3733
+ volume?: number | null;
3734
+ open?: number | null;
3735
+ dayHigh?: number | null;
3736
+ dayLow?: number | null;
3737
+ previousClose?: number | null;
3738
+ week52High?: number | null;
3739
+ week52Low?: number | null;
3740
+ /**
3741
+ * Trailing-12-month dividend yield as a fraction, not percentage points: `0.0099` is a
3742
+ * 0.99% yield.
3743
+ */
3744
+ dividendYield?: number | null;
3745
+ /** Assets under management, in USD. The fund analogue of a stock's market cap. */
3746
+ aum?: number | null;
3747
+ /** Annual expense ratio as a fraction: `0.0009` is 0.09%. */
3748
+ expenseRatio?: number | null;
3749
+ /** Net asset value per share, in USD. */
3750
+ nav?: number | null;
3751
+ /** Fund inception date, ISO `"YYYY-MM-DD"`. */
3752
+ inceptionDate?: string | null;
3753
+ /** Unix timestamp in MILLISECONDS of when this response was served. Not the age of the price. */
3754
+ timestamp: number;
3755
+ /**
3756
+ * Unix timestamp in MILLISECONDS of the market data behind `currentPrice`. Read this for
3757
+ * freshness rather than `timestamp`. Absent when the price cannot be dated, so treat an
3758
+ * absent value as unknown age, not as fresh.
3759
+ */
3760
+ priceAsOf?: number | null;
3761
+ /** Pre-market or after-hours view. Absent during regular hours, overnight and weekends. */
3762
+ extendedHours?: ExtendedHoursInfo | null;
3763
+ }
3434
3764
  interface EtfHolding {
3435
3765
  /** The symbol as the issuer filed it. For an international fund this is the local exchange code, not a US ticker, so resolve stocks with `linkedTicker` instead. */
3436
3766
  ticker: string;
@@ -3570,6 +3900,15 @@ declare class Etfs {
3570
3900
  * List every ETF tracked by SentiSense, sorted by ticker.
3571
3901
  */
3572
3902
  list(): Promise<EtfInfo[]>;
3903
+ /**
3904
+ * Get the quote snapshot for an ETF: price, day and 52-week range, volume, dividend
3905
+ * yield, AUM, expense ratio, NAV and inception date.
3906
+ *
3907
+ * Fails with a 400 `APIError` whose `code` is `"ticker_is_not_etf"` when the symbol is a
3908
+ * stock (use `stocks.getQuote()` for those), and a `NotFoundError` when there is no
3909
+ * price data for the fund.
3910
+ */
3911
+ quote(ticker: string): Promise<EtfQuote>;
3573
3912
  /**
3574
3913
  * Get the full holdings composition for an ETF, including per-holding weights
3575
3914
  * and freshness metadata. Returns 404 for unknown ETFs or commodity-only funds.
@@ -3818,6 +4157,10 @@ declare class Institutional {
3818
4157
  * Resolved by URL slug (e.g. `Berkshire-Hathaway`) or numeric SEC CIK.
3819
4158
  * Free users receive the profile and top 10 holdings; PRO users receive the
3820
4159
  * full holdings array. Returns 404 if the slug or CIK is unknown.
4160
+ *
4161
+ * The signature remains unknown for compatibility. Opt in to the exported
4162
+ * PreviewResponse<InstitutionDetail> type to read data.positionsHeld, the full
4163
+ * portfolio count excluding SOLD_OUT rows, even on a truncated holdings list.
3821
4164
  */
3822
4165
  getInstitutionDetail(slugOrCik: string): Promise<unknown>;
3823
4166
  }
@@ -4072,6 +4415,17 @@ declare class Stocks {
4072
4415
  getSentiment(ticker: string): Promise<PreviewResponse<StockSentiment>>;
4073
4416
  /** Get related KB entities (people, products, partners). */
4074
4417
  getEntities(ticker: string): Promise<StockEntity[]>;
4418
+ /**
4419
+ * Get the company knowledge graph around a stock: the people, products, peers and other
4420
+ * entities linked to the company, and the typed relationships between them.
4421
+ *
4422
+ * Every identifier in the response is a slug, the same handle the metric and document
4423
+ * endpoints take, so a node can be passed straight to them. `depth` is 1 (default) or 2,
4424
+ * `cap` limits the number of non-root nodes (1 to 200, default 75); the root is always
4425
+ * included in addition. Out-of-range values are rejected with a 400. A ticker with no
4426
+ * graph returns a `NotFoundError`.
4427
+ */
4428
+ getGraph(ticker: string, options?: GetStockGraphOptions): Promise<StockGraph>;
4075
4429
  /**
4076
4430
  * Get AI-generated stock analysis report. Requires PRO tier.
4077
4431
  *
@@ -4110,12 +4464,18 @@ declare class Stocks {
4110
4464
  getCurrentFundamentals(ticker: string): Promise<TtmFundamentals>;
4111
4465
  /** Get historical revenue data. */
4112
4466
  getHistoricalRevenue(ticker: string): Promise<unknown>;
4113
- /** Get short interest metrics (FINRA). */
4114
- getShortInterest(ticker: string): Promise<ShortInterest>;
4467
+ /**
4468
+ * Get short interest history (FINRA), newest first: shares short, days to cover and
4469
+ * average daily volume per settlement date. `limit` defaults to 24 settlement dates.
4470
+ */
4471
+ getShortInterest(ticker: string, options?: GetShortInterestOptions): Promise<ShortInterest>;
4115
4472
  /** Get float information. */
4116
4473
  getFloat(ticker: string): Promise<FloatInfo>;
4117
- /** Get short volume trading data. */
4118
- getShortVolume(ticker: string): Promise<ShortVolume>;
4474
+ /**
4475
+ * Get daily short volume, newest first: shares sold short against total volume on the
4476
+ * reporting venues. `limit` defaults to 90 trading days.
4477
+ */
4478
+ getShortVolume(ticker: string, options?: GetShortVolumeOptions): Promise<ShortVolume>;
4119
4479
  /**
4120
4480
  * Get company-specific KPI time-series for a ticker. Returns curated GAAP and
4121
4481
  * non-GAAP metrics from earnings filings (e.g. iPhone unit sales, Tesla deliveries,
@@ -4395,6 +4755,6 @@ declare class APIError extends SentiSenseError {
4395
4755
  constructor(message: string, status: number, code?: string);
4396
4756
  }
4397
4757
 
4398
- declare const VERSION = "0.61.0";
4758
+ declare const VERSION = "0.63.0";
4399
4759
 
4400
- export { type AISummary, APIError, type AnalystAction, type AnalystCall, type AnalystCalledItCall, type AnalystCalledItMove, type AnalystConsensus, type AnalystConsensusHistory, type AnalystConsensusHistoryPoint, type AnalystCoverage, type AnalystCoverageAnalyst, type AnalystCoverageBookEntry, type AnalystCoverageFirm, type AnalystEarningsSurprise, type AnalystEstimate, type AnalystEstimatesResponse, type AnalystFirmRating, type AnalystFirmTenure, type AnalystNote, type AnalystProfile, type AnalystRatingBuckets, type AssetMetadata, AuthenticationError, type CalendarMeta, type ChartData, type ChartDataPoint, type ClusterBuy, type CompanyKpisData, type CongressTrade, DeepHistoryUnavailableError, type Document, type DocumentSearchResponse, type DocumentSource, type EarningsCalendarResponse, type EarningsEvent, type EarningsKpiHighlight, type EarningsOutcomeStatistics, type EarningsQuarter, type EarningsReaction, type EarningsReactionsResponse, type EarningsSource, type EarningsStatistics, type EarningsStatisticsBaseline, type EarningsStatisticsDeviation, type EarningsStatisticsThresholds, type EarningsStatisticsWindow, type EntitySearchResult, type EntitySearchType, type EtfAggregateCoverage, type EtfAnalystAggregate, type EtfAnalystContributor, type EtfHolding, type EtfHoldings, type EtfInfo, type EtfInsiderAggregate, type EtfInsiderContributor, type EtfScreenerExecuteResponse, type EtfScreenerRow, type EtfSentimentAggregate, type EtfSentimentReading, type FeaturedScreen, type FloatInfo, type Fundamentals, type FundamentalsPeriod, type FundamentalsPeriodsResponse, type GetAnalystActionsOptions, type GetAnalystCalledItOptions, type GetAnalystCallsOptions, type GetAnalystConsensusHistoryOptions, type GetAnalystCoverageOptions, type GetAnalystMarketActivityOptions, type GetEarningsCalendarOptions, type GetEarningsStatisticsOptions, type GetEarningsSummariesOptions, type GetEtfInsiderAggregateOptions, type GetHoldersOptions, type GetInsiderOptions, type GetInsightsOptions, type GetLatestInsightsOptions, type GetOptionsHistoryOptions, type GetPoliticianActivityOptions, type GetPoliticianDirectoryOptions, type GetPoliticianMemberOptions, type GetPoliticiansOptions, type GetRankedEarningsOptions, type GetRecentEarningsOptions, type GetStockInsightsRangeOptions, type GetUserInsightsOptions, type Holder, type HolderNotableChanges, type IndexConstituent, type IndexHistoryPoint, type IndexHistoryResponse, type IndexListResponse, type IndexListing, type IndexSnapshot, type InsiderActivityResponse, type InsiderActivitySummary, type InsiderTrade, type Insight, type InsightPreviewResponse, type InstitutionList, type InstitutionListResponse, type InstitutionSummary, type InstitutionalFlow, type InstitutionalFlows, type InstitutionalFlowsResponse, type KBEntity, type KpiCoverageEntry, type KpiCoverageResponse, type KpiDataPoint, type KpiSeries, type KpiTypeEntry, type ListInstitutionsOptions, type LockedInsight, type MarketMood, type MarketMoodOptions, type MarketStatus, type MarketSummary, type MetricDistribution, type MetricDistributionOptions, type MetricType, type MetricsBreakdown, type MetricsOptions, NotFoundError, type OptionsAggregate, type OptionsCapabilities, type OptionsContext, type OptionsHighlight, type OptionsHistory, type OptionsHistoryWindow, type OptionsIntradayBoardCapability, type OptionsIntradayFlow, type OptionsOiFollowUp, type OptionsOiWalls, type OptionsOverview, type OptionsOverviewRow, type OptionsSummary, type OptionsUnusualContract, type OptionsWall, type PoliticianDetail, type PoliticianDirectory, type PoliticianDirectoryEntry, type PoliticianDirectoryResponse, type PoliticianSummary, type PreviewResponse, type Quarter, type RankedEarnings, type RankedEarningsSection, type RankedReportedEarnings, type RankedUpcomingEarnings, RateLimitError, type RatingBase, type RatingDimension, type RatingDimensionKey, type RatingFlag, type RatingNotRatedReason, type RatingSubLeg, type RecentEarningsEntry, type RiskAdjustment, type RiskCondition, type ScreenerExecuteOptions, type ScreenerExecuteResponse, type ScreenerFieldCatalog, type ScreenerFieldDescriptor, type ScreenerFieldOption, type ScreenerFilter, type ScreenerPlan, type ScreenerRow, type ScreenerScreensResponse, type ScreenerSort, type SearchEntitiesOptions, type SearchStoriesOptions, SentiSense, SentiSenseError, type SentiSenseOptions, type SentimentEntry, type ServingMetric, type ShortInterest, type ShortVolume, type SimilarStock, type StockDetail, type StockEntity, type StockImage, type StockNotRated, type StockPrice, type StockProfile, type StockQuote, type StockRating, type StockRatingResponse, type StockSocialDominance, type Story, type StoryCluster, type StoryTimelineEntry, TemporarilyUnavailableError, type TickerHolders, type TrackerEvent, type TrackerGeoEntry, type TrackerHeadlineMetric, type TrackerListResponse, type TrackerListing, type TrackerMetricValue, type TrackerSignal, type TrackerSnapshot, type TrackerSnapshotResponse, type TrackerSourceRef, type TrackerTableRow, type TrackerTimeSeriesPoint, type TtmFundamentals, VERSION, type WeightedConsensus, type WeightedNetFlow, SentiSense as default };
4760
+ export { type AISummary, APIError, type AnalystAction, type AnalystCall, type AnalystCalledItCall, type AnalystCalledItMove, type AnalystConsensus, type AnalystConsensusHistory, type AnalystConsensusHistoryPoint, type AnalystCoverage, type AnalystCoverageAnalyst, type AnalystCoverageBookEntry, type AnalystCoverageFirm, type AnalystEarningsSurprise, type AnalystEstimate, type AnalystEstimatePeriodType, type AnalystEstimatesResponse, type AnalystFirmRating, type AnalystFirmTenure, type AnalystNote, type AnalystProfile, type AnalystRatingBuckets, type AnalystRef, type AssetMetadata, AuthenticationError, type CalendarMeta, type ChartData, type ChartDataPoint, type ClusterBuy, type CompanyKpisData, type CongressTrade, DeepHistoryUnavailableError, type Document, type DocumentSearchResponse, type DocumentSource, type EarningsCalendarResponse, type EarningsEvent, type EarningsKpiHighlight, type EarningsOutcomeStatistics, type EarningsQuarter, type EarningsReaction, type EarningsReactionsResponse, type EarningsSource, type EarningsStatistics, type EarningsStatisticsBaseline, type EarningsStatisticsDeviation, type EarningsStatisticsThresholds, type EarningsStatisticsWindow, type EntitySearchResult, type EntitySearchType, type EtfAggregateCoverage, type EtfAnalystAggregate, type EtfAnalystContributor, type EtfHolding, type EtfHoldings, type EtfInfo, type EtfInsiderAggregate, type EtfInsiderContributor, type EtfQuote, type EtfScreenerExecuteResponse, type EtfScreenerRow, type EtfSentimentAggregate, type EtfSentimentReading, type ExtendedHoursInfo, type FeaturedScreen, type FloatInfo, type Fundamentals, type FundamentalsPeriod, type FundamentalsPeriodsResponse, type GetAnalystActionsOptions, type GetAnalystCalledItOptions, type GetAnalystCallsOptions, type GetAnalystConsensusHistoryOptions, type GetAnalystCoverageOptions, type GetAnalystMarketActivityOptions, type GetEarningsCalendarOptions, type GetEarningsStatisticsOptions, type GetEarningsSummariesOptions, type GetEtfInsiderAggregateOptions, type GetHoldersOptions, type GetInsiderOptions, type GetInsightsOptions, type GetLatestInsightsOptions, type GetOptionsHistoryOptions, type GetPoliticianActivityOptions, type GetPoliticianDirectoryOptions, type GetPoliticianMemberOptions, type GetPoliticiansOptions, type GetRankedEarningsOptions, type GetRecentEarningsOptions, type GetShortInterestOptions, type GetShortVolumeOptions, type GetStockGraphOptions, type GetStockInsightsRangeOptions, type GetUserInsightsOptions, type GraphCounts, type GraphEdge, type GraphGroups, type GraphNode, type GraphProductFamily, type Holder, type HolderNotableChanges, type IndexConstituent, type IndexHistoryPoint, type IndexHistoryResponse, type IndexListResponse, type IndexListing, type IndexSnapshot, type InsiderActivityResponse, type InsiderActivitySummary, type InsiderTrade, type Insight, type InsightPreviewResponse, type InstitutionDetail, type InstitutionList, type InstitutionListResponse, type InstitutionSummary, type InstitutionalFlow, type InstitutionalFlows, type InstitutionalFlowsResponse, type KBEntity, type KpiCoverageEntry, type KpiCoverageResponse, type KpiDataPoint, type KpiSeries, type KpiTypeEntry, type ListInstitutionsOptions, type LockedInsight, type MarketMood, type MarketMoodOptions, type MarketStatus, type MarketSummary, type MetricDistribution, type MetricDistributionOptions, type MetricType, type MetricsBreakdown, type MetricsOptions, NotFoundError, type OptionsAggregate, type OptionsCapabilities, type OptionsContext, type OptionsHighlight, type OptionsHistory, type OptionsHistoryWindow, type OptionsIntradayBoardCapability, type OptionsIntradayFlow, type OptionsOiFollowUp, type OptionsOiWalls, type OptionsOverview, type OptionsOverviewRow, type OptionsSummary, type OptionsUnusualContract, type OptionsWall, type PoliticianDetail, type PoliticianDirectory, type PoliticianDirectoryEntry, type PoliticianDirectoryResponse, type PoliticianSummary, type PreviewResponse, type Quarter, type RankedEarnings, type RankedEarningsSection, type RankedReportedEarnings, type RankedUpcomingEarnings, RateLimitError, type RatingBase, type RatingDimension, type RatingDimensionKey, type RatingFlag, type RatingNotRatedReason, type RatingSubLeg, type RecentEarningsEntry, type RiskAdjustment, type RiskCondition, type ScreenerExecuteOptions, type ScreenerExecuteResponse, type ScreenerFieldCatalog, type ScreenerFieldDescriptor, type ScreenerFieldOption, type ScreenerFilter, type ScreenerPlan, type ScreenerRow, type ScreenerScreensResponse, type ScreenerSort, type SearchEntitiesOptions, type SearchStoriesOptions, SentiSense, SentiSenseError, type SentiSenseOptions, type SentimentEntry, type ServingMetric, type ShortInterest, type ShortInterestDataPoint, type ShortVolume, type ShortVolumeDataPoint, type SimilarStock, type StockDetail, type StockEntity, type StockGraph, type StockImage, type StockNotRated, type StockPrice, type StockProfile, type StockQuote, type StockRating, type StockRatingResponse, type StockSocialDominance, type Story, type StoryCluster, type StoryTimelineEntry, TemporarilyUnavailableError, type TickerHolders, type TrackerEvent, type TrackerGeoEntry, type TrackerHeadlineMetric, type TrackerListResponse, type TrackerListing, type TrackerMetricValue, type TrackerSignal, type TrackerSnapshot, type TrackerSnapshotResponse, type TrackerSourceRef, type TrackerTableRow, type TrackerTimeSeriesPoint, type TtmFundamentals, VERSION, type WeightedConsensus, type WeightedNetFlow, SentiSense as default };