3spread

The standardized, free alternative to sec-api.io

sec-api.io is a broad, mature SEC filings API, and it is good at what it does: it converts filings to JSON and hands them over. 3spread takes that data and makes it ready for your model to ingest.

They give you the filing as filed, raw and unprocessed. 3spread gives you institutional-grade fundamental data: standardized and comparable schemas across every filer, amendments linked, restatements preserved, every row scored. The gap between those two is about six months of your engineering time, and it is the difference between a backtest that holds up and one that does not.

Everything below about sec-api.io is taken from their public pricing page, checked on July 14, 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 sec-api.io does well

  • ·Coverage breadth: all 400+ form types, back to 1993
  • ·Full-text search across filings and exhibits, which 3spread does not offer

Side by side

sec-api.io3spread
What you receiveThe filing as filed, converted to JSON. Raw and unprocessed. Normalizing it across filers is your jobStandardized, comparable schemas per dataset, ready to model on
AmendmentsAn amendment is just another filing. Linking it to what it amends is your jobLinked to the original, explicitly where the SEC provides a pointer and by per-form clustering where it does not. Never guessed
RestatementsA restatement is just another filingOriginal figures preserved alongside the restatement, so a backtest sees what was known at the time instead of a number that leaks the future
Data qualityYou get what was filed. Whether it is right is your problemEvery item is assessed, validated, and labeled based on a mixture of internal and public QA processes
Free tier100 API calls, one timeHighly permissive free access: 10,000 requests/day (600/minute), every dataset
Entry paid plan$49/month billed annually ($55 monthly)Professional at $19/month; Startup and Business licenses for commercial use
CoverageAll 400+ form types, back to 199311 filing families, deeply standardized, back to 2012
Financial statementsThe filing's own XBRL, as filedStandardized statements, metrics and ratios, sector-classified, quality-scored, and traceable to the filing behind every number.
Factor libraryNot their product60+ point-in-time factors and composite scores, including Altman Z, Piotroski F and Beneish M, sector-aware, NULL-faithful, and percentile-ranked.

What we do not have

Better you know now than after you have integrated.

  • ·Full-text search across filings and exhibits

Choose sec-api.io if

  • You need history before 2021, or form types outside our eleven families, and cannot wait for the roadmap to reach them
  • You need full-text search across filings and exhibits
  • You want the filing exactly as filed, raw, and would rather do the normalization yourself

Choose 3spread if

  • You are going to build or backtest on this, which means you need amendments linked and restatements preserved, not just a pile of filings
  • You would rather spend your time on research and analysis than on building data processing pipelines
  • You are an individual and would rather not pay $49/month to find out whether the data suits you
  • You want real throughput while you develop, not a 100-call trial