# Free stock market data, and where the free layer stops

The genuinely free financial data is published by regulators and central banks, not vendors. What that covers, and the first thing you have to pay for.

*https://stockmarketstack.com/guides/free-financial-data-sources · background to Stock Market Data APIs*

**Answer:** Most genuinely free financial data is published because a regulator or a central bank was required to publish it, not because a company is being generous, which is why it does not disappear. SEC EDGAR gives structured fundamentals with no key at all, FRED gives macro, GLEIF gives entity identifiers. What the free layer is missing it is missing for one reason. Somebody has to turn a public record into a comparable series, and that is what you pay for.

## How it works

The free layer of financial data is not a marketing tier somebody may withdraw next quarter. Almost
all of it exists because a statute or a central bank's mandate obliged an organisation to publish,
and the publishing is a side effect of the obligation. That is why it is stable, and also why its
shape is so strange: generous exactly where a regulator wanted disclosure, empty everywhere else.

### The SEC publishes the fundamentals

`data.sec.gov` is the single most underused resource in this field. In the SEC's own words, the
[EDGAR APIs](https://www.sec.gov/search-filings/edgar-application-programming-interfaces) "do not
require any authentication or API keys to access." Four endpoints matter:

- **submissions** — an entity's filing history as metadata, including current and former names,
  exchanges and tickers.
- **companyfacts** — every XBRL fact a company has ever tagged, in one JSON file.
- **companyconcept** — one tag's full history for one company, with a separate array per unit of
  measure.
- **frames** — the cross-section. Ask for one tag, one unit and one period and it returns that
  figure for every reporting entity at once, "last filed that most closely fits the calendrical
  period requested."

That last one is a free cross-sectional fundamentals dataset taken from the filings themselves
rather than from a vendor's re-keying, and almost nobody uses it. The key everywhere is the
ten-digit CIK with leading zeros, not the ticker — ticker-to-CIK mapping is a separate published
file, and keying your store on CIK is the decision that saves you later, because symbols are reused
and CIKs are not.

Two operational rules, from the SEC's own
[webmaster FAQ](https://www.sec.gov/about/webmaster-frequently-asked-questions): the "current
maximum access rate is 10 requests per second", and you must declare a User-Agent header carrying a
name and a contact address, or requests come back as an undeclared automated tool. For volume,
don't crawl at all: `companyfacts.zip` and `submissions.zip` are recompiled nightly at around 3:00
a.m. ET, and the quarterly [Financial Statement Data
Sets](https://www.sec.gov/data-research/sec-markets-data/financial-statement-data-sets) flatten the
numeric face financials of every filing into ZIPs going back to 2009.

The same archive carries 13F institutional holdings, insider Forms 3, 4 and 5, and full-text search
across filings. Three cards are built directly on it — [SEC EDGAR MCP](https://stockmarketstack.com/tools/sec-edgar-mcp) puts
filings and XBRL financials in front of a language model, while [Quiver
Quantitative](https://stockmarketstack.com/tools/quiver-quantitative) and [Capitol Trades](https://stockmarketstack.com/tools/capitol-trades) package the
disclosure end of it.

### Central banks and agencies publish the macro

[FRED](https://stockmarketstack.com/tools/fred), from the Federal Reserve Bank of St. Louis, is the default for macro series
and needs a free key tied to a free account. Its terms of use set
no fixed numeric request cap and reserve the right to impose one; they require applications to
display the notice that the product uses the FRED API but is not endorsed or certified by the
Bank. The clause people miss is the one about third-party
series: FRED hosts data owned by others, some of it copyrighted, and the container being free does
not make every series inside it redistributable.

The ECB Data Portal serves an
[SDMX 2.1 RESTful web service](https://www.ecb.europa.eu/stats/ecb_statistics/co-operation_and_standards/sdmx/html/index.en.html)
with no registration, and the ECB's
[copyright notice](https://www.ecb.europa.eu/services/disclaimer/html/index.en.html) permits
reproduction provided the ECB is cited as the source. The US Treasury's
[FiscalData API](https://fiscaldata.treasury.gov/api-documentation/) states outright that it
requires no user account or token. The CFTC publishes the
[Commitments of Traders](https://www.cftc.gov/MarketReports/CommitmentsofTraders/index.htm)
reports weekly, free, on a published release schedule. Other central banks
and statistical agencies are worth checking one at a time, because the terms vary more than the
data does.

### Identifiers are free, but only some of them

GLEIF publishes the Legal Entity Identifier register
[under CC0 1.0 Universal](https://www.gleif.org/en/meta/lei-data-terms-of-use/), with bulk
[Golden Copy files](https://www.gleif.org/en/lei-data/gleif-golden-copy) three times a day at
02:00, 10:00 and 18:00 UTC in XML, CSV and JSON. [OpenFIGI](https://www.openfigi.com/api) maps
instruments for free, at
[25 requests a minute and 10 jobs per request](https://www.openfigi.com/api/documentation) unkeyed,
rising to 25 per six seconds and 100 jobs with a free key. What is *not* free is the identifier
your counterparty probably uses: CUSIP and ISIN are licensed, and that is where the identifier
layer stops being a public good.

### Exchanges, issuers and the community

Exchanges publish delayed quotes on their own websites, and ETF issuers publish full daily holdings
files as plain CSV — the cheapest way to see inside a fund that exists. Around all of this sits a
layer of open-source projects that repackage public sources; [OpenBB](https://stockmarketstack.com/tools/openbb) is the
broadest, and the rest are on [open source](https://stockmarketstack.com/collections/open-source). What none of them changes is
the licence on the data underneath, which is the recurring disappointment of that list.

## Where the free layer stops

Every gap below has the same shape. The public record is a record of *events* — a filing, a notice,
a rate publication. A usable dataset is a *series*, and somebody has to normalise one into the
other. That work is the product being sold.

**Corporate actions.** Splits and dividends are the reason a free price series quietly goes wrong.
Adjusted close is not a fact anybody observed; it is a computed opinion about how to fold
distributions back through history, and providers differ. The same ticker over the same dates
produces different returns depending on whose convention you took. There is no free, complete,
dated corporate-actions feed across all listed US names — actions are announced one notice at a
time by exchanges and by FINRA, and turning those notices into a clean adjustment factor per symbol
per day is a full-time job somebody is already doing for money.

**Point-in-time and restatements.** EDGAR gives you what was filed, restatements included, which is
a feature of a disclosure archive and a problem for a backtest. A strategy tested on the current
view of 2019 earnings is tested on numbers nobody had in 2019. The frames API is explicit about
this: it returns the fact *last filed* for a period, not the fact as first reported. Every fact does
carry the date of the filing it came from, so reconstructing an as-known-then view is possible —
and doing it across thousands of filers and a decade is precisely the work a fundamentals vendor
charges for.

**Real time.** Nothing here is real-time and nothing free is. Live prices are licensed by the
venues that produce them, usually per user and often per device, with professional status defined
by the exchange rather than by you. [Why real-time stock data is so
expensive](https://stockmarketstack.com/guides/real-time-market-data-fees) works through the fee schedules behind that, and
[real-time data](https://stockmarketstack.com/collections/real-time-data) narrows the catalogue to the cards serving a live
feed.

**Index membership.** Which companies were in an index on a date is licensed intellectual property,
not a public record, and historical membership is the expensive half — [historical constituents and
survivorship bias](https://stockmarketstack.com/guides/historical-index-constituents) is the long version. This is also the
quiet reason free backtests flatter: a universe built from tickers that exist today excludes
everything that went bankrupt, merged or was delisted.

**Non-US coverage.** The most important limitation on this page, and the one least often stated.
The free layer is overwhelmingly American because the SEC requires machine-readable tagged filings
and most regulators either do not, or do not publish them in one place. The EU does mandate
markup — under ESEF, listed issuers tag IFRS consolidated statements in Inline XBRL, and
[ESMA](https://www.esma.europa.eu/press-news/esma-news/updated-2025-ifrs-taxonomy-introduced-european-single-electronic-format)
made the 2025 taxonomy mandatory for financial years starting on or after 1 January 2026 — but the
documents land with each member state's appointed storage mechanism rather than in one queryable
archive. ESMA's published timetable has the
[European Single Access Point](https://www.esma.europa.eu/esmas-activities/data/european-single-access-point-esap)
open to the public from July 2027. Until something like it exists, non-US fundamentals are a
purchase, not a download.

**Uptime, support and terms.** Free means no SLA, no support queue and no recourse. The worked
example is [Yahoo Finance](https://stockmarketstack.com/alternatives/yahoo-finance-api): endpoints a website calls to render
its own pages, read by a large ecosystem, governed by nothing that grants you the data, and
changing shape without notice. Even the SEC's endpoints, which are far more stable, ask you to
identify yourself and stay under a rate limit. On free infrastructure you are a guest.

**Scraping against a licensed API.** The distinction is not technical. An endpoint that a site
calls for itself is not an interface published for you, and a site's terms of service, not its
robots file, is where the question actually sits. Read them, and read the licence on the data
separately from the licence on the code — they are different documents with different answers.

## What it costs

The first paid tier is smaller than people expect, because the boundary is narrow. End-of-day
prices worldwide with splits and dividends applied start at 19.99 dollars a month on
[EODHD](https://stockmarketstack.com/tools/eodhd); [Twelve Data](https://stockmarketstack.com/tools/twelve-data) is 29 and
[Tiingo](https://stockmarketstack.com/tools/tiingo) 30 for personal and internal use, with commercial terms priced above that.
[Alpha Vantage](https://stockmarketstack.com/tools/alpha-vantage) stays free at 25 requests a day and jumps to 49.99 for
delayed US data at usable volume. The survivorship problem is the expensive one:
[Norgate Data](https://stockmarketstack.com/tools/norgate-data) sells delisted securities and historical index membership from
630 dollars a year, routinely the largest line in a serious backtest budget. Full consolidated
real-time US data starts around 99 dollars a month. Every figure is the vendor's own published
price, carried on its card.

## What you can do about it

**Start with EDGAR and FRED, and key everything on CIK.** This covers more than most people expect,
costs nothing, and has no account to lose. Declare a real User-Agent, stay under 10 requests a
second, and pull the nightly bulk ZIPs rather than crawling. Take identifiers early too — an LEI
from GLEIF and a FIGI from OpenFIGI, both free — because retrofitting an identifier onto a store
keyed on tickers is the migration nobody schedules.

**Add one free-tier price API and treat its rate limit as a design constraint.** The cap tells you
in the first afternoon what your real call volume is, which is worth knowing before you choose a
paid plan. The options are on [market data APIs](https://stockmarketstack.com/categories/market-data-apis).

**Pay at the boundary, not before it.** There are three triggers and they are all structural: you
need corporate actions handled correctly, you need non-US coverage, or you need real time. Each is
a wall rather than a gradient. The first invoice belongs at whichever one you hit first, and it is
20 to 30 dollars a month for end-of-day worldwide, several hundred a year for delisted securities
and index membership, and roughly 99 a month upwards for live consolidated US prices.

**Ask four questions before that invoice.** Which adjustment convention does the adjusted series
use, and can I get unadjusted prices alongside it? Is the fundamental history point-in-time or
restated? Do you carry delisted securities? May I show this data to my own users, and at what
price? The fourth is the one that most often turns a working prototype into a product that cannot
ship, and the answer is a licensing one rather than a technical one.

**If none of the three boundaries applies to you, stop.** A US-only, end-of-day, research-scale
project can run permanently on EDGAR, FRED and a free key, and the honest version of this page
says so rather than selling you the upgrade.

## Tools this bears on

- [SEC EDGAR MCP](https://stockmarketstack.com/tools/sec-edgar-mcp.md) — SEC filings and XBRL financials as MCP tools, under AGPL or a paid commercial licence.
- [OpenBB](https://stockmarketstack.com/tools/openbb.md) — One Python API, REST app and MCP server over thirty other people's data feeds.
- [EODHD](https://stockmarketstack.com/tools/eodhd.md) — End-of-day and fundamentals for 60+ exchanges worldwide, at a hobbyist price.
- [Norgate Data](https://stockmarketstack.com/tools/norgate-data.md) — Survivorship-bias-free end-of-day history with delisted stocks and index constituents.

## FAQ

### What is the best free stock market data source?

For fundamentals it is not an API vendor at all — it is the SEC's own XBRL APIs on data.sec.gov, which return every tagged figure from every filing, need no key and no account, and cannot be withdrawn because a filing requirement sits behind them. For macro it is FRED. For prices there is no equivalent, because prices are licensed by the venues that produce them and filings are not.

### Does SEC EDGAR data cost anything, and can I use it commercially?

The APIs are free and unauthenticated, and filings are public records rather than licensed content. What the SEC asks for is operational — a maximum of 10 requests per second and a User-Agent header naming you with a contact address, or requests are refused as an undeclared automated tool. There is no plan, no invoice and no account to lose.

### Why do two free price series give different backtest results?

Because adjusted close is computed rather than observed. Each provider applies its own convention for folding splits and dividends back through the history, and the same ticker over the same dates will produce different returns depending on whose convention you took. Rerun a result you already trust before believing a number from a new source.

### Is there a European equivalent of EDGAR?

Not yet as one free machine-readable archive. EU-listed issuers do file annual reports marked up in Inline XBRL under ESEF, but the documents sit with each member state's appointed storage mechanism rather than in one queryable place. ESMA's published timetable has the European Single Access Point available to the public from July 2027.

### What is the first thing worth paying for?

Corporate actions handled correctly, if you work on prices; non-US coverage, if you work outside the United States. Both are boundaries rather than upgrades — no amount of care with free sources crosses them, and the entry tiers that do start around 20 to 30 dollars a month.

## Sources

1. [EDGAR Application Programming Interfaces](https://www.sec.gov/search-filings/edgar-application-programming-interfaces) — U.S. Securities and Exchange Commission, 2025-04-08
2. [Webmaster Frequently Asked Questions](https://www.sec.gov/about/webmaster-frequently-asked-questions) — U.S. Securities and Exchange Commission, 2024-08-23
3. [Financial Statement Data Sets](https://www.sec.gov/data-research/sec-markets-data/financial-statement-data-sets) — U.S. Securities and Exchange Commission, 2026-06-30
4. [Updated 2025 IFRS taxonomy introduced into the European Single Electronic Format](https://www.esma.europa.eu/press-news/esma-news/updated-2025-ifrs-taxonomy-introduced-european-single-electronic-format) — European Securities and Markets Authority, 2025-09-11
5. [European Single Access Point (ESAP)](https://www.esma.europa.eu/esmas-activities/data/european-single-access-point-esap) — European Securities and Markets Authority, read 2026-09-14
6. [FRED API Terms of Use](https://fred.stlouisfed.org/docs/api/terms_of_use.html) — Federal Reserve Bank of St. Louis, read 2026-09-14
7. [SDMX – statistical data exchange model](https://www.ecb.europa.eu/stats/ecb_statistics/co-operation_and_standards/sdmx/html/index.en.html) — European Central Bank, read 2026-09-14
8. [Disclaimer & copyright](https://www.ecb.europa.eu/services/disclaimer/html/index.en.html) — European Central Bank, read 2026-09-14
9. [API Documentation](https://fiscaldata.treasury.gov/api-documentation/) — U.S. Department of the Treasury, Bureau of the Fiscal Service, read 2026-09-14
10. [Commitments of Traders](https://www.cftc.gov/MarketReports/CommitmentsofTraders/index.htm) — U.S. Commodity Futures Trading Commission, read 2026-09-14
11. [GLEIF Golden Copy and Delta Files](https://www.gleif.org/en/lei-data/gleif-golden-copy) — GLEIF, read 2026-09-14
12. [LEI Data Terms of Use](https://www.gleif.org/en/meta/lei-data-terms-of-use/) — GLEIF, read 2026-09-14
13. [OpenFIGI API Overview](https://www.openfigi.com/api) — OpenFIGI, read 2026-09-14
14. [OpenFIGI API Documentation](https://www.openfigi.com/api/documentation) — OpenFIGI, read 2026-09-14

*Last updated 2026-09-14. A reference page, corrected in place — not a dated post.*
