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.