fmp-node-api 0.2.0 → 0.2.3-beta.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/README.md CHANGED
@@ -142,6 +142,7 @@ const fmp = new FMP({
142
142
  - **`fmp.mutualFund`** - Mutual fund data
143
143
  - **`fmp.economic`** - Economic indicators
144
144
  - **`fmp.market`** - Market-wide data and performance
145
+ - **`fmp.aftermarket`** - Extended-hours (pre/post-market) trade and quote data
145
146
  - **`fmp.list`** - Stock lists and indices
146
147
  - **`fmp.screener`** - Stock screener with filters and available exchanges/sectors/industries/countries
147
148
  - **`fmp.calendar`** - Earnings and economic calendar
@@ -162,6 +163,9 @@ const quote = await fmp.quote.getQuote('AAPL');
162
163
  // Get multiple quotes
163
164
  const quotes = await fmp.quote.getQuotes(['AAPL', 'MSFT', 'GOOGL']);
164
165
 
166
+ // Get a short quote (price, change, volume only)
167
+ const shortQuote = await fmp.quote.getQuoteShort('AAPL');
168
+
165
169
  // Get historical prices
166
170
  const historical = await fmp.quote.getHistoricalPrice({
167
171
  symbol: 'AAPL',
@@ -199,6 +203,9 @@ const fullRealTimeData = await fmp.stock.getRealTimePriceForMultipleStocks([
199
203
  'MSFT',
200
204
  'GOOGL',
201
205
  ]);
206
+
207
+ // Get price change across horizons (1D, 5D, 1M ... 10Y, max)
208
+ const priceChange = await fmp.stock.getPriceChange('AAPL');
202
209
  ```
203
210
 
204
211
  ### Financial Statements
@@ -233,7 +240,7 @@ const ratios = await fmp.financial.getFinancialRatios({ symbol: 'AAPL' });
233
240
  ### Market Data
234
241
 
235
242
  ```typescript
236
- // Get market hours
243
+ // Get market hours + open/closed status for all exchanges
237
244
  const hours = await fmp.market.getMarketHours();
238
245
 
239
246
  // Get market performance
@@ -246,8 +253,21 @@ const losers = await fmp.market.getLosers();
246
253
  // Get most active stocks
247
254
  const mostActive = await fmp.market.getMostActive();
248
255
 
249
- // Get sector performance
250
- const sectors = await fmp.market.getSectorPerformance();
256
+ // Get a sector-performance snapshot for a date
257
+ const sectors = await fmp.market.getSectorPerformance({ date: '2024-06-10' });
258
+
259
+ // Get an industry P/E snapshot for a date
260
+ const industryPE = await fmp.market.getIndustryPESnapshot({ date: '2024-06-10' });
261
+ ```
262
+
263
+ ### Aftermarket Data
264
+
265
+ ```typescript
266
+ // Get the latest extended-hours trade
267
+ const trade = await fmp.aftermarket.getTrade('AAPL');
268
+
269
+ // Get the latest extended-hours bid/ask quote
270
+ const aftermarketQuote = await fmp.aftermarket.getQuote('AAPL');
251
271
  ```
252
272
 
253
273
  ### Economic Indicators
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { FMPConfig, APIResponse, EarningsCalendar, EarningsConfirmed, DividendsCalendar, EconomicsCalendar, IPOCalendar, SplitsCalendar, CompanyProfile, ExecutiveCompensation, CompanyNotes, HistoricalEmployeeCount, SharesFloat, HistoricalSharesFloat, EarningsCallTranscript, CompanyTranscriptData, StockPeer, TreasuryRate, EconomicIndicator, ETFHoldingDates, ETFHolding, ETFHolder, ETFProfile, ETFWeighting, ETFCountryWeighting, ETFStockExposure, IncomeStatement, BalanceSheet, CashFlowStatement, KeyMetrics, FinancialRatios, EnterpriseValue, CashflowGrowth, IncomeGrowth, BalanceSheetGrowth, FinancialGrowth, EarningsHistorical, EarningsSurprises, FinancialScores, KeyMetricsTTM, FinancialRatiosTTM, RevenueProductSegmentation, RevenueGeographicSegmentation, InsiderTradingRSSResponse, InsiderTradingSearchResponse, TransactionTypesResponse, InsidersBySymbolResponse, InsiderTradeStatisticsResponse, CikMapperResponse, CikMapperBySymbolResponse, BeneficialOwnershipResponse, FailToDeliverResponse, TransactionType, Form13FResponse, InstitutionalHolderResponse, StockList, ETFList, CryptoList, ForexList, AvailableIndexesList, MarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundHolding, Article, News, Quote, HistoricalPriceResponse, IntradayPrice, ScreenerParams, Screener, AvailableExchanges, AvailableSectors, AvailableIndustries, AvailableCountries, SearchResult, AnalystEstimate, PriceTargetConsensus, PriceTargetSummary, StockGrade, GradesConsensus, DCFValuation, CompanyRating, TechnicalIndicator, RSSFeedItem, RSSFeedAllItem, RSSFeedV3Item, RSSFeed8KItem, SECFiling, IndustryClassification, IndustryClassificationCode, SenateTradingResponse, SenateHouseTradingByNameResponse, HouseTradingResponse, MarketCap, StockSplitResponse, StockDividendResponse, StockRealTimePrice, StockRealTimePriceFull, FMPErrorType } from './types-only.mjs';
2
- export { AnalystEstimateSchema, ArticleSchema, AvailableCountriesSchema, AvailableExchangesSchema, AvailableIndexesListSchema, AvailableIndustriesSchema, AvailableSectorsSchema, BalanceSheetGrowthSchema, BalanceSheetSchema, BeneficialOwnershipResponseSchema, CashFlowStatementSchema, CashflowGrowthSchema, CikMapperBySymbolResponseSchema, CikMapperResponseSchema, CompaniesPriceListResponse, CompanyNotesSchema, CompanyProfileSchema, CompanyRatingSchema, CompanyTranscriptDataSchema, CryptoListSchema, DCFValuationSchema, DateRangeParams, DividendsCalendarSchema, ETFCountryWeightingSchema, ETFHolderSchema, ETFHoldingDatesSchema, ETFHoldingSchema, ETFListSchema, ETFProfileSchema, ETFStockExposureSchema, ETFWeightingSchema, EarningsCalendarSchema, EarningsCallTranscriptSchema, EarningsConfirmedSchema, EarningsHistoricalSchema, EarningsSurprisesSchema, EconomicIndicatorName, EconomicIndicatorNameSchema, EconomicIndicatorSchema, EconomicsCalendarSchema, EnterpriseValueSchema, Exchange, ExecutiveCompensationSchema, FailToDeliverResponseSchema, FinancialGrowthSchema, FinancialRatiosSchema, FinancialRatiosTTMSchema, FinancialScoresSchema, ForexListSchema, Form13FResponseSchema, GradesConsensusSchema, HistoricalEmployeeCountSchema, HistoricalPriceData, HistoricalPriceDataSchema, HistoricalPriceResponseSchema, HistoricalSharesFloatSchema, HouseTradingResponseSchema, IPOCalendarSchema, IncomeGrowthSchema, IncomeStatementSchema, IndividualIndustryClassificationParams, IndividualIndustryClassificationParamsSchema, IndustryClassificationCodeSchema, IndustryClassificationCodesParams, IndustryClassificationCodesParamsSchema, IndustryClassificationSchema, InsiderTradeStatisticsResponseSchema, InsiderTradingRSSResponseSchema, InsiderTradingSearchResponseSchema, InsidersBySymbolResponseSchema, InstitutionalHolderResponseSchema, IntradayPriceSchema, KeyMetricsSchema, KeyMetricsTTMSchema, MarketCapSchema, MarketHoliday, MarketHolidaySchema, MarketHoursSchema, MarketIndexSchema, MarketPerformanceSchema, MarketSectorPerformanceSchema, MutualFundHoldingSchema, NewsSchema, PaginationParams, Period, PeriodParams, PriceTargetConsensusSchema, PriceTargetSummarySchema, QueryParams, QuoteSchema, RSSFeed8KItemSchema, RSSFeed8KParams, RSSFeed8KParamsSchema, RSSFeedAllItemSchema, RSSFeedItemSchema, RSSFeedParams, RSSFeedParamsSchema, RSSFeedV3ItemSchema, RSSFeedV3Params, RSSFeedV3ParamsSchema, RevenueGeographicSegmentationSchema, RevenueProductSegmentationSchema, RevenueSegmentationSchema, SECFilingSchema, SECFilingsParams, SECFilingsParamsSchema, ScreenerParamsSchema, ScreenerSchema, SearchResultSchema, SenateHouseTradingByNameResponseSchema, SenateTradingResponseSchema, SharesFloatSchema, SplitsCalendarSchema, StockDividend, StockDividendResponseSchema, StockDividendSchema, StockGradeSchema, StockListResponse, StockListSchema, StockPeerSchema, StockRealTimePriceFullSchema, StockRealTimePriceSchema, StockSplit, StockSplitResponseSchema, StockSplitSchema, SymbolParams, TechnicalIndicatorSchema, TransactionTypeRecordSchema, TreasuryRateSchema } from './types-only.mjs';
1
+ import { FMPConfig, APIResponse, EarningsCalendar, EarningsConfirmed, DividendsCalendar, EconomicsCalendar, IPOCalendar, SplitsCalendar, CompanyProfile, ExecutiveCompensation, CompanyNotes, HistoricalEmployeeCount, SharesFloat, HistoricalSharesFloat, EarningsCallTranscript, CompanyTranscriptData, StockPeer, TreasuryRate, EconomicIndicator, ETFHoldingDates, ETFHolding, ETFHolder, ETFProfile, ETFWeighting, ETFCountryWeighting, ETFStockExposure, IncomeStatement, BalanceSheet, CashFlowStatement, KeyMetrics, FinancialRatios, EnterpriseValue, CashflowGrowth, IncomeGrowth, BalanceSheetGrowth, FinancialGrowth, EarningsHistorical, EarningsSurprises, FinancialScores, KeyMetricsTTM, FinancialRatiosTTM, RevenueProductSegmentation, RevenueGeographicSegmentation, InsiderTradingRSSResponse, InsiderTradingSearchResponse, TransactionTypesResponse, InsidersBySymbolResponse, InsiderTradeStatisticsResponse, CikMapperResponse, CikMapperBySymbolResponse, BeneficialOwnershipResponse, FailToDeliverResponse, TransactionType, Form13FResponse, InstitutionalHolderResponse, StockList, ETFList, CryptoList, ForexList, AvailableIndexesList, ExchangeMarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, IndustryPESnapshot, MutualFundHolding, Article, News, Quote, QuoteShort, HistoricalPriceResponse, IntradayPrice, ScreenerParams, Screener, AvailableExchanges, AvailableSectors, AvailableIndustries, AvailableCountries, SearchResult, AnalystEstimate, PriceTargetConsensus, PriceTargetSummary, StockGrade, GradesConsensus, DCFValuation, CompanyRating, TechnicalIndicator, RSSFeedItem, RSSFeedAllItem, RSSFeedV3Item, RSSFeed8KItem, SECFiling, IndustryClassification, IndustryClassificationCode, SenateTradingResponse, SenateHouseTradingByNameResponse, HouseTradingResponse, MarketCap, StockPriceChange, StockSplitResponse, StockDividendResponse, StockRealTimePrice, StockRealTimePriceFull, AftermarketTrade, AftermarketQuote, FMPErrorType } from './types-only.mjs';
2
+ export { AftermarketQuoteSchema, AftermarketTradeSchema, AnalystEstimateSchema, ArticleSchema, AvailableCountriesSchema, AvailableExchangesSchema, AvailableIndexesListSchema, AvailableIndustriesSchema, AvailableSectorsSchema, BalanceSheetGrowthSchema, BalanceSheetSchema, BeneficialOwnershipResponseSchema, CashFlowStatementSchema, CashflowGrowthSchema, CikMapperBySymbolResponseSchema, CikMapperResponseSchema, CompaniesPriceListResponse, CompanyNotesSchema, CompanyProfileSchema, CompanyRatingSchema, CompanyTranscriptDataSchema, CryptoListSchema, DCFValuationSchema, DateRangeParams, DividendsCalendarSchema, ETFCountryWeightingSchema, ETFHolderSchema, ETFHoldingDatesSchema, ETFHoldingSchema, ETFListSchema, ETFProfileSchema, ETFStockExposureSchema, ETFWeightingSchema, EarningsCalendarSchema, EarningsCallTranscriptSchema, EarningsConfirmedSchema, EarningsHistoricalSchema, EarningsSurprisesSchema, EconomicIndicatorName, EconomicIndicatorNameSchema, EconomicIndicatorSchema, EconomicsCalendarSchema, EnterpriseValueSchema, Exchange, ExchangeMarketHoursSchema, ExecutiveCompensationSchema, FailToDeliverResponseSchema, FinancialGrowthSchema, FinancialRatiosSchema, FinancialRatiosTTMSchema, FinancialScoresSchema, ForexListSchema, Form13FResponseSchema, GradesConsensusSchema, HistoricalEmployeeCountSchema, HistoricalPriceData, HistoricalPriceDataSchema, HistoricalPriceResponseSchema, HistoricalSharesFloatSchema, HouseTradingResponseSchema, IPOCalendarSchema, IncomeGrowthSchema, IncomeStatementSchema, IndividualIndustryClassificationParams, IndividualIndustryClassificationParamsSchema, IndustryClassificationCodeSchema, IndustryClassificationCodesParams, IndustryClassificationCodesParamsSchema, IndustryClassificationSchema, IndustryPESnapshotSchema, InsiderTradeStatisticsResponseSchema, InsiderTradingRSSResponseSchema, InsiderTradingSearchResponseSchema, InsidersBySymbolResponseSchema, InstitutionalHolderResponseSchema, IntradayPriceSchema, KeyMetricsSchema, KeyMetricsTTMSchema, MarketCapSchema, MarketIndexSchema, MarketPerformanceSchema, MarketSectorPerformanceSchema, MutualFundHoldingSchema, NewsSchema, PaginationParams, Period, PeriodParams, PriceTargetConsensusSchema, PriceTargetSummarySchema, QueryParams, QuoteSchema, QuoteShortSchema, RSSFeed8KItemSchema, RSSFeed8KParams, RSSFeed8KParamsSchema, RSSFeedAllItemSchema, RSSFeedItemSchema, RSSFeedParams, RSSFeedParamsSchema, RSSFeedV3ItemSchema, RSSFeedV3Params, RSSFeedV3ParamsSchema, RevenueGeographicSegmentationSchema, RevenueProductSegmentationSchema, RevenueSegmentationSchema, SECFilingSchema, SECFilingsParams, SECFilingsParamsSchema, ScreenerParamsSchema, ScreenerSchema, SearchResultSchema, SenateHouseTradingByNameResponseSchema, SenateTradingResponseSchema, SharesFloatSchema, SplitsCalendarSchema, StockDividend, StockDividendResponseSchema, StockDividendSchema, StockGradeSchema, StockListResponse, StockListSchema, StockPeerSchema, StockPriceChangeSchema, StockRealTimePriceFullSchema, StockRealTimePriceSchema, StockSplit, StockSplitResponseSchema, StockSplitSchema, SymbolParams, TechnicalIndicatorSchema, TransactionTypeRecordSchema, TreasuryRateSchema } from './types-only.mjs';
3
3
  export { FMPValidation } from './utils/validation.mjs';
4
4
  import 'zod';
5
5
 
@@ -1961,34 +1961,31 @@ declare class MarketEndpoints {
1961
1961
  private client;
1962
1962
  constructor(client: FMPClient);
1963
1963
  /**
1964
- * Get current market hours and trading status
1964
+ * Get trading hours and current open/closed status for all exchanges
1965
1965
  *
1966
- * Provides real-time information about market trading hours, including
1967
- * whether markets are currently open or closed, trading session times,
1968
- * and upcoming market holidays. Essential for determining trading
1969
- * availability and market status.
1966
+ * Returns one record per supported exchange (NYSE, NASDAQ, LSE, etc.) with its
1967
+ * opening/closing hours, timezone, and whether it is currently open. Essential
1968
+ * for determining trading availability across global markets.
1970
1969
  *
1971
- * @returns Promise resolving to market hours data with trading status and session information
1970
+ * @returns Promise resolving to an array of per-exchange market-hours records
1972
1971
  *
1973
1972
  * @example
1974
1973
  * ```typescript
1975
- * // Get current market status
1976
- * const marketHours = await fmp.market.getMarketHours();
1977
- * console.log(`Market is ${marketHours.data.isTheStockMarketOpen ? 'OPEN' : 'CLOSED'}`);
1978
- * console.log(`Current time: ${marketHours.data.currentTime}`);
1979
- * console.log(`Next trading day: ${marketHours.data.nextTradingDay}`);
1974
+ * // Get market status for every exchange
1975
+ * const hours = await fmp.market.getMarketHours();
1980
1976
  *
1981
- * // Check if it's a trading day
1982
- * if (marketHours.data.isTheStockMarketOpen) {
1983
- * console.log('Markets are currently open for trading');
1984
- * } else {
1985
- * console.log('Markets are closed');
1986
- * }
1977
+ * // Check whether the NASDAQ is currently open
1978
+ * const nasdaq = hours.data.find(e => e.exchange === 'NASDAQ');
1979
+ * console.log(`NASDAQ is ${nasdaq?.isMarketOpen ? 'OPEN' : 'CLOSED'}`);
1980
+ *
1981
+ * // List all currently-open exchanges
1982
+ * const open = hours.data.filter(e => e.isMarketOpen).map(e => e.exchange);
1983
+ * console.log(`Open now: ${open.join(', ')}`);
1987
1984
  * ```
1988
1985
  *
1989
- * @see {@link https://site.financialmodelingprep.com/developer/docs#market-hours|FMP Market Hours Documentation}
1986
+ * @see {@link https://site.financialmodelingprep.com/developer/docs/stable/all-exchange-market-hours|FMP Exchange Market Hours Documentation}
1990
1987
  */
1991
- getMarketHours(): Promise<APIResponse<MarketHours>>;
1988
+ getMarketHours(): Promise<APIResponse<ExchangeMarketHours[]>>;
1992
1989
  /**
1993
1990
  * Get overall market performance data
1994
1991
  *
@@ -2138,54 +2135,64 @@ declare class MarketEndpoints {
2138
2135
  */
2139
2136
  getMostActive(): Promise<APIResponse<MarketPerformance[]>>;
2140
2137
  /**
2141
- * Get sector performance data for the current trading day
2138
+ * Get a sector-performance snapshot for a given date
2139
+ *
2140
+ * Returns the average price change per sector for the requested date, broken
2141
+ * out by exchange. Essential for sector-rotation analysis and identifying
2142
+ * leading/lagging sectors. A `date` is required (YYYY-MM-DD).
2142
2143
  *
2143
- * Provides performance data for all major market sectors including
2144
- * technology, healthcare, financials, energy, and others. Essential for
2145
- * sector rotation analysis, identifying leading/lagging sectors, and
2146
- * understanding market breadth and sector-specific trends.
2144
+ * @param params - Snapshot parameters
2145
+ * @param params.date - The date to snapshot, in YYYY-MM-DD format (required)
2146
+ * @param params.exchange - Optional exchange filter (e.g. 'NASDAQ', 'NYSE')
2147
+ * @param params.sector - Optional sector filter (e.g. 'Technology')
2147
2148
  *
2148
- * @returns Promise resolving to array of sector performance data with percentage changes
2149
+ * @returns Promise resolving to an array of per-sector average changes
2149
2150
  *
2150
2151
  * @example
2151
2152
  * ```typescript
2152
- * // Get sector performance for the day
2153
- * const sectorPerformance = await fmp.market.getSectorPerformance();
2154
- * console.log(`Sector performance for ${sectorPerformance.data.length} sectors:`);
2155
- *
2156
- * sectorPerformance.data.forEach(sector => {
2157
- * const changeColor = sector.changesPercentage >= 0 ? 'green' : 'red';
2158
- * console.log(`${sector.sector}: ${sector.changesPercentage}%`);
2159
- * console.log(` Change: ${sector.changesPercentage >= 0 ? '+' : ''}${sector.changesPercentage}%`);
2153
+ * const snapshot = await fmp.market.getSectorPerformance({ date: '2024-06-10' });
2154
+ * snapshot.data.forEach(s => {
2155
+ * console.log(`${s.sector} (${s.exchange}): ${s.averageChange.toFixed(2)}%`);
2160
2156
  * });
2161
2157
  *
2162
- * // Find best performing sectors
2163
- * const topSectors = sectorPerformance.data
2164
- * .sort((a, b) => b.changesPercentage - a.changesPercentage)
2165
- * .slice(0, 3);
2166
- * console.log('Top 3 performing sectors:');
2167
- * topSectors.forEach((sector, index) => {
2168
- * console.log(`${index + 1}. ${sector.sector}: ${sector.changesPercentage}%`);
2169
- * });
2158
+ * // Filter to a single exchange
2159
+ * const nyse = await fmp.market.getSectorPerformance({ date: '2024-06-10', exchange: 'NYSE' });
2160
+ * ```
2170
2161
  *
2171
- * // Find worst performing sectors
2172
- * const bottomSectors = sectorPerformance.data
2173
- * .sort((a, b) => a.changesPercentage - b.changesPercentage)
2174
- * .slice(0, 3);
2175
- * console.log('Bottom 3 performing sectors:');
2176
- * bottomSectors.forEach((sector, index) => {
2177
- * console.log(`${index + 1}. ${sector.sector}: ${sector.changesPercentage}%`);
2178
- * });
2162
+ * @see {@link https://site.financialmodelingprep.com/developer/docs/stable/sector-performance-snapshot|FMP Sector Performance Snapshot Documentation}
2163
+ */
2164
+ getSectorPerformance(params: {
2165
+ date: string;
2166
+ exchange?: string;
2167
+ sector?: string;
2168
+ }): Promise<APIResponse<MarketSectorPerformance[]>>;
2169
+ /**
2170
+ * Get an industry P/E snapshot for a given date
2171
+ *
2172
+ * Returns the average price-to-earnings ratio per industry for the requested
2173
+ * date, broken out by exchange. Useful for relative-valuation analysis across
2174
+ * industries. A `date` is required (YYYY-MM-DD).
2175
+ *
2176
+ * @param params - Snapshot parameters
2177
+ * @param params.date - The date to snapshot, in YYYY-MM-DD format (required)
2178
+ * @param params.exchange - Optional exchange filter (e.g. 'NASDAQ', 'NYSE')
2179
+ * @param params.industry - Optional industry filter (e.g. 'Software')
2179
2180
  *
2180
- * // Check for sector rotation
2181
- * const gainingSectors = sectorPerformance.data.filter(sector => sector.changesPercentage > 0);
2182
- * const losingSectors = sectorPerformance.data.filter(sector => sector.changesPercentage < 0);
2183
- * console.log(`Sectors gaining: ${gainingSectors.length}, Sectors losing: ${losingSectors.length}`);
2181
+ * @returns Promise resolving to an array of per-industry P/E ratios
2182
+ *
2183
+ * @example
2184
+ * ```typescript
2185
+ * const pe = await fmp.market.getIndustryPESnapshot({ date: '2024-06-10' });
2186
+ * pe.data.forEach(i => console.log(`${i.industry} (${i.exchange}): ${i.pe.toFixed(1)}`));
2184
2187
  * ```
2185
2188
  *
2186
- * @see {@link https://site.financialmodelingprep.com/developer/docs#sector-performance-market-overview|FMP Sector Performance Documentation}
2189
+ * @see {@link https://site.financialmodelingprep.com/developer/docs/stable/industry-pe-snapshot|FMP Industry PE Snapshot Documentation}
2187
2190
  */
2188
- getSectorPerformance(): Promise<APIResponse<MarketSectorPerformance[]>>;
2191
+ getIndustryPESnapshot(params: {
2192
+ date: string;
2193
+ exchange?: string;
2194
+ industry?: string;
2195
+ }): Promise<APIResponse<IndustryPESnapshot[]>>;
2189
2196
  /**
2190
2197
  * Get real-time data for major market indices
2191
2198
  *
@@ -2590,6 +2597,23 @@ declare class QuoteEndpoints {
2590
2597
  * ```
2591
2598
  */
2592
2599
  getQuote(symbol: string): Promise<APIResponse<Quote>>;
2600
+ /**
2601
+ * Get a short real-time quote for any asset type (stocks, crypto, forex, commodities, ETFs)
2602
+ *
2603
+ * A lean alternative to {@link getQuote} returning only price, change, and volume.
2604
+ * Lighter on bandwidth — useful for frequent polling or large symbol sweeps.
2605
+ *
2606
+ * @param symbol - The trading symbol (e.g., 'AAPL', 'BTCUSD', 'EURUSD')
2607
+ *
2608
+ * @returns Promise resolving to a short quote with price, change, and volume
2609
+ *
2610
+ * @example
2611
+ * ```typescript
2612
+ * const shortQuote = await fmp.quote.getQuoteShort('AAPL');
2613
+ * console.log(`${shortQuote.data.price} (${shortQuote.data.change})`);
2614
+ * ```
2615
+ */
2616
+ getQuoteShort(symbol: string): Promise<APIResponse<QuoteShort>>;
2593
2617
  /**
2594
2618
  * Get historical price data for any asset type with customizable date range
2595
2619
  *
@@ -3462,6 +3486,23 @@ declare class StockEndpoints {
3462
3486
  * @see {@link https://site.financialmodelingprep.com/developer/docs#market-cap-company-information|FMP Market Cap Documentation}
3463
3487
  */
3464
3488
  getMarketCap(symbol: string): Promise<APIResponse<MarketCap>>;
3489
+ /**
3490
+ * Get the percentage price change for a stock across standard horizons
3491
+ *
3492
+ * Returns price change percentages over 1D, 5D, 1M, 3M, 6M, YTD, 1Y, 3Y, 5Y,
3493
+ * 10Y, and max ranges in a single call. Handy for performance summaries.
3494
+ *
3495
+ * @param symbol - The stock symbol (e.g., 'AAPL')
3496
+ *
3497
+ * @returns Promise resolving to price-change percentages across horizons
3498
+ *
3499
+ * @example
3500
+ * ```typescript
3501
+ * const change = await fmp.stock.getPriceChange('AAPL');
3502
+ * console.log(`YTD: ${change.data.ytd}% | 1Y: ${change.data['1Y']}%`);
3503
+ * ```
3504
+ */
3505
+ getPriceChange(symbol: string): Promise<APIResponse<StockPriceChange>>;
3465
3506
  /**
3466
3507
  * Get historical stock splits for a company
3467
3508
  *
@@ -3576,6 +3617,45 @@ declare class StockEndpoints {
3576
3617
  getRealTimePriceForMultipleStocks(symbols: string[]): Promise<APIResponse<StockRealTimePriceFull[]>>;
3577
3618
  }
3578
3619
 
3620
+ declare class AftermarketEndpoints {
3621
+ private client;
3622
+ constructor(client: FMPClient);
3623
+ /**
3624
+ * Get the latest extended-hours (pre/post-market) trade for a symbol
3625
+ *
3626
+ * Returns the most recent aftermarket trade including price, trade size, and
3627
+ * timestamp. Useful for tracking price action outside regular trading hours.
3628
+ *
3629
+ * @param symbol - The stock symbol (e.g., 'AAPL')
3630
+ *
3631
+ * @returns Promise resolving to the latest aftermarket trade
3632
+ *
3633
+ * @example
3634
+ * ```typescript
3635
+ * const trade = await fmp.aftermarket.getTrade('AAPL');
3636
+ * console.log(`Last aftermarket trade: $${trade.data.price} x ${trade.data.tradeSize}`);
3637
+ * ```
3638
+ */
3639
+ getTrade(symbol: string): Promise<APIResponse<AftermarketTrade>>;
3640
+ /**
3641
+ * Get the latest extended-hours (pre/post-market) bid/ask quote for a symbol
3642
+ *
3643
+ * Returns the most recent aftermarket quote including bid/ask prices and sizes,
3644
+ * volume, and timestamp. Useful for monitoring extended-hours liquidity.
3645
+ *
3646
+ * @param symbol - The stock symbol (e.g., 'AAPL')
3647
+ *
3648
+ * @returns Promise resolving to the latest aftermarket quote
3649
+ *
3650
+ * @example
3651
+ * ```typescript
3652
+ * const quote = await fmp.aftermarket.getQuote('AAPL');
3653
+ * console.log(`Bid ${quote.data.bidPrice} / Ask ${quote.data.askPrice}`);
3654
+ * ```
3655
+ */
3656
+ getQuote(symbol: string): Promise<APIResponse<AftermarketQuote>>;
3657
+ }
3658
+
3579
3659
  /**
3580
3660
  * Main FMP API client that provides access to all endpoints
3581
3661
  *
@@ -3627,6 +3707,7 @@ declare class FMP {
3627
3707
  readonly sec: SECEndpoints;
3628
3708
  readonly senateHouse: SenateHouseEndpoints;
3629
3709
  readonly stock: StockEndpoints;
3710
+ readonly aftermarket: AftermarketEndpoints;
3630
3711
  constructor(config?: FMPConfig);
3631
3712
  /**
3632
3713
  * Get the underlying client instance for advanced usage
@@ -3706,4 +3787,4 @@ declare class FMPError extends Error {
3706
3787
  constructor(message: string, status?: number | undefined, code?: string | undefined);
3707
3788
  }
3708
3789
 
3709
- export { APIResponse, AnalystEndpoints, AnalystEstimate, Article, AvailableCountries, AvailableExchanges, AvailableIndexesList, AvailableIndustries, AvailableSectors, BalanceSheet, BalanceSheetGrowth, BeneficialOwnershipResponse, CalendarEndpoints, CashFlowStatement, CashflowGrowth, CikMapperBySymbolResponse, CikMapperResponse, type ClassifiedError, CompanyEndpoints, CompanyNotes, CompanyProfile, CompanyRating, CompanyTranscriptData, CryptoList, DCFValuation, DEFAULT_LIMIT, DEFAULT_TIMEOUT, DividendsCalendar, ETFCountryWeighting, ETFEndpoints, ETFHolder, ETFHolding, ETFHoldingDates, ETFList, ETFProfile, ETFStockExposure, ETFWeighting, EXCHANGES, EarningsCalendar, EarningsCallTranscript, EarningsConfirmed, EarningsHistorical, EarningsSurprises, EconomicEndpoints, EconomicIndicator, EconomicsCalendar, EnterpriseValue, ExecutiveCompensation, FMP, FMPClient, FMPConfig, FMPError, FMPErrorType, FailToDeliverResponse, FinancialEndpoints, FinancialGrowth, FinancialRatios, FinancialRatiosTTM, FinancialScores, ForexList, Form13FResponse, GradesConsensus, HistoricalEmployeeCount, HistoricalPriceResponse, HistoricalSharesFloat, HouseTradingResponse, IPOCalendar, IncomeGrowth, IncomeStatement, IndustryClassification, IndustryClassificationCode, InsiderEndpoints, InsiderTradeStatisticsResponse, InsiderTradingRSSResponse, InsiderTradingSearchResponse, InsidersBySymbolResponse, InstitutionalEndpoints, InstitutionalHolderResponse, IntradayPrice, KeyMetrics, KeyMetricsTTM, ListEndpoints, MAX_LIMIT, MarketCap, MarketEndpoints, MarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundEndpoints, MutualFundHolding, News, NewsEndpoints, PERIODS, PriceTargetConsensus, PriceTargetSummary, Quote, QuoteEndpoints, RSSFeed8KItem, RSSFeedAllItem, RSSFeedItem, RSSFeedV3Item, RevenueGeographicSegmentation, RevenueProductSegmentation, SECEndpoints, SECFiling, SECTORS, Screener, ScreenerEndpoints, ScreenerParams, SearchEndpoints, SearchResult, SenateHouseEndpoints, SenateHouseTradingByNameResponse, SenateTradingResponse, SharesFloat, SplitsCalendar, StockDividendResponse, StockEndpoints, StockGrade, StockList, StockPeer, StockRealTimePrice, StockRealTimePriceFull, StockSplitResponse, TechnicalEndpoints, TechnicalIndicator, TransactionType, TransactionTypesResponse, TreasuryRate, ValuationEndpoints, classifyError, formatCurrency, formatDate, formatLargeNumber, formatPercentage, formatVolume };
3790
+ export { APIResponse, AftermarketEndpoints, AftermarketQuote, AftermarketTrade, AnalystEndpoints, AnalystEstimate, Article, AvailableCountries, AvailableExchanges, AvailableIndexesList, AvailableIndustries, AvailableSectors, BalanceSheet, BalanceSheetGrowth, BeneficialOwnershipResponse, CalendarEndpoints, CashFlowStatement, CashflowGrowth, CikMapperBySymbolResponse, CikMapperResponse, type ClassifiedError, CompanyEndpoints, CompanyNotes, CompanyProfile, CompanyRating, CompanyTranscriptData, CryptoList, DCFValuation, DEFAULT_LIMIT, DEFAULT_TIMEOUT, DividendsCalendar, ETFCountryWeighting, ETFEndpoints, ETFHolder, ETFHolding, ETFHoldingDates, ETFList, ETFProfile, ETFStockExposure, ETFWeighting, EXCHANGES, EarningsCalendar, EarningsCallTranscript, EarningsConfirmed, EarningsHistorical, EarningsSurprises, EconomicEndpoints, EconomicIndicator, EconomicsCalendar, EnterpriseValue, ExchangeMarketHours, ExecutiveCompensation, FMP, FMPClient, FMPConfig, FMPError, FMPErrorType, FailToDeliverResponse, FinancialEndpoints, FinancialGrowth, FinancialRatios, FinancialRatiosTTM, FinancialScores, ForexList, Form13FResponse, GradesConsensus, HistoricalEmployeeCount, HistoricalPriceResponse, HistoricalSharesFloat, HouseTradingResponse, IPOCalendar, IncomeGrowth, IncomeStatement, IndustryClassification, IndustryClassificationCode, IndustryPESnapshot, InsiderEndpoints, InsiderTradeStatisticsResponse, InsiderTradingRSSResponse, InsiderTradingSearchResponse, InsidersBySymbolResponse, InstitutionalEndpoints, InstitutionalHolderResponse, IntradayPrice, KeyMetrics, KeyMetricsTTM, ListEndpoints, MAX_LIMIT, MarketCap, MarketEndpoints, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundEndpoints, MutualFundHolding, News, NewsEndpoints, PERIODS, PriceTargetConsensus, PriceTargetSummary, Quote, QuoteEndpoints, QuoteShort, RSSFeed8KItem, RSSFeedAllItem, RSSFeedItem, RSSFeedV3Item, RevenueGeographicSegmentation, RevenueProductSegmentation, SECEndpoints, SECFiling, SECTORS, Screener, ScreenerEndpoints, ScreenerParams, SearchEndpoints, SearchResult, SenateHouseEndpoints, SenateHouseTradingByNameResponse, SenateTradingResponse, SharesFloat, SplitsCalendar, StockDividendResponse, StockEndpoints, StockGrade, StockList, StockPeer, StockPriceChange, StockRealTimePrice, StockRealTimePriceFull, StockSplitResponse, TechnicalEndpoints, TechnicalIndicator, TransactionType, TransactionTypesResponse, TreasuryRate, ValuationEndpoints, classifyError, formatCurrency, formatDate, formatLargeNumber, formatPercentage, formatVolume };