fshy

Home / Data APIs

Finnhub

finnhub.io/pricingMarket data API (US quotes, company news, fundamentals, WebSocket)data-apis/finnhubJSONcomparereport an errorprovider JSON

Free allowance
Free plan USD 0/month: 60 API calls/minute; on top of every plan's limit, 30 API calls/second
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
emailno card, no phone
Binding limit
request-rate60 API calls per minute on the free plan; 30 API calls per second on every plan
Evidence
documented38 sources; a first-party page was read and the sentence quoted
Freshness
stale on 2026-12-04checked 2026-11-03 (live); stale on 2026-12-04
Free tierFree plan USD 0/month: 60 API calls/minute; on top of every plan's limit, 30 API calls/second
unit requests; metered on request-count; No daily cap is stated. The free column covers US data: company news for 1 year, earnings calendar for 1 month, EPS surprises for 4 quarters, and a WebSocket of 50 symbols. The Quote endpoint is marked High Usage, not Premium. Candles (OHLCV), tick data, historical NBBO, last bid-ask, splits and most estimates endpoints are marked Premium in the API documentation, so the free plan carries no historical price bars. The All-In-One plan is USD 3500/month.
Pricenone stated
Limits
  • request-rate (binding) 60 API calls per minute on the free plan source
  • request-rate (binding) 30 API calls per second on every plan source
Bulk path: filings metadata only. The filings endpoint names a Kaggle dataset, SEC Filings 1994-2020, published by Finnhub for bulk download; prices, candles and news have no bulk path.
Bindingrequest-rate 60 calls a minute is the ceiling a free key meets; the 30-per-second limit binds only bursts.
Identityemail The signup form asks for a name, an email and a password, behind a reCAPTCHA; it has no card field. Signing up confirms non-professional status, and the terms use the name and email to file a non-professional subscriber form. When the register call returns a JSON body with status 200 the signup page opens /dashboard, where the docs say the API key is found, and its script holds no email-verification step; a third-party integration guide reports an email verification link before the key is shown, and whether the dashboard withholds the key until that link is followed is unverified: behind a sign-up. A call without a key answers HTTP 401 with 'Please use an API key.'
Egressnot metered in bytes; the call rate bounds what a free key can pull
Per-object capnot applicable: one JSON response per call; the filings endpoint returns up to 250 documents per call
Interfacerest REST under https://finnhub.io/api/v1 with token=KEY in the URL or an X-Finnhub-Token header; a WebSocket stream of up to 50 symbols on the free plan.
Toolingcurl or any HTTP client; a WebSocket client for the stream
Composes withA free real-time US quote and news feed at 60 calls a minute with no historical bars; history comes from another record, such as Alpha Vantage weekly or monthly series, Twelve Data daily series or Massive Basic end-of-day bars.
ReliabilityInactive users are deleted from time to time; a deleted account needs a new signup.
NotesThe most generous call rate of the four market data records, but the free plan is a live-data plan: quotes, news, calendars and a 50-symbol stream, with candles and tick history behind Premium.
Evidence notedocumented The rate and the plan columns are documented on the pricing page and the API documentation. A keyless probe confirmed the API answers and demands a key; the 60-per-minute cut-off needs a free key to measure.
Parsed numbers
  • has-free-tier 1
Evidence 38
datesourcewhat it proved
2026-10-30finnhub.io/pricingthe free plan allows 60 API calls per minute
2026-10-30finnhub.io/pricingthe free plan is USD 0 a month and the All-In-One plan USD 3500 a month
2026-10-30finnhub.io/pricingnot published
2026-10-30finnhub.io/pricingthe free plan streams up to 50 symbols over the WebSocket
2026-10-30finnhub.io/pricingthe free plan carries 1 year of company news
2026-10-30finnhub.io/pricingthe free plan carries 1 month of the US earnings calendar
2026-10-30finnhub.io/pricingthe free plan carries 4 quarters of EPS surprises
2026-10-30finnhub.io/docs/api/rate-limitevery plan is also held to 30 API calls per second
2026-10-30finnhub.io/docs/api/rate-limita call over the limit answers HTTP 429
2026-10-30finnhub.io/docs/api/rate-limitevery call needs the key as a token parameter or an X-Finnhub-Token header
2026-10-30finnhub.io/docs/api/rate-limitstock candles (OHLCV) are a premium endpoint
2026-10-30finnhub.io/docs/api/rate-limitthe quote endpoint is marked High Usage, not Premium
2026-10-30finnhub.io/docs/api/rate-limitfilings return up to 250 documents per call and are offered for bulk download on Kaggle
2026-10-30www.kaggle.com/datasets/finnhub/sec-filingsthe Kaggle dataset is a Finnhub release of filings metadata for bulk download
2026-10-30www.kaggle.com/datasets/finnhub/sec-filingsthe bulk dataset covers SEC filings from 1994 to 2020
2026-10-30finnhub.io/static/js/webpack/dist/main.bundle.7d2d142701ec3dthe signup form has a name field; the same form has email and password fields and no card field
2026-10-30finnhub.io/static/js/webpack/dist/main.bundle.7d2d142701ec3dthe signup form has an email field
2026-10-30finnhub.io/registersigning up confirms non-professional status
2026-10-30finnhub.io/registerthe signup page sits behind a reCAPTCHA
2026-10-30finnhub.io/terms-of-servicenot published
2026-10-30finnhub.io/terms-of-servicenot published
2026-10-30finnhub.io/terms-of-servicea personal-use signup is used to file a non-professional subscriber form
2026-10-30finnhub.io/terms-of-serviceinactive accounts are deleted from time to time
2026-10-30docs.nexla.com/user-guides/connectors/finnhub_apia third-party guide reports an email verification step before the account is active
2026-10-30probe: https://finnhub.io/api/v1/quote?symbol=AAPLthe quote endpoint answered HTTP 401 to a call without a key
2026-10-30probe: https://finnhub.io/api/v1/quote?symbol=AAPLthe keyless call is refused with a request for an API key
2026-11-02finnhub.io/docs/api/rate-limita call over a plan's limit answers HTTP 429
2026-11-02github.com/finnhubio/Finnhub-API/issues/233a free-plan user's call over the limit got HTTP 429 with the text API limit reached. Please try again later.
2026-11-02github.com/Finnhub-Stock-API/finnhub-python/issues/24the official Python client reports the 429 body as a JSON error message with this text (a premium-plan key)
2026-11-02finnhub.io/pricingthe plan table gives 60 API calls a minute and names no reset instant
2026-11-02finnhub.io/static/js/webpack/dist/main.bundle.4de77626bde75aafter the register call returns a JSON body with status 200 the signup script shows Successful and sends the browser to /dashboard
2026-11-02finnhub.io/docs/api/rate-limitthe docs say the API key is found on the dashboard
2026-11-02probe: https://www.kaggle.com/api/v1/datasets/download/finnhub/sec-filingsa request with no credentials to the Kaggle API download URL was redirected to the archive zip, and a ranged read of its first 1024 bytes answered 206 with a total of 499804103 bytes
2026-11-02probe: https://www.kaggle.com/api/v1/datasets/download/finnhub/sec-filingsthe ranged read of the archive behind the keyless download link answered HTTP 206
2026-11-02github.com/Kaggle/kagglehub/blob/main/README.mdKaggle's own client documentation says authentication is needed only for public resources that require consent, and for private ones
2026-11-02finnhub.io/docs/api/rate-limitevery plan is also held to 30 API calls per second
2026-11-02finnhub.io/registersigning up confirms non-professional status
2026-11-02finnhub.io/pricingthe free plan still allows 60 API calls a minute
More fields 2
bulk pathKaggle dataset SEC Filings 1994-2020 (filings metadata only), a zip of 499804103 bytes that the Kaggle API download link serves with no Kaggle account or credentials; no bulk path for…
cutoff{"http_status": "429","body": "a JSON error message that starts: API limit reached. Please try again later. (reported by users of the free and premium plans)","reset": "unverified: behind a sign-up: no Finnhub page says whether the 60-per-minute window is fixed or sliding, or when a blocked key may call again"}
Unknown values 1
  • retention stated: the field does not apply to this kind of offer