There's no free opportunities on this market unless you scrap web results of one of the paid services. With our experience when you start scrapping web results you are promptly spotted. The scrapped site might continue to give you web results but with a rather long lag e.g. 10 secs. This can be OK for the development stage but is too much for production.
We are using XML based FlightAware API. They are the cheapest data provider we found. If you make up to 10K queries per month (Class 3 queries that we employ) you pay only $0.002 for a query. With more queries a fee for a single query decreases. Down to $0.0003 if your application is lucky to generate millions of queries per month. See pricing for details.
FlightAware has excellent coverage of US flights (including non-passenger) but European and especially Asian sectors are missing a lot. There are too many non-US airports and airlines are not supported by the service.
Our statistics shows that we have 35% of searched flights not found by FlightAware for 60% of our customers in Europe & Asia. This is rather dissatisfying and we plan to employ FlightStats API for flights not found by FlightAware. Unfortunately each FlightStat query will cost us triple of FlightAware (see FlightStats pricing).
FlightStats API is used by a handful of mobile app in the Apple's AppStore Travel section. We've analyzed customer feedback for several of them and found that FlightStats tends to provide reliable flight status data all over the globe. Nevertheless we found some complaints on their data accuracy.
Flightradar24 might look like a good alternative if you are interested only in European flights. Unfortunately it looks like there's no public API now. We didn't contact developers directly as Jets app requires world-wide coverage.