Where do you get stock data in general? I've seen many people use the data but never obtain the data.
Generally third party apps will get data from market data providers like xignite etc. And where does xignite get the data? They pay for sessions to receive market data directly from all of the exchanges they care about. This data is not cheap from either source.
Not cheap — not necessary. There are data providers like tiingo, quandl, intrinio (just to name a few) that provide quite a lot of data for reasonable prices.
That's true, everything is relative and it also depends what scale of market data you require. I think it's quite cheap to get end of day stock prices but if you want real time market data it gets steep. The closer you get to actual real time the more expensive seems to be the trend.
There is https://www.alphavantage.co which is free now but we've stayed away from them since they were not replying to our enquiries and they do not have any ToS available.
Cheapest realtime stock prices I've seen were ~500$; don't remember where that was though.
We buy it from various data providers. There are some errors here and there (we fix what we can) but overall data is of high quality.