Many years ago I looked into the problem, but for the Canadian market. We couldn't find a service with an API, so we took one of those 15$/month paying services that gives you some Java software to "analyze" the data (Stockwatch). I used a packet sniffer (Etherreal?) and reversed out the protocol. I used Python for the actual software. They don't really mind you doing that if you're paying already, so it was fairly easy to do, even for me who had no experience.