FMPocket 💶 is a lightweight 🪽 (34.66 kB) universal client for the Financial Modeling Prep (FMP) API 🌎, built with Typescript support and works seamlessly across Node, Deno, and Bun. Gets your financial data perfectly formatted ⭐️.
npm install fmpocket
# or
pnpm install fmpocket
# or
deno install npm:fmpocket
# ...import { FMPocket } from 'fmpocket';
const fmpocket = FMPocket({ key: process.env.API_KEY! });
let [data] = await fmpocket.quote('AAPL');
console.log(data.volume);The FMPocket constructor supports the following options.
| Option | Description | Default |
|---|---|---|
key |
Your API secret key | None (required) |
baseUrl |
The base endpoint URL | https://financialmodelingprep.com/ |
version |
The API version | stable |
validate |
Validates JSON and coerces data | true |
debug |
Logs the URL before the request | false |
timeout |
Requests timeout in milliseconds | null |
This is the list of currently supported endpoints. If yours is not in this list, please open a request.
// Single quote
let [data] = await fmpocket.quote('AAPL');
// Single short quote
let [data] = await fmpocket.shortQuote('BTCUSD');
// Aftermarket trade
let [data] = await fmpocket.aftermarketTrade('AAPL');
// Aftermarket quote
let [data] = await fmpocket.aftermarketQuote('AAPL');
// Price change
let [data] = await fmpocket.priceChange('AAPL');
// Batch quote
let data = await fmpocket.batchQuote(['AAPL', 'EURUSD', 'BTCUSD']);
// Batch short quote
let data = await fmpocket.batchShortQuote(['AAPL', 'EURUSD', 'BTCUSD']);
// Batch aftermarket trade
let data = await fmpocket.batchAftermarketTrade(['AAPL', 'MSFT']);
// Batch aftermarket quote
let data = await fmpocket.batchAftermarketQuote(['AAPL', 'MSFT']);// EOD light chart
let data = await fmpocket.lightChart({ symbol: 'AAPL', from: '2025-06-13', to: '2025-10-22' });
// EOD non adjusted chart
let data = await fmpocket.unadjustedChart({ symbol: 'AAPL', from: '2025-06-13', to: '2025-10-22' });
// EOD dividend adjusted chart
let data = await fmpocket.dividendChart({ symbol: 'AAPL', from: '2025-06-13', to: '2025-10-22' });
// EOD full chart
let data = await fmpocket.fullChart({ symbol: 'AAPL', from: '2025-06-13', to: '2025-10-22' });
// Intraday chart
let data = await fmpocket.intradayChart({ symbol: 'AAPL', from: '2025-10-10', to: '2025-10-22', interval: '1hour' });// Search by name
let data = await fmpocket.search({ query: 'AAPL' });
// Search by symbol (exchange and limit are optional)
let data = await fmpocket.search({ query: 'AP', by: 'symbol', exchange: 'NASDAQ', limit: 10 });// Company profile (by symbol)
let [data] = await fmpocket.companyProfile({ symbol: 'AAPL' });
// Company profile (by CIK)
let [data] = await fmpocket.companyProfile({ cik: '0000320193' });
// Employee count
let [data] = await fmpocket.employeeCount('AAPL');
// Historical employee count
let [data] = await fmpocket.employeeHistoryCount('AAPL');
// Market capitalization
let [data] = await fmpocket.marketCap('AAPL');
// Batch market capitalization
let data = await fmpocket.batchMarketCap('AAPL');// Income statement
let [data] = await fmpocket.income({ symbol: 'POW.TO', period: 'Q3' });
// Balance sheet statement
let [data] = await fmpocket.balanceSheet({ symbol: 'POW.TO', period: 'Q3' });
// Cash flow statement
let [data] = await fmpocket.cashFlow({ symbol: 'POW.TO', period: 'Q3' });
// Latest statements
let data = await fmpocket.latest({ page: 2, limit: 10 });
// Key metrics
let [data] = await fmpocket.keyMetrics({ symbol: 'POW.TO', period: 'Q3' });
// Financial ratios
let [data] = await fmpocket.ratios({ symbol: 'POW.TO', period: 'Q3' });// Simple moving average
let data = await fmpocket.sma({ symbol: 'AAPL', periodLength: 20, timeframe: '1min' });
// Exponential moving average
let data = await fmpocket.ema({ symbol: 'AAPL', periodLength: 20, timeframe: '1min' });
// Weighted moving average
let data = await fmpocket.wma({ symbol: 'AAPL', periodLength: 20, timeframe: '1min' });
// Double exponential moving average
let data = await fmpocket.dema({ symbol: 'AAPL', periodLength: 20, timeframe: '1min' });
// Triple exponential moving average
let data = await fmpocket.tema({ symbol: 'AAPL', periodLength: 20, timeframe: '1min' });
// Relative strength index
let data = await fmpocket.rsi({ symbol: 'AAPL', periodLength: 20, timeframe: '1min' });
// Standard deviation
let data = await fmpocket.std({ symbol: 'AAPL', periodLength: 20, timeframe: '1min' });
// Williams
let data = await fmpocket.williams({ symbol: 'AAPL', periodLength: 20, timeframe: '1min' });
// Average directional index
let data = await fmpocket.adx({ symbol: 'AAPL', periodLength: 20, timeframe: '1min' });// List stocks
let data = await fmpocket.listStock();
// List cryptocurrencies
let data = await fmpocket.listCrypto();
// List forex
let data = await fmpocket.listForex();
// List commodities
let data = await fmpocket.listCommodities();// Market hours
let [data] = await fmpocket.marketHours('NASDAQ');
// Holidays
let data = await fmpocket.holidays('NASDAQ');// Any unsupported endpoint
let [data] = await fmpocket.any('/unsupported-endpoint', null, { foo: 'bar' });This method allows you to use fmpocket even for unsupported endpoints if an API update occurs. You can also provide a schema to validate the output.