In addition to the browsable map of real-time data, ADS-B Exchange is also making available historical and real-time data for personal/non-profit use at no cost. Of course, if you find this data useful, or just want to see it’s distribution continue, we would appreciate any donations, especially monthly recurring donations to fund the ongoing operation of the site. This data would cost a ton of money to buy elsewhere, believe me.
As noted in the legal terms and conditions, commercial use requires written authorization from ADS-B Exchange. This is necessary to ensure operating this site remains financially viable so we can continue to provide the service. We may ask that certain commercial users contribute financially to the operation of this site if they desire to use the data in revenue-generating products.
This service could end at any time if the cost to provide it outweighs incoming revenue/donations. Please keep that in mind when downloading data/using this service – go easy on the infrastructure if you can. There are quite a few hosting/bandwidth/storage costs for a large and growing dataset such as we have here.
Querying Live Position Data
Live position data can be queried with various parameters are results returned in a JSON format. As you may be aware, ADSBexchange is based on the excellent Virtual Radar Server product by Andrew Whewell.
The base URL to query is: http://public-api.adsbexchange.com/VirtualRadar/AircraftList.json (querying this URL by itself will yield a JSON with _all_ airborne aircraft).
To further filter and slice the data, use the querystrings shown in the documentation. For example, based on the above, to query all aircraft between 0 and 100 km of the lat/long of Phoenix Sky Harbor Airport, use:
This is a good way to get LIVE data. If you want historical, do NOT call this JSON repeatedly and store it. Instead, see below!
Feed Live Data to your own VRS Installation
Do you run a local copy of VRS? Again, if your use is non-profit and you do not share your VRS site with the general public, feel free to make use of our data by getting a live feed of everything we have! Within VRS, go to Tools > Options, click on “Receivers”, then click the green “+” to add a new receiver. Configure it as shown below. Depending on your bandwidth and power of your local computer, you may want to choose a different update interval. This is done by changing the last two digits of the port number. Available options are shown below.
Important note: If you use this method, and you also feed us via VRS, please ensure that you are not sending our data feed back to us in your feed! It uses our (and your) resources for no reason. Thanks! Also, please ensure that your system clock is synced reasonably well with an internet time source via NTP.
Live Data via TCP Connection
To retrieve Live data via a TCP connection, connect to pub-vrs.adsbexchange.com on port 32001, or one of the ports below for a slower update rate. The 1 second update rate requires 1.5 – 2 mbps of bandwidth during busy times.
- Port 32001 – 1 second updates (realtime)
- Port 32005 – 5 second updates
- Port 32010 – 10 second updates
- Port 32015 – 15 second updates
- Port 32030 – 30 second updates
Historical Data (by date/time)
If you want to download a historical record of all data received by ADSBexchange, this is the section for you. Building on the “Querying Live Data” section above, essentially, every 60 seconds, we issue the following JSON query and store the results: http://public-api.adsbexchange.com/VirtualRadar/AircraftList.json?trFmt=sa
Essentially, this is a JSON of all aircraft, with “short trails” activated. The short trail duration used in the historical data archive is 65 seconds. This gives all the current information on the aircraft, plus any known positions, altitudes and timestamps for the previous 65 seconds. Since this query is issued every 60 seconds, all known positions should be captured in the data. Please consult this page for an explanation of data field contents.
This file is captured every 60 seconds, typically on the 30-second mark of any given minute. This generates 1,440 files daily, which then get zipped into a single archive per day. The archive for the previous day is typically available by 0100Z (01:00 UTC) the following day. Data is available beginning on June 9, 2016. Daily files are currently in the neighborhood of 7.9 GB each. Transfer rates may be somewhat limited depending on the latency of your connection.
For example, June 20th’s data can be downloaded at the following URL:
Simply extrapolate the pattern for any subsequent date.
For a full explanation of fields: https://www.adsbexchange.com/datafields
Historical Data (by specific aircraft/ICAO codes)
While this data is contained in the JSON files discussed above, it is not easily searchable for a single aircraft. Historical data for specific aircraft can be searched here: https://flight-data.adsbexchange.com/. The backend for these queries is our Amazon Redshift data warehouse (described below).
SQL Query-able Amazon Redshift Database
Amazon Redshift is based on PostgreSQL. The data contained in the JSON files discussed above is also loaded into an Amazon Redshift database that can be queried with SQL syntax, or linked to any number of data analysis tools such as Tableau, redash.io, chartio, Microsoft Power BI, and more.
The ADSBexchange Amazon Redshift database can be queried directly via the internet. Click here for instructions on how to connect.
While Amazon Redshift contains the data already available in the JSON files discussed above, storing, indexing, and making this data available via Redshift does carry a non-trivial financial cost to ADSBexchange. Access to our Redshift database has an associated cost. If you have a personal, non-profit, or commercial use in mind, please contact us for more information on getting access.
Click here for a description of some of the fields available to query. There are nearly 3 billion records and counting.