If I have aircraft details such as the callsign, transponder code, and ads-b info, how can I look up the departure and arrival airdrome? Is there an API to obtain this information in a programmatic way? How does flightradar24, for example, obtain this data?
If you have the call sign, or Air Carrier flight number, you can track flights with http://flightaware.com. Air Carriers are required to file IFR flight plans so the destination is in the system and trackable. Part 91 (general aviation) and Part 135 (non-scheduled for hire) IFR flights also file a flight plan and their origin and destination are trackable. Most Part 135 flights are on an IFR flight plan but most Part 91 flights are not. However, Operators can block the release of information so FlightAware may not have the info for some aircraft. The information is also available if Part 91 fliers are receiving flight following. If a Part 91 operator is not in contact with ATC the information will not appear in FlightAware.
FlightAware gets the info from the FAA, so there must be an API for it but I don’t know anything about it. “Flightradar24 has a network of more than 3,000 ADS-B receivers around the world that receives plane and flight information from aircraft with ADS-B transponders and sends this information to our servers.” It also gets data directly from the FAA radar with a 5 minute delay.
Probably a bit late to post an answer to that question, but I'll throw in my two cents.
Not sure where flightradar24 gets its data from. I just know that these guys at ADSBExchange provide unfiltered un-encrypted flight-data through their API (click this link https://public-api.adsbexchange.com/VirtualRadar/AircraftList.json for a complete list of all aircrafts tracked by ADS-B receivers world wide - in json format)
You can easily filter the above url, depending on which area you're looking at. For instance:
all aircraft between 0 and 100 km of the lat/long of Phoenix Sky Harbor Airport, use: http://public-api.adsbexchange.com/VirtualRadar/AircraftList.json?lat=33.433638&lng=-112.008113&fDstL=0&fDstU=100"
(take a look at the API documentation for more details)
Once you've filtered around your area of interest, you can easily look up departure and arrival aerodromes by filtering the json file. For each aircraft in "acList", look for the fields "From" and "To" for the departure/arrival aerodromes respectively.
It's quite straightforward to parse Json. Lots of languages these days allow you to easily do that with ready made libraries (take a look at this thread for parsing json with Python)
Hope this will be useful to someone :)