Are there any market data providers that provide a query language?
You can give YQL a try. I'm not sure it can do the query you want, but for example you can do: (try it here) And this best thing about it - it's free.
You may refer to project http://jstock.sourceforge.net. It is open source and released under GPL. It is fetching data from Yahoo! Finance, include delayed current price and historical price. If you have access, factset and bloomberg have this.  However, these aren't standardized due to non-existent reporting regulations, therefore each company may choose to categorize regions differently.  This makes it difficult to work with a large universe, and you'll probably end up doing a large portion manually anyways. Bloomberg Professional seems to be very popular. It provides any kind of data you can imagine. Analysis is a subjective interpretation of the data. I had the same problem and was looking for a software that would give me easy access to historical financial statements of a company, preferably in a chart. So that I could easily compare earnings per share or other data between competitors. Have a look at Stockdance this might be what you are looking for.  Reuters Terminal is way out of my league (price and complexity) and Yahoo and Google Finance just don't offer the features I want, especially on financials. Stockdance offers a sort of stock selection check list on which you can define your own criterion’s. Hence it makes no investment suggestions but let's you implement your own investing strategy. You might have better luck using Quandl as a source.  They have free databases, you just need to register to access them.  They also have good api's, easier to use than the yahoo api's Their WIKI database of stock prices is curated and things like this are fixed (www.quandl.com/WIKI ), but I'm not sure that covers the London stock exchange.  They do, however, have other databases that cover the London stock exchange. I also searched for some time before discovering Market Archive, which AFAIK is the most affordable option that basically gives you a massive multi-GB dump of data.  I needed sufficient data to build a model and didn't want to work through an API or have to hand-pick the securities to train from.  After trying to do this on my own by scraping Yahoo and using the various known tools, I decided my time was better spent not dealing with rate-limiting issues and parsing quirks and whatnot, so I just subscribed to Market Archive (they update the data daily). This is interesting.  The application I'm putting together is more along the lines of automating the research process for a financial professional using a personal algorithm of his.  The end goal is to provide him an alert to email when a new report is filed and if his criteria are met based on that report and past reports.  Thanks anyway. "There are several reasons to pay for data instead of using Yahoo Finance, although these reasons don't necessarily apply to you if you're only planning to use the data for personal use.  Yahoo will throttle you if you attempt to download too much data in a short time period. You can opt to use the Yahoo Query Language (YQL), which does provide another interface to their financial data apart from simply downloading the CSV files. Although the rate limit is higher for YQL, you may still run into it. An API that a paid data provider exposes will likely have higher thresholds.  Although the reliability varies throughout the site, Yahoo Finance isn't considered the most reliable of sources. You can't beat free, of course, but at least for research purposes, the Center for Research in Security Prices (CRSP) at UChicago and Wharton is considered the gold standard. On the commercial side, data providers like eSignal, Bloomberg, Reuters also enjoy widespread popularity. Although both the output from YQL and Yahoo's current CSV output are fairly standard, they won't necessarily remain that way. A commercial API is basically a contract with the data provider that they won't change the format without significant prior notice, but it's reasonable to assume that if Yahoo wanted to, they could make minor changes to the format and break many commercial applications. A change in Yahoo's format would likely break many sites or applications too, but their terms of use do state that Yahoo ""may change, suspend, or discontinue any aspect of the Yahoo! Finance Modules at any time, including the availability of any Yahoo! Finance Modules. Yahoo! may also impose limits on certain features and services or restrict your access to parts or all of the Yahoo! Finance Modules or the Yahoo! Web site without notice or liability."" If you're designing a commercial application, a paid provider will probably provide technical support for their API.  According to Yahoo Finance's license terms, you can't use the data in a commercial application unless you specifically use their ""badges"" (whatever those are). See here. In this post, a Yahoo employee states: The Finance TOS is fairly specific. Redistribution of data is only   allowed if you are using the badges the team has created. Otherwise, you can use YQL or whatever method to obtain data for   personal use. The license itself states that you may not: sell, lease, or sublicense the Yahoo! Finance Modules or access   thereto or derive income from the use or provision of the Yahoo!   Finance Modules, whether for direct commercial or monetary gain or   otherwise, without Yahoo!'s prior, express, written permission In short, for personal use, Yahoo Finance is more than adequate. For research or commercial purposes, a data provider is a better option. Furthermore, many commercial applications require more data than Yahoo provides, e.g. tick-by-tick data for equities, derivatives, futures, data on mergers, etc., which a paid data source will likely provide. Yahoo is also known for inaccuracies in its financial statements; I can't find any examples at the moment, but I had a professor who enjoyed pointing out flaws in the 10K's that he had come across. I've always assumed this is because the data were manually entered, although I would assume EDGAR has some method for automatic retrieval. If you want data that are guaranteed to be accurate, or at least have a support contract associated with them so you know who to bother if it isn't, you'll need to pay for it." In Japan, there's a competition well-lasting since 2004 or so where you can run your own software agent in a virtual market. Market data is updated from the real world everyday. And if your agent proves good, the organizer puts it into the real market. The language is unfortunately limited to Java only to my knowledge. OS is not limited since your agent is supposed to run on the organizer's environment. English might not be well supported on their web site... "Market makers (shortened MM) in an exchange are generally required to list both a bid and ask price to allow both buyers and sellers to trade and keep the market moving.  However, a more general idea of a MM may includes companies off an exchange (say large banks acting as broker/dealers in an over-the-counter market) are not required to give a simultaneous bid/ask, but often will on request.  So, it might depend on where you are getting this data but likely the bid/ask was quoted simultaneously. An exchange, like the NASDAQ for instance, may have multiple MMs for a given market.  The ""market"" spread will be from the highest bid to the lowest ask over all the MMs.  The highest bid and lowest ask may come from different MMs and any particular MM often will have a larger spread. The size of the spread gives a rough idea of how much a MM is trying to make off of a ""round trip"" trade (buying than immediately selling to someone else or selling than immediately buying from someone else).  Of course, immediate round-trip trades are not always possible and there are many other complications.  However, half the spread is a rough indicator of how much they hope to make off of a single trade." I am a web developer by day and financial systems programmer by night.  You'll need to learn a compiled language and how to scale data storage if you want to code for finance. I would suggest you learn C# or Java if you really want a decent gig programming in the finance industry. Anybody using PHP and API's to trade isn't somebody you want to work for. It will cause way more headaches than it's worth and you miss opportunities due to speed and efficiency of a language like PHP. You will hit a wall with it at some point (some problem/bug/whatever that can't be solved), and it will really bring you down when you realize it has to be re-done in another language. That being said, PHP is great for the front end (showing people the data and letting them search etc), but the core of it that grabs stats and does the calculations should be in a compiled language.   PHP can also be used to quickly test ideas to see if it's worth building a full system that will scale. Basically a rough draft of the program to see if it's going to work out. Why? Well in PHP you can get things done very quickly with very little code because a large amount of libraries and functions exist and it's a very easy language to understand. But it's not efficient, and that's why you create the real deal program using C, C#, or java, or whatever.  Scalability of data storage will be important to. You'll need to store a ton of information and you'll need to be able to sort/change/remove/add it quickly. Many databases already exist to do this and I see you know MySQL already a good bit. You'll need to get very familiar with it because the database is going to be your biggest bottleneck in terms of speed. It doesn't matter how well your software works if the database is taking 5 seconds to return a query. Learn to tweak MySQL, learn about MSSQL, look into Firebird. Also learn about at least one NoSQL storage solution (these databases can store a massive amount of information, but they work differently than a sql database does). I would recommend learning MongoDB if you already know PHP. It is a good transition from SQL style databases to Key Storage databases.   Hope this helps... Now, you can do business Millet Export Data overseas easily and understand the policies of your competitors with data services online. The Database we offer include with price, Date, HS code, Product Description, Bill of Loading, Quantity, Country Name, Port Name etc. Yes, Alpha Vantage. As MasticatedTesticle points out, it is worth asking where it originally comes from, but it looked to me like a solid source for, in particular, intraday trading data. Additionally, Yahoo finance is done on R (zoo, PerformanceAnalytics libraries don't work anymore as far as I can tell). The numbers look right to me tho, let me know if things are off. Moody's is now Mergent Online. It's no longer being printed, and must be accessed digitally. In order to browse the database, check with your local public library or university to see if you can get access. (A University will probably require you to visit for access).  Another good tool is Value Line Reports. They are printed information sheets on public companies that are updated regularly, and are convenient for browsing and for comparing securities. Again, check your local libraries.  A lot of the public information you may be looking for can be found on Yahoo Finance, for free, from home. Yahoo finance, will give financial information, ratios, news, filings, analysis, all in one place. I have a finance background and realized I love programming. I'm learning JS/Node/Socket to create realtime data apps. Later on, I might use Python to crunch some numbers but the aforementioned stack seems to hold a lot of utility for the financial world.