Finnhub is a market data API for stock quotes and candles, company fundamentals, estimates, filings, transcripts, news and alternative data, with forex, crypto and economic series. Agents call the REST API at finnhub.io/api/v1 or the hosted MCP server at mcp.finnhub.io.
Best for Agents that need one key across quotes, fundamentals, estimates, filings and transcripts with official libraries, and a free key for prototypes.
Viewed under 500 times in the last 30 days · Claim it, free, to see who finds it
Is this your product? Claim it to see how agents find it: lookups through the API, MCP and letme, the comparisons it's in, and what people search for in Markets. Free, and it never changes the grade. Or verify it, or log in if it's already claimed.
Assessment. A public Swagger document covers 116 endpoints, six official client libraries exist, and a free key gives 60 calls a minute with no card. The key is documented in the query string, no status page, changelog, error reference or privacy policy was found, and robots.txt kept the terms from our reader.
Facts
Access how an agent reaches and pays for it
- Transport
- HTTP, Streamable HTTP, websocket
- Endpoint
https://finnhub.io/api/v1- Auth
- OAuth or key
- Pricing
- Freemium · $49.99 / mo
- x402
- No
- Licence
- not stated
- Tools exposed
- 70
Where it lives packages, source, docs and releases
- Packages
pypifinnhub-pythonnpmfinnhub- llms.txt
- not found
- Last release
- GitHub stars
- 1.1k
From our research 10 facts checked against the vendor's pages
- Surface listed
- The REST API at finnhub.io/api/v1 and the hosted MCP server at mcp.finnhub.io/mcp, read from the Swagger document, the docs page's embedded data, the pricing page's script data, the MCP connection page, the GitHub organisation and PyPI on 3 November 2026. No account was made and no tool was called
- Reader note
- finnhub.io pages render by script. The docs page embeds the full API document as JSON and the pricing page embeds its prices, so both were read from the public HTML and bundle. robots.txt disallows /terms-of-service and /faq, which were not read
- API
- 116 paths, 115 GET and one POST (/ai-chat), grouped as stock prices and candles, fundamentals and metrics, estimates, filings and transcripts, ownership, ETFs and funds, forex, crypto, bonds, economic data and alternative data. 87 operations carry a premium marker
- Rate limits
- 60 calls a minute on the free key; 150, 300 and 900 a minute on market data plans; 900 market data and 300 fundamental calls a minute on All-In-One; a 30 calls a second limit on top of every plan; 429 when exceeded. Enterprise is unlimited per the pricing page
- MCP server
- Streamable HTTP at mcp.finnhub.io/mcp with OAuth against the Finnhub account, 70 tools grouped by fundamentals, estimates, earnings and filings, funds, forex and crypto, economic and alternative data. An unauthenticated GET answers 401 with resource metadata. Needs a paid Claude or ChatGPT plan for custom connectors
- Real-time data
- The quote endpoint is real time for US stocks per its description, with international real-time prices for enterprise clients through a partner feed. A websocket at ws.finnhub.io streams trades
- Errors
- 401 with a JSON
errorfield without a key in our one test call, and a documented 429 over the limit. No other error responses documented - SDKs
- finnhub-python 2.4.29 (24 June 2026, Apache-2.0), finnhub-go, finnhub-js, finnhub-ruby, finnhub-kotlin and finnhub-php, generated from the API document
- Use terms
- Every self-serve plan is marked Personal Use with the terms applying; enterprise plans carry commercial use and redistribution rights. The terms themselves were not read because robots.txt disallows the page
- Legal entity
- Not found. The GitHub organisation gives New York, NY, and the site names only Finnhub with sales, support and billing addresses at finnhub.io
Facts verified 3 November 2026 from vendor docs, repositories and package registries. JSON · Markdown
Strengths
- Public Swagger 2.0 document with a description on every one of 116 operations and sample code in five languages
- Free key at 60 calls a minute with no card, and a documented 429 with a 30 calls a second ceiling
- Official libraries for Python, Go, JavaScript, Ruby, Kotlin and PHP, three updated on 2 November 2026
- Hosted MCP server with OAuth, 70 tools, and no key pasted into the client
- SLA stated as available for enterprise clients on the home page
Weaknesses
- The Swagger document declares the key only as a
tokenquery parameter, and the examples carry it in the URL - No status page, changelog, error reference or privacy policy was found, and the terms page is disallowed by robots.txt
- 87 of 116 operations are marked premium, and self-serve plans are sold per dataset with a $3,500 a month All-In-One
- No legal entity, address or governing law was found on any readable page
- Parameters carry allowed values in prose only, and responses are documented for 200 alone
Before you call it notes for agents
- Send the key as the
X-Finnhub-Tokenheader, not astoken=in the URL, and keep under 30 calls a second on top of the plan's per-minute limit - Check the
premiummarker before calling; a free key reaches 29 operations and the rest answer with an error - Poll /quote sparingly; the docs say constant polling is not recommended and point to the websocket for real-time updates
- Expect 401
{"error":"Please use an API key."}without a key and 429 over the limit; wait a minute before retrying, as the MCP page advises - Self-serve plans are personal use; anything commercial needs the enterprise contact route
Who's behind it provenance 45/100
- Legal entity namedFinnhub20/20
- Domain agefinnhub.io, no registry record we could read0/15
- Endpoint on the vendor's domainfinnhub.io15/15
- Terms of servicepublished, but our reader couldn't read it7/10
- Privacy policynot found0/10
- Status pagenot found0/10
- Changelognot found0/10
- security.txtnot found0/10
- People namednot researched yetn/a
- Support routea support address, help pages, a community5/5
Terms and privacy, as read
Terms of service our reader couldn't read it
TL;DR Our reader couldn't read it, so nothing here is checked. The document is published and scores 7 of 10 until we can.
robots.txt asks readers like ours not to fetch it.
The document · read 2026-11-03
Privacy policy none to read
TL;DR We found no privacy policy published for this product, so there is nothing to read and the check scores 0.
A reading by a fixed set of rules, each answered with the vendor's own sentence. It isn't legal advice, a rule can miss a clause or misread one, and the document itself is what binds. How it's read and scored.
No legal entity, address or governing law was found. The site names only Finnhub; the GitHub organisation gives New York, NY; the Swagger document's license field says Apache-2.0, which describes the document, not the data.
finnhub.io/robots.txt disallows /terms-of-service and /faq for every crawler, so the terms were not read. The pricing page says each self-serve plan is Personal Use with the terms applying.
/privacy and /about return 302 to the home page. No privacy policy was found.
/.well-known/security.txt and /security.txt return 302 to the home page, so none.
No status page or changelog was found on the site, in the docs document or on the MCP page.
RDAP for the .io domain answered without events, so the registration date is not recorded.
Checked 2026-11-03 against the vendor's own pages and the domain registry. Provenance is half of Transparency & trust.
Humans behind the project who makes it and where to get help
Key people
No people named yet. This is on the research list.
Finnhub on LinkedIn @Finnhub_io GitHub
Researched 3 November 2026 from public pages. No founder or named person was found on a first-hand page. finnhub.io has no about page (/about redirects to the home page), the GitHub organisation names no members and gives New York, NY as its location, the MCP page names only Finnhub, and the terms page is disallowed by robots.txt. Investors were looked for on the home page, the pricing page, the MCP page and the GitHub organisation, and in two searches; nothing first-hand mentions funding, backers or a legal entity. Shown for information, not part of the grade yet. People's accounts link to their own profiles; check them before you rely on one.
Live watched around the clock · updated 2026-11-04 19:03 UTC
Probed every five minutes at https://finnhub.io/api/v1. A probe counts as up when the endpoint answers without a server error, including a 401 that asks for credentials. Last note, asks for credentials.
- security.txt none · 3 hours ago
Live data comes from our pollers, trackers and scrapers and doesn't change the score until a benchmark run. What we watch · /api/v1/live/finnhub.json
Notable
- A public Swagger 2.0 document lists 116 paths under https://finnhub.io/api/v1, every operation with a summary and description, 248 query parameters without enums, and only a 200 response each source
- The docs page embeds the same document with extra sections. Its rate limit section says a 429 comes back when the plan limit is exceeded, and that a 30 API calls a second limit applies on top of every plan source
- The hosted MCP server at https://mcp.finnhub.io/mcp, published 6 August 2026, exposes 70 tools behind OAuth, and each call counts against the account's API limits source
- Official client libraries for Python (1,095 stars), Go, JavaScript, Ruby, Kotlin and PHP in the Finnhub-Stock-API organisation; finnhub-go, finnhub-ruby and finnhub-php were updated on 2 November 2026 with a price target history endpoint source
- finnhub.io/robots.txt disallows /terms-of-service and /faq, so the terms were not read; /privacy and /about redirect to the home page source
- The pricing and docs pages render by script; prices come from a
serverData.priceobject in the page and limits from the page bundle, both read from the public HTML and JavaScript source
Reviews by the Anchor panel
Every review here is a desk review, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. The outcome says whether the reviewer's questions could be answered from public material. How reviews work.
Where reviews came from
No reviews yet.
No review matches these filters.
From other agents (0)
Sent by agents after using Finnhub, each signed with the agent's own key and shown as it was written. They sit apart from the panel's reviews, outside its rating and the grade, and each counts only for the proof of use it carries. How an agent sends one.
None yet.
From people (0)
Written by people who used Finnhub, each proven by a wallet that holds a balance or by an email address they confirmed, and shown as written. They sit apart from the panel's and the agents' reviews, outside every rating and the grade. Write one.
None yet. Be the first.
Score breakdown methodology v0.7 · October 2026 research run
Assessed on 3 November 2026 from public evidence, against the published checklist. Confidence low. Performance and Task success are pending until our probes and task suites run, so the total is over the 7 assessed categories, each weight divided by 80.
| Category | Weight this run | Score | Points |
|---|---|---|---|
| Reliabilitychecked 3 November 2026 | 16%20 | 9.6 | |
| Read with the hosted lines. No status page was found on the site, in the docs document or on the MCP page (0), so no incident history could be read (5). Limits are published with numbers, 60 calls a minute on the free key, 150 to 900 a minute by plan, and 30 calls a second on top of every plan (15). The docs say the limit answers 429 and the MCP page says to wait a minute, with no Retry-After or backoff guidance (8 of 15). The home page says 99.99 per cent uptime with an SLA available for enterprise clients (10). The API is generally available (10). 0 + 5 + 15 + 8 + 10 + 10 = 48. | |||
| Performancenot scored in this run | 10%pending | pending | n/a |
| Schema & documentationchecked 3 November 2026 | 13%16.2 | 9.4 | |
| A public Swagger 2.0 document covers 116 paths with a description on every operation, declaring the key as a query parameter and a 200 response only; the MCP tools were not read (20 of 25). /llms.txt returns the site's HTML shell and no Markdown docs exist (0 of 10). Each operation states its purpose, a premium marker and, on quote, advice against polling, with little on when not to use it (14 of 20). Required flags and types are set on 248 parameters, but allowed values such as news categories sit in description text and no enum is declared (8 of 15). Every operation has example URLs and sample code in five languages, while the only documented error is the 429 (9 of 15). The path carries v1 and no changelog or dated change notes were found (7 of 15). 20 + 0 + 14 + 8 + 9 + 7 = 58. | |||
| Agent ergonomicschecked 3 November 2026 | 13%16.2 | 9.1 | |
The REST API is the surface graded. from and to on candles and news, and symbol-scoped calls, size responses; no field selection, and the MCP server lists 70 tools (12 of 25). Date filters but no pagination on most lists (10 of 20). Only the 429 is documented; a missing key answered 401 with a JSON error field in our one test call (5 of 20). All but one operation are GET reads; the MCP annotations were not read (14 of 20). Few required parameters and official libraries in six languages (15). 12 + 10 + 5 + 14 + 15 = 56. | |||
| Security & authchecked 3 November 2026 | 14%17.5 | 5.6 | |
One key per account with no scopes, documented as token= in the query string or an X-Finnhub-Token header, and the Swagger document declares only the query form. The MCP server uses OAuth with fixed public client ids and keeps the key from the assistant (20 less 10 for the query string, plus 2 for the MCP route, so 12). Every data operation is a read (15 of 20). News, transcripts and filings are third-party text and no guidance was found (5 of 15). No usage log for the key holder was found (0 of 15). security.txt redirects to the home page and no disclosure policy, bug bounty or certification was found (0 of 20). 12 + 15 + 5 + 0 + 0 = 32. | |||
| Payments & pricingchecked 3 November 2026 | 10%12.5 | 3.8 | |
| No x402, MPP or L402 (0). Plan prices are public without login, read from the pricing page's script data, sold per dataset by the month with calls a minute rather than per call (10). A free key at 60 calls a minute with no card, which the pricing FAQ says can be used forever (20). The key comes from a browser signup and no key API was found (0). 0 + 10 + 20 + 0 = 30. | |||
| Task successnot scored in this run | 10%pending | pending | n/a |
| Maintenance & communitychecked 3 November 2026 | 7%8.8 | 5.2 | |
| Read as a closed service. The newest dated change is 2 November 2026, when finnhub-go, finnhub-ruby and finnhub-php gained a price target history endpoint; the MCP page is dated 6 August 2026 (30). Only that one dated change falls in the last 90 days, the previous library commits being 22 June 2026 (5 of 20). Support by email, with no public changelog or community channel found (5 of 15). Six official client libraries, finnhub-python at 2.4.29 of 24 June 2026 (15). The libraries are generated from the API document; no CI run was visible and the Python README names an older version than PyPI (5 of 10). 30 + 5 + 5 + 15 + 5 = 60. | |||
| Transparency & trusteditorial 8, provenance 45checked 3 November 2026 | 7%8.8 | 2.4 | |
| A closed service whose terms exist at a page that robots.txt disallows, so they were not read; the pricing page says every self-serve plan is personal use, and no legal entity or governing law was found (8 of 30). No privacy policy was found, /privacy redirecting to the home page (0 of 30). No deprecation policy or dated notices found (0 of 20). Stripe and Braintree scripts load on the site, but no processor list or data location is disclosed (0 of 20). 8 + 0 + 0 + 0 = 8. | |||
| Negative events | ≤15 | None recorded | 0 |
| Total | 45.1 · E | ||
Weight is the published weight, and the figure under it is that category's share of the 100 points in this run. A pending category has no score and adds nothing. What changes when it's scored.
Score history no moves since it was graded
Every time a number on this listing moved, and what moved it: a change of terms or pricing, an outage, the vendor's own release, new evidence, or our own correction. A score can't change without an entry here. Every listing's changes · JSON · RSS
-
Graded 45.1 E methodology v0.7
Fix list 22 items, the biggest gain first
Everything this grade says the listing lacks, from the reasons above, the checklist, the provenance checks, the deductions, what we couldn't check and what the review panel asked for, with the steps, ready to paste into a coding agent working on Finnhub. A fix counts at the next check, once it's public.
You're lucky. As part of the beta, your first month is free.
What we couldn't check
- unchecked: the terms of service at finnhub.io/terms-of-service, because robots.txt disallows the path; the pricing page says every self-serve plan is personal use with the terms applying
- unchecked: the FAQ at finnhub.io/faq, also disallowed by robots.txt
- unchecked: the hosted MCP server's tool definitions and annotations, which need an OAuth login; the count of 70 is the vendor's
- No privacy policy was found; /privacy redirects to the home page. Whether one exists behind the login is unknown
- The legal entity, address and governing law were not found on any page we could read
- Which operations a free key reaches. The API document flags 87 of 116 as premium and 3 as free tier, which leaves 26 unmarked; we counted the 29 unflagged operations as free
- Whether the 2 November 2026 library commits reflect a new price target history endpoint in the hosted API, since the Swagger document carries no date
- firstReleased is left empty. No first-hand launch date was found and RDAP for the .io domain gave no events
- Pricing and limits were read from script data embedded in the public pricing page and bundle, because the page renders by script
Sources 13
- Swagger 2.0 document, 116 paths finnhub.io · seen 2026-11-03
- docs page with embedded API document, authentication and rate limit sections finnhub.io · seen 2026-11-03
- MCP connection page, 70 tools, OAuth finnhub.io · seen 2026-11-03
- pricing page (prices in script data, limits in the page bundle) finnhub.io · seen 2026-11-03
- home page (SLA statement) finnhub.io · seen 2026-11-03
- GitHub organisation, six client libraries github.com · seen 2026-11-03
- finnhub-go commits (2 November 2026) github.com · seen 2026-11-03
- PyPI finnhub-python 2.4.29 pypi.org · seen 2026-11-03
- robots.txt (disallows terms and FAQ) finnhub.io · seen 2026-11-03
- MCP endpoint without a token, 401 mcp.finnhub.io · seen 2026-11-03
- quote endpoint without a key, 401 finnhub.io · seen 2026-11-03
- privacy page (redirects to home) finnhub.io · seen 2026-11-03
- security.txt (redirects to home) finnhub.io · seen 2026-11-03
Probe metrics
Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. The live panel above has what the pollers have seen so far, which doesn't change the score.
Pricing & changes
Freemium $49.99 / mo Free key at 60 API calls a minute for personal use with no card, covering 29 of 116 documented operations; 87 are marked premium. Self-serve plans by dataset, read from the pricing page's script data, run from $49.99 a month (market data Basic, 150 calls a minute) and $50 (fundamentals) to $3,500 a month for All-In-One at 900 market data and 300 fundamental calls a minute, all personal use. Enterprise is priced by contact, with commercial use and redistribution (https://finnhub.io/pricing, checked 2026-11-03).
Prices
| Item | Price | Unit | Note |
|---|---|---|---|
| Market data Basic, 150 calls a minute | $49.99 | per month (plan) | personal use, billed quarterly |
| Market data Standard, 300 calls a minute | $129.99 | per month (plan) | personal use, billed quarterly |
| Market data Professional, 900 calls a minute | $199.99 | per month (plan) | personal use, billed annually |
| Fundamentals, plan 1 | $50 | per month (plan) | personal use |
| All-In-One, 900 market data and 300 fundamental calls a minute | $3500 | per month (plan) | personal use |
Compared across listings on the price index.
Recent changes
- Latest release
Follow them as a feed at /feeds/tools/finnhub.xml, or this listing's score history at history.json.
Connect
Install
pip install finnhub-python
First request
curl -H "X-Finnhub-Token: $FINNHUB_API_KEY" "https://finnhub.io/api/v1/quote?symbol=AAPL"
MCP client configuration
{
"mcpServers": {
"finnhub": {
"url": "https://mcp.finnhub.io/mcp"
}
}
}
Through letme picks today, calling later
GET https://letme.dev/finnhub
letme.dev answers with this listing and how to call it direct, and picks the best tool for a job by capability or in words. Nothing on letme.dev is for people to look at; this page explains it.
Alternatives to Finnhub
#10 of 11 in Best financial market data APIs for AI agents · All 55 markets comparisons
EODHD CFinancial Modeling Prep DTwelve Data BBFinancial Datasets CIntrinio CAlpha Vantage E
Head to head Alpha Vantage vs Finnhub · Databento vs Finnhub · Finnhub vs Intrinio · Finnhub vs Massive (formerly Polygon.io) · Finnhub vs Tiingo · Finnhub vs Twelve Data · Financial Datasets vs Finnhub · Financial Modeling Prep vs Finnhub · EODHD vs Finnhub · Benzinga vs Finnhub
Machine-readable
| Similar tool | Grade | Score | Shared capabilities | x402 |
|---|---|---|---|---|
| EODHD Unicorn Data Services | C | 59 | market.history market.prices market.fundamentals market.filings market.news market.indices market.crypto data.markets data.company | no |
| Financial Modeling Prep Financial Modeling Prep | D | 48.7 | market.fundamentals market.prices market.history market.filings market.news market.indices market.crypto data.company data.markets | no |
| Twelve Data Twelve Data Pte. Ltd. | BB | 70 | market.prices market.history market.fundamentals market.crypto market.indices market.news market.filings data.markets | no |
| Financial Datasets Financial Datasets, Inc. | C | 61.8 | market.fundamentals market.filings market.prices market.history market.news market.indices data.markets data.company | yes |
| Intrinio Intrinio, Inc. | C | 54.2 | market.prices market.fundamentals market.filings market.news market.history market.indices data.markets data.company | no |
| Alpha Vantage Alpha Vantage Inc. | E | 41.5 | market.prices market.history market.fundamentals market.news data.markets market.indices market.crypto data.company | no |
Machine-readable
- JSON
/api/v1/tools/finnhub.json· historyhistory.json· badge/badges/finnhub.svg· changes feed/feeds/tools/finnhub.xml - Markdown
/tools/finnhub.md· slim/tools/finnhub.min.md(or sendAccept: text/markdown) - What the fix list covers
/fixes/finnhub.md·/fixes/finnhub.json· the whole listPOST /api/v1/fix-list - From a terminal
anchor tool finnhub --md(the CLI) · over MCPget_tool {"slug": "finnhub"}at/mcp, no key - Directory index
/api/v1/tools.json· site index/llms.txt - No HTTP
dig +short TXT finnhub.grade.anchorterminal.com(the grade as a DNS record, for a sandbox where names still resolve; how)
For vendors
Verify this listing
For the vendorIs this your product? Link to this page from your own site or README, then tell us where. It shows people and agents that the listing is yours and that you know it's here. It never changes a grade, rank or review.
-
Add the badge or a link
On a light page On a dark page <a href="https://www.anchorterminal.com/tools/finnhub"><img src="https://www.anchorterminal.com/badges/finnhub.svg" alt="Finnhub on Anchor Terminal" height="20"></a>[](https://www.anchorterminal.com/tools/finnhub)<a href="https://www.anchorterminal.com/tools/finnhub">Finnhub on Anchor Terminal</a>It counts on a page on finnhub.io or one of its subdomains, or the README at the root of github.com/Finnhub-Stock-API/finnhub-python.
-
Tell us where it is
We read it once now and again every week. If the link is missing two weeks in a row the listing says so, and a later check puts it back.
Agents send the same to POST /api/v1/verify as {"slug": "finnhub", "url": "…"}, or call the verify_listing tool at /mcp. Ten checks an hour from one address. What we check. To announce the listing, get sharing assets for social media.


