Short answer: No
Long answer: It depends on what you mean by "true market data". This requires understanding a lot more about how the market and bidding process actually functions, but there really isn't a single canonical price at any point, and there are many ways to define what you're looking for, depending on what you're referring to - all of which are valid according to different assumptions.
Think of it as a special kind of eventually-consistent database. Depending on the consistency model, you can't ask what the value of x is right now, because there are multiple possible values that are all valid. It's only after they converge (which takes time) that a single, canonical value emerges.
This is one of the reasons that quotes are always delayed - it's possible to talk about what the price was at some point in the past, because those ways of defining the price dynamically have all essentially converged to the same value, but it's not possible to pinpoint a single price in the present.
To get all of the various sources of real-time data that can be considered the "current price" requires a lot of low-latency connections to various market players. That's not cheap, so there's nothing that's not delayed and free and available for commercial use.
Questions of this nature seem to usually end up pointing to Yahoo's API.
I saw elsewhere (can't locate source at moment) quotes ranging in the $10,000's a month range for real-time data. I'm sure someone on here could provide a more accurate figure.
It's valuable data associated with an industry that's famous for extracting value out of data so I'm not really surprised it's not free.
That sounds excessive. You basically either subscribe to individual exchanges or a consolidated feed from a 3rd party that typically incorporates multiple venues.
For applications that need something professional and reliable, but don't need direct exchange connections (i.e. can deal with ~1-200ms latency), I recommend IQfeed . Depending on exchanges, cost is probably around $100/month
Source: I've been using them for fully automated trading for a couple of years
(I'm not affiliated, but I've used their services before and have been happy)
IB's API is anything but robust. It is inconsistent, poorly documented, and IB have a history of changing it without notice.
It also requires all communication runs through their client side Java GUI app, which is also prone to a variety of problems.
That said, IB are a very good low cost broker with amazing product breadth. But I would suggest caution if using their data API for anything remotely serious.
> Yeah, but have you seen sample code using a json API.... * IN GO!?!? *
Heads up, it has not been touched in 3 years.
I never thought it'd be useful for anyone, but well, I guess it can :P