Depends what you are looking for. Is it real time quotes?
IEX data is now free after 15minutes instead of 15milliseconds.
One option is the Databento US Equities Mini for 200 USD per month. If I understand it correctly it is some sort of weighted average between multiple exchanges.
[dead]
I've been happy with Databento as a low-friction way to get market data. I liked it so much, I ported their structs and APIs to Golang. [1]
Their EQUS Mini dataset is a great way to dip the toe if you want live data without licensing restrictions. Databento's article talks exactly about how it is sourced, but it is not that it is averaged but anonymized, specifically because of the complexities of upstream exchange licensing. [2]
You don't have to pay $200 per month for that -- that's for all-you-can-eat. You can experiment with pay as you go.
You can use my dbn-go tools to help you... here's the cost to get all the 1-day candlesticks for all the US Equity Symbols for 1-year... which you could use to make all sorts of charts and redistribute them freely (the trickiest part honestly):
So $4.38 for all that data or $3.78 for just the NASDAQ exchange (not sure of redistribution of that one).I hang out on their Slack. Today there was a deep discussion about optimizing C++ SPSC queues, although it is usually isn't too technical like that. They are pretty transparent about how they implement things.
[1] https://github.com/NimbleMarkets/dbn-go
[2] https://databento.com/blog/databento-us-equities-mini-now-av...