DEV Community

Muhammad Tayyab
Muhammad Tayyab

Posted on Originally published at devpik.com

Free market data is not free, it is delayed by fifteen minutes

Every developer builds a stock tracker eventually. It is the perfect side project: a clean API, obvious features, and a result you actually use.

Then you ship it, compare a number against your broker, and find you are fifteen minutes behind.

This trips up almost everyone the first time, because nothing about "free tier" prepares you for it. The tier is not rate-limited into uselessness. It is time-shifted.

The exchange owns the price, and it sells it

A stock price is not a public fact like the weather. It is proprietary data produced by an exchange, and exchanges license it. NYSE, Nasdaq and the rest run market data as a real revenue line, with per-user fees, redistribution agreements and audits attached.

So when an API offers a free tier, it cannot give you what it does not have the right to give you for free. What it can do is wait. Delay the quote past the licensing threshold, typically fifteen minutes, and it stops being the licensed real-time product.

That single constraint explains a pattern you have probably noticed without naming it: free finance APIs converge on the same shape. Delayed quotes, generous historical data, thin real-time. Historical data is cheap to license because it is no longer tradeable. The present is the expensive part.

Which is why the honest projects say so

I spent some time in OpenStock, a 17,000-star self-hosted market dashboard built on Next.js. What made it worth writing about is not the feature list. It is that the README says this out loud:

Market data may be delayed based on provider rules and your configuration.

And in the market support docs: non-US symbols delayed by fifteen minutes or more on free tiers, with some emerging markets unavailable on the free chart tier at all.

Compare that to the usual framing, where "real-time prices" sits in the headline and the asterisk lives somewhere you will find after you deploy it.

What you can still build

None of this makes the project pointless, and it should not stop you building yours. It just means being clear about which application you are building.

Delayed data is completely fine for a watchlist, for research, for fundamentals, for end-of-day summaries, for alerting on moves you are going to act on over days rather than seconds. That is most private investors, most of the time.

Delayed data is useless for anything where the fifteen minutes is the whole point. If your idea only works with live quotes, the software was never the hard part. The data licence is, and it is priced accordingly.

The practical move when you are evaluating any market API: pull one symbol, write down the timestamp the payload carries, and compare it to the wall clock. Dumping a few responses through a JSON to CSV converter and eyeballing the timestamp column tells you in about two minutes what the pricing page will not.

Fuller write-up of OpenStock, including why AGPL-3.0 matters much more for a web app than a desktop one: OpenStock.

Top comments (0)