Frequently Asked Questions
The OpenSky network collects raw air traffic control communication. We monitor the 1090 MHz SSR Mode S downlink channel, including ADS-B and also collect FLARM data and VHF/Voice. This means that we can provide on the one hand low-level data (down to single transponder transmissions) and on the other hand high-level tracking data of the form "at date and time T, aircraft A was at position X and altitude Y and moved into direction D at a speed of V".
Furthermore, we derive origin and destination of a flight from this track data where possible. The process is described in this paper. While we have began to integrate some route information into the live view of the OpenSky Explorer, we do not currently map this to commercial flight schedules. This means that we cannot give any information on, for example, scheduled flights, cancellations, delays, flight numbers, or passenger counts! While more information may be inferred by combining our data with other data sources, this is beyond the scope of our services. For crowdsourced aircraft metadata, you can use our aircraft database.
Generally, we don't have any data at all from before 2013 and have the best coverage in Europe and the US. Regarding our day-to-day coverage, you can check it on our Coverage & Facts page.
We infer flights for both our Rest API and our Trino database in a nightly batch procedure from the ADS-B tracks collected for the finished day (UTC). For some more information on how they are derived, you can refer to this publication.
This also means that we only have historical flight data for previous days, no live flights and no commercial data about schedules, delays or cancellations etc (definitely no passenger numbers!).
The OpenSky REST API is provided “as is”. We may change access policies or apply rate limits as needed to protect system performance.
To use the API, authenticate via the OAuth2 client credentials flow (recommended for all programmatic access):
- Log in to your OpenSky account and create an API client to get your
client_id
andclient_secret
. - Use these credentials to obtain an access token:
export CLIENT_ID=your_client_id export CLIENT_SECRET=your_client_secret export TOKEN=$(curl -X POST "https://auth.opensky-network.org/auth/realms/opensky-network/protocol/openid-connect/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials" \ -d "client_id=$CLIENT_ID" \ -d "client_secret=$CLIENT_SECRET" | jq -r .access_token)
- Include the token in your API requests:
curl -H "Authorization: Bearer $TOKEN" https://opensky-network.org/api/states/all
Rate limits and API credits
Rate limits currently apply to:
/states/all
, /flights/*
, and /tracks/all
.
🔥 For full details, please refer to the official API documentation.
Special access for researchers
Institutional (typically academic) researchers can request unlimited API access, including historical data. For non-profit causes with significant impact, please create an account and raise a data request.