3spread

The fundamental data alternative to Finnhub

Finnhub is a developer favorite for good reason: a generous free tier and a broad sweep of market data, news, and estimates in one API. Fundamentals are one item on that long menu. At 3spread, fundamentals are the specialty.

Finnhub gives you a taste of everything. 3spread gives you fundamental data in full depth: every statement standardized and quality-scored, every filing family parsed to its detail, amendments and restatements handled. A highly permissive free tier, and competitive licensing for businesses.

Everything below about Finnhub is taken from their public pricing page, checked on July 17, 2026. Prices change. If we have something wrong, tell us and we will fix it.

What we mean by standardized

This is the whole product. Anyone can hand you a filing as JSON. The work is making thousands of filers, filing the same form thousands of different ways, across years of changing SEC specifications, come out the other side as standardized schemas you can actually run a regression on.

Standardized, comparable schemas across every filer

Different filers label, nest and format the same fact differently. 3spread maps them into standardized, comparable schemas per dataset, so a cross-sectional comparison is a query rather than a cleanup project. The alternative is you writing that mapping, per filer, always.

Amendment-aware, and 3spread refuses to guess

An amendment that is not linked to the record it amends is a double count sitting in your backtest. We link them: following the SEC's prior-accession pointer where one exists, and clustering on a per-form key where it does not. When the match is ambiguous, 3spread leaves it unlinked rather than guess, because a wrong link is worse than a missing one. Links run both ways, so you can go from an amendment to its original, or from an original to everything that amended it.

Restatements do not overwrite history

When a company restates a period, the original figures still exist at 3spread, because a backtest has to see the data as it was known at the time. Overwrite the original with the restatement and you have quietly introduced look-ahead bias into every model built on it. Each filing's view of a period is kept as its own record.

Every number is scored, and the score ships with it

3spread checks statements against the filer's own arithmetic (do their subtotals actually foot, through their own calculation linkbase) and against real accounting identities: the balance sheet equation, the cash bridge, pretax minus tax, and others. The resulting quality score travels with the data instead of living in a slide deck. We do not hide the rows that score badly, we label them, so you can decide.

A bank is not a software company

Forcing every filer into one generic template is how you get comparisons that are technically valid and practically meaningless. 3spread keeps separate canonical grids per sector family, banks, insurers, REITs, energy, utilities, healthcare and more, so the line items you compare are the ones that actually correspond.

The edge cases are the job

A Form 144 with multiple lots. A Reg A offering with co-issuers. A Schedule 13 that was HTML before 2025 and XML after. CIKs that arrive zero-padded from one source and unpadded from another, so one filer looks like two. There are thousands of these, and 3spread handles them, because getting them wrong is how a dataset silently lies to you.

The SEC's specs move. 3spread absorbs it

Taxonomies change year to year, form specifications get rewritten, and formats change underneath you. Parse it yourself and your parser breaks when they do. We read concepts by identity rather than by taxonomy version, route each form family through the parser its era requires, and present one stable shape to you. Where a variant genuinely is not supported yet, it fails loudly and stays queued rather than being quietly mis-parsed into your data.

And 3spread does it free, at real volume

600 requests a minute on the free tier, every dataset, no credit card. That is enough to pull the full insider history or every standardized statement for a basket of companies, every day, which is what individual research actually looks like. Every dataset is on every plan, so the paid tiers buy throughput, agentic tooling and commercial rights rather than access, and they are priced competitively.

Why this decides whether your backtest is real

A filing is not a fact that stays still. Companies amend, and companies restate. If your data provider quietly overwrites the original figure with the corrected one, then every row in your history is the version that exists today, not the version that existed when the trade would have happened. Your model is reading numbers nobody could have known. That is look-ahead bias, and it does not announce itself: it shows up as a strategy that backtests beautifully and dies in production.

The same goes for amendments. An amendment that is not linked to the record it amends is not a correction, it is a duplicate. Count both and you have double counted a trade, a holding, or a stake, and your signal is measuring your own bookkeeping.

3spread keeps the original alongside the restatement, so you can ask what was known as of a date rather than what turned out to be true. Amendments are linked to their originals, and where the link is ambiguous 3spread leaves it out rather than guess, because a wrong link corrupts the series quietly while a missing one is at least visible. This is what makes the difference between a backtest you can trust and one you cannot, and it carries straight into forward testing: the moment you go live, the data you get is the data as it is known right now, which is exactly the shape the historical data was in.

What Finnhub does well

  • ·A free tier at 60 calls/minute, including quotes, news and basic fundamentals
  • ·Breadth: prices, news, sentiment, estimates, calendars and alternative data alongside the fundamentals

Side by side

Finnhub3spread
Shape of the productA broad market data menu; fundamentals are one item on itFundamental data is our specialty
Free tier60 calls/minute, personal use, basic fundamentalsHighly permissive free access: 10,000 calls/day (600/minute), every dataset in full depth
Entry pricePaid plans priced per dataset; deeper financials are paidProfessional at $19/month; Startup and Business licenses for commercial use
Fundamentals depthBasic on the free tier, deeper behind paid plansStandardized statements, metrics and ratios, sector-classified, quality-scored, and traceable to the filing behind every number.
Factor libraryBasic metrics; no point-in-time factor library60+ point-in-time factors and composite scores, including Altman Z, Piotroski F and Beneish M, sector-aware, NULL-faithful, and percentile-ranked.
Amendments and restatementsNot surfaced as first-classLinked and preserved, so a backtest sees what was known at the time
Filing-native datasets (Forms 3/4/5, 13F, 13D/G, Form D, N-PORT, and more)Partial (insider transactions and some filings data)All eleven families, standardized, with the full parsed detail
Price data and newsYes, broadNo. Fundamental data is our specialty, and plenty of our users pair us with a market data feed

What we do not have

Better you know now than after you have integrated.

  • ·Price data, news, sentiment, estimates or calendars. Finnhub's breadth is real
  • ·International market coverage. 3spread is US focused at this time

Choose Finnhub if

  • You want quotes, news and a bit of everything from one key
  • You need international coverage; 3spread is US focused at this time
  • Basic fundamentals are genuinely all your project needs

Choose 3spread if

  • You have outgrown basic fundamentals and need the standardized statements, ratios and filing detail underneath
  • You need ten times the free throughput (600/min vs 60/min) to develop and backtest against
  • You need the ownership and fund datasets in full: every Form 4 transaction, every 13F row, every 13D stake, parsed
  • Your model has to survive amendments and restatements without double counting