Finnhub Stock Market Data
Pricing
from $2.00 / 1,000 data fetcheds
Finnhub Stock Market Data
Get real-time stock quotes, OHLCV candles, company profiles, earnings calendar, financial metrics & news from Finnhub API. Supports US stocks, crypto, forex. Free API key.
Pricing
from $2.00 / 1,000 data fetcheds
Rating
0.0
(0)
Developer

ryan clinton
Actor stats
0
Bookmarked
3
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Pull real-time stock quotes, historical OHLCV candles, company profiles, financial metrics, earnings calendars, company news, and symbol lookups for any publicly traded stock, cryptocurrency, or forex pair -- all powered by the Finnhub financial data API. Bring your own free Finnhub API key, select one of seven data modes, enter your ticker symbols, and get structured JSON output ready for dashboards, spreadsheets, trading models, or downstream automation on the Apify platform.
Why use Finnhub Stock Market Data?
Finnhub is one of the most comprehensive free financial data APIs available, covering US equities, international exchanges, crypto, and forex. However, integrating Finnhub into automated workflows typically requires writing custom scripts, managing authentication, handling pagination, and converting Unix timestamps. This actor eliminates that overhead entirely. You configure your symbols, pick a mode, and get clean, normalized JSON output pushed to an Apify dataset -- no code required. Schedule it to run every hour, every day, or on demand. Pipe the results into Google Sheets, Slack, Zapier, Make, or your own API. Whether you are a day trader tracking a watchlist, an analyst building valuation models, or a quant researcher collecting training data, this actor turns Finnhub into a zero-code data pipeline.
Key features
- Seven data modes in one actor -- real-time quotes, historical candles, company profiles, company news, symbol search, earnings calendar, and financial metrics, all accessible through a single input configuration.
- Multi-symbol batch processing -- pass an entire watchlist or portfolio of ticker symbols in one run. The actor loops through each symbol sequentially and pushes all results into a single dataset.
- Flexible candle resolutions -- retrieve OHLCV bars at 1-minute, 5-minute, 15-minute, 30-minute, hourly, daily, weekly, or monthly granularity for up to 365 days of history.
- Crypto and forex support -- query cryptocurrency pairs using exchange-prefixed symbols like
BINANCE:BTCUSDTorCOINBASE:BTCUSDalongside traditional stock tickers. - Clean timestamp conversion -- all Unix timestamps from the Finnhub API are automatically converted to human-readable ISO 8601 format in the output.
- Dry-run mode -- run without an API key to get a helpful setup guide. No errors, no crashes, just clear instructions on how to obtain your free key.
- Fundamental analysis metrics -- PE ratio, PB ratio, PS ratio, dividend yield, beta, 52-week high/low, market cap, and revenue per share for any listed company.
- Earnings calendar -- upcoming and past earnings dates across all companies, with EPS and revenue estimates, actuals, and surprise figures.
How to use Finnhub Stock Market Data
- Get a free Finnhub API key. Visit finnhub.io/register, create an account, and copy the API key from your dashboard. The free tier allows 60 API calls per minute, which is sufficient for most use cases.
- Open the actor in Apify Console. Go to Finnhub Stock Market Data and click "Start".
- Paste your API key. Enter your Finnhub API key into the "Finnhub API Key" field. This field is encrypted and never exposed in logs or output.
- Select a data mode. Choose one of the seven modes: Real-time Quotes, Historical Candles, Company Profiles, Company News, Symbol Search, Earnings Calendar, or Financial Metrics.
- Enter your stock symbols. Add one or more ticker symbols (e.g.,
AAPL,MSFT,TSLA). For crypto, use the exchange-prefixed format likeBINANCE:BTCUSDT. For Symbol Search mode, enter a search query instead of symbols. - Adjust optional settings. Set the candle resolution (1-minute through monthly) and the number of days to look back for historical candles, news, and earnings data (1 to 365, default 30).
- Run and export. Click Start, wait for the run to complete (usually under 30 seconds), then download results as JSON, CSV, or Excel. You can also connect the output to Zapier, Make, Google Sheets, or call the Apify API directly.
Input parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
apiKey | string (secret) | No* | -- | Your API key from finnhub.io. Running without a key produces a dry-run help message. |
mode | string (select) | No | quote | Data mode: quote, candles, profile, news, search, earnings, or metrics. |
symbols | string[] | Conditional | ["AAPL","MSFT","GOOGL"] | Ticker symbols to query. Required for quote, candles, profile, news, and metrics modes. |
searchQuery | string | Conditional | -- | Company name or keyword for symbol lookup. Required only in search mode. |
resolution | string (select) | No | D (Daily) | Time resolution for candle data: 1, 5, 15, 30, 60 (minutes), D (daily), W (weekly), M (monthly). |
daysBack | integer | No | 30 | Days of historical data for candles, news, and earnings. Range: 1 to 365. |
*While the API key is technically optional (the actor returns a helpful dry-run message without one), a key is required to fetch any real data.
Input example
{"apiKey": "YOUR_FINNHUB_API_KEY","mode": "quote","symbols": ["AAPL", "MSFT", "TSLA", "BINANCE:BTCUSDT"],"resolution": "D","daysBack": 30}
Tips for best results
- Start with quote mode to verify your API key works before moving to other data modes. The actor returns a helpful setup message if you run without a key.
- Use daily resolution candles for backtesting strategies or building charts. Switch to 1-min or 5-min resolution only when you need intraday granularity, as finer resolutions produce more data points and consume more API calls.
- Batch your symbols into a single run rather than running the actor once per ticker. The actor processes the symbols list sequentially and pushes everything into one clean dataset.
- For crypto symbols, use the exchange-prefixed format like
BINANCE:BTCUSDTorCOINBASE:BTCUSD. Regular ticker symbols likeAAPLwork for US equities. - Combine modes across runs -- use
profilemode first to map your investment universe, then schedulequoteandmetricsmodes on different cadences to keep price and fundamental data current.
Output
Output example
Quote mode (mode: "quote"):
{"symbol": "AAPL","currentPrice": 237.49,"change": 3.12,"changePercent": 1.33,"highPrice": 238.91,"lowPrice": 233.76,"openPrice": 234.55,"previousClose": 234.37,"timestamp": "2026-02-07T21:00:00.000Z","extractedAt": "2026-02-10T14:32:11.456Z"}
Candles mode (mode: "candles"):
{"symbol": "TSLA","date": "2026-02-07T05:00:00.000Z","open": 342.10,"high": 349.88,"low": 340.25,"close": 347.62,"volume": 52341890,"resolution": "D"}
Profile mode (mode: "profile"):
{"symbol": "MSFT","name": "Microsoft Corp","country": "US","currency": "USD","exchange": "NASDAQ NMS - GLOBAL MARKET","industry": "Technology","marketCap": 3145200,"shareOutstanding": 7432.48,"webUrl": "https://www.microsoft.com","logo": "https://static2.finnhub.io/file/publicdatany/finnhubimage/stock_logo/MSFT.png","ipoDate": "1986-03-13","extractedAt": "2026-02-10T14:32:11.456Z"}
Output fields
Quote mode:
| Field | Type | Description |
|---|---|---|
symbol | string | Ticker symbol |
currentPrice | number | Current trading price |
change | number | Price change from previous close |
changePercent | number | Percentage change from previous close |
highPrice | number | Day high price |
lowPrice | number | Day low price |
openPrice | number | Day opening price |
previousClose | number | Previous session closing price |
timestamp | string | Quote timestamp (ISO 8601) |
extractedAt | string | When the data was extracted (ISO 8601) |
Candles mode:
| Field | Type | Description |
|---|---|---|
symbol | string | Ticker symbol |
date | string | Candle timestamp (ISO 8601) |
open | number | Opening price |
high | number | Highest price in the period |
low | number | Lowest price in the period |
close | number | Closing price |
volume | number | Trading volume |
resolution | string | Time resolution (1, 5, 15, 30, 60, D, W, M) |
Profile mode:
| Field | Type | Description |
|---|---|---|
symbol | string | Ticker symbol |
name | string | Company name |
country | string | Country of incorporation |
currency | string | Trading currency |
exchange | string | Stock exchange name |
industry | string | Finnhub industry classification |
marketCap | number | Market capitalization in millions |
shareOutstanding | number | Shares outstanding in millions |
webUrl | string | Company website URL |
logo | string | Company logo image URL |
ipoDate | string | IPO date (YYYY-MM-DD) |
extractedAt | string | When the data was extracted (ISO 8601) |
Metrics mode:
| Field | Type | Description |
|---|---|---|
symbol | string | Ticker symbol |
peRatio | number | Price-to-earnings ratio (TTM) |
pbRatio | number | Price-to-book ratio (quarterly) |
psRatio | number | Price-to-sales ratio (TTM) |
dividendYield | number | Indicated annual dividend yield (%) |
beta | number | Stock beta (volatility relative to market) |
week52High | number | 52-week high price |
week52Low | number | 52-week low price |
marketCap | number | Market capitalization in millions |
revenuePerShare | number | Revenue per share (TTM) |
extractedAt | string | When the data was extracted (ISO 8601) |
Use cases
- Day traders and swing traders who need real-time quotes and intraday candle data piped into personal dashboards or Google Sheets for quick decision-making during market hours.
- Financial analysts building valuation models who require fundamental metrics like PE, PB, PS ratios, dividend yield, and beta for peer comparison across sectors.
- Portfolio managers tracking a basket of holdings by scheduling daily quote runs to capture price snapshots for performance attribution, risk management, and rebalancing triggers.
- Quantitative researchers collecting historical OHLCV data at various resolutions to backtest trading strategies, train machine learning models, or run statistical analyses.
- Content creators and financial bloggers who pull earnings calendar data and company news to produce timely market commentary, earnings previews, and investment newsletters.
- Business intelligence teams gathering company profiles and market cap data for competitive landscape reports, investor presentations, and sector mapping exercises.
API & Integration
You can call this actor programmatically using the Apify API. The actor ID is tsl8SzioHu42ZEK6m.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("tsl8SzioHu42ZEK6m").call(run_input={"apiKey": "YOUR_FINNHUB_API_KEY","mode": "quote","symbols": ["AAPL", "MSFT", "TSLA"],})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['symbol']}: ${item['currentPrice']} ({item['changePercent']}%)")
JavaScript
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "YOUR_APIFY_TOKEN" });const run = await client.actor("tsl8SzioHu42ZEK6m").call({apiKey: "YOUR_FINNHUB_API_KEY",mode: "candles",symbols: ["AAPL"],resolution: "D",daysBack: 90,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Retrieved ${items.length} candles`);
cURL
curl "https://api.apify.com/v2/acts/tsl8SzioHu42ZEK6m/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-d '{"apiKey": "YOUR_FINNHUB_API_KEY","mode": "metrics","symbols": ["AAPL", "GOOGL", "AMZN"]}'
Integrations
- Zapier -- trigger the actor and push stock data to Google Sheets, Slack, email, Airtable, or 5,000+ other apps using the Apify Zapier integration.
- Make (Integromat) -- build multi-step workflows that pull stock data, filter by price thresholds, and route alerts to Slack, Teams, or CRM systems.
- Google Sheets -- export results directly to a spreadsheet for charting, pivot tables, or portfolio tracking dashboards.
- Webhooks -- configure Apify webhooks to notify your own API endpoint whenever a run completes, enabling real-time data pipelines.
- Python / Jupyter -- use the
apify-clientPython package to pull datasets into pandas DataFrames for analysis, visualization, or ML model training.
How it works
Finnhub Stock Market Data=========================INPUT PROCESSING OUTPUT----- ---------- ------+------------------+ +---------------------+ +------------------+| API Key |----->| Mode Router |----->| Apify Dataset || Mode Selection | | | | (JSON/CSV/Excel) || Symbols List | | quote --> /quote | | || Resolution | | candles -> /candle | | +-- Quote data || Days Back | | profile -> /profile2| | +-- OHLCV bars || Search Query | | news --> /co-news | | +-- Profiles |+------------------+ | search --> /search | | +-- News items || earnings-> /calendar| | +-- Earnings || metrics -> /metric | | +-- Metrics |+---------------------+ +------------------+| |v v+---------------------+ +------------------+| Finnhub API v1 | | Integrations || finnhub.io/api/v1 | | Zapier, Make, || 60 calls/min (free) | | Sheets, Webhooks |+---------------------+ +------------------+
- The actor reads your input configuration and validates the selected mode.
- Based on the mode, it routes requests to the appropriate Finnhub API v1 endpoint.
- For symbol-based modes, it iterates through each ticker symbol sequentially, making one API call per symbol.
- Raw Finnhub responses are normalized: Unix timestamps are converted to ISO 8601, field names are standardized, and missing data is handled gracefully.
- All results are pushed to the Apify dataset, available for download or integration.
Performance & cost
| Scenario | Symbols | Approx. Duration | Compute Units | Apify Free Plan |
|---|---|---|---|---|
| Daily quote check (5 stocks) | 5 | ~5 seconds | ~0.001 CU | Covered |
| Weekly portfolio snapshot (20 stocks, quotes + metrics) | 20 | ~15 seconds | ~0.003 CU | Covered |
| Historical candles (10 stocks, 90 days, daily) | 10 | ~10 seconds | ~0.002 CU | Covered |
| Full research run (30 stocks, all modes) | 30 | ~45 seconds | ~0.01 CU | Covered |
| Earnings calendar (30-day window) | N/A | ~5 seconds | ~0.001 CU | Covered |
The actor uses 256 MB of memory and finishes most runs in under 30 seconds. The Apify Free plan provides $5 of free monthly compute, which is enough for thousands of stock data runs. The Finnhub free tier allows 60 API calls per minute, which comfortably supports batch queries of 50+ symbols per run.
Limitations
- Finnhub free tier rate limit -- the free plan allows 60 API calls per minute. Querying more than ~50 symbols in a single run may approach this limit depending on the mode. If you hit rate limits, split your symbols across multiple scheduled runs.
- Intraday candle history -- for sub-daily resolutions (1-min, 5-min, etc.), Finnhub's free tier may limit the lookback window to fewer days than the 365-day maximum. Daily and longer resolutions support the full range.
- Data coverage -- not all international exchanges or smaller-cap stocks have complete data for every mode. Metrics and profile data may return null fields for thinly covered securities.
- Market hours dependency -- real-time quote data reflects the most recent trading session. Outside US market hours (9:30 AM - 4:00 PM ET), quotes show the last available price. After-hours data availability depends on your Finnhub plan.
- Earnings calendar scope -- the earnings mode returns calendar data across all companies for the specified date range, not filtered by your symbols list. Use the
daysBackparameter to control the window size. - No websocket streaming -- this actor performs point-in-time API calls. It does not maintain a live websocket connection for real-time tick data. For continuous streaming, use Finnhub's websocket API directly.
Responsible use
- Respect Finnhub's terms of service. Your use of this actor is subject to Finnhub's Terms of Service. Do not redistribute raw Finnhub data commercially without appropriate licensing.
- Stay within rate limits. The free tier allows 60 API calls per minute. Design your scheduled runs and symbol lists to stay comfortably within this limit. If you need higher throughput, upgrade your Finnhub plan.
- Do not use for high-frequency trading. This actor is designed for periodic data collection, not sub-second trading decisions. There is inherent latency in HTTP API calls and Apify actor execution.
- Financial data is not financial advice. The data returned by this actor is provided as-is from Finnhub. Always verify critical data points against primary sources before making investment decisions.
FAQ
Do I need a paid Finnhub plan? No. The free Finnhub API key supports all seven modes used by this actor. The free tier allows 60 calls per minute and covers US stocks, major crypto exchanges, and basic fundamentals. Sign up at finnhub.io/register.
What happens if I run without an API key? The actor runs in dry-run mode and outputs a help message with step-by-step instructions on how to obtain a free key from finnhub.io. No errors are thrown and no API calls are made.
Which stock exchanges are supported? Finnhub covers US exchanges (NYSE, NASDAQ, AMEX), many international exchanges, crypto exchanges (Binance, Coinbase, Kraken), and forex pairs. The exact coverage depends on your Finnhub plan tier.
How far back can I get historical candle data?
The daysBack parameter supports up to 365 days. For intraday resolutions (1-min, 5-min, etc.), Finnhub's free tier may limit the available lookback window. Daily, weekly, and monthly resolutions generally support the full 365-day range.
Can I track crypto and stocks in the same run?
Yes. Mix regular ticker symbols (AAPL, MSFT) with exchange-prefixed crypto symbols (BINANCE:BTCUSDT) in the same symbols list. The actor processes them sequentially and pushes all results into one dataset.
Why do some metrics or profile fields show null? Finnhub may not have certain fundamental metrics or profile details for every company, particularly smaller-cap, international, or recently listed stocks. Null values indicate the data point is unavailable from Finnhub's data providers.
Related actors
| Actor | Description |
|---|---|
| CoinGecko Crypto Data | Cryptocurrency prices, market cap, volume, and historical data from CoinGecko covering 10,000+ coins and tokens. |
| FRED Economic Data Search | Federal Reserve economic indicators including GDP, inflation, interest rates, unemployment, and 800,000+ data series. |
| Currency Exchange Rate Tracker | Live and historical currency exchange rates for 150+ fiat currencies with daily tracking. |
| SEC EDGAR Filing Analyzer | Search and analyze SEC filings including 10-K, 10-Q, 8-K annual reports, and insider transactions. |
| Congressional Stock Trade Tracker | Monitor stock trades disclosed by US Congress members under the STOCK Act for political trading signals. |
| SEC Insider Trading | Track insider buying and selling activity from SEC Form 4 filings across all public companies. |