Data Coverage
Contents
Flight Data Coverage
What is the Coverage?
We cover the majority of commercial flights worldwide. Coverage limitations are determined predominantly on geographical basis (per airport / region, rather than per airline), as well as by the limitations of the external data sources. As an enthusiast-driven API, we deliver flight data in the best effort fashion, which is why worldwide coverage of the data is not guaranteed. In exchange we charge a fee which is significantly below the market average with the lowest paid plan comparable to a cup of coffee. More about this can found in our FAQ.
Check out our new portal.aerodatabox.com to try some flight data available through AeroDataBox API.
The map below indicates approximate levels of coverage per each airport. Note, that his map is updated manually at irregular intervals: it may not always reflect the most recent state. For the most up-to-date status of the data feeds, please use the health-check and status API. Coverage depicted here is approximate and is designed solely to provide a general idea. No rights can be derived from it.
— No flight data available
— Schedules data available
— ADS-B updates data available
— Schedules + ADS-B updates data available
— Schedules + Live updates data available
— Schedules + Live + ADS-B updates data available
The table below indicates approximate levels of coverage per country, expressed in percentage of commercial flights per country. Note, that his table is updated manually at irregular intervals: it may not always reflect the most recent state. Coverage depicted here is approximate and is designed solely to provide a general idea. No rights can be derived from it.
Last updated: February 28, 2026
| COUNTRY | SCHEDULES COVERAGE (covered % of scheduled commercial flights per country) | LIVE (ACTUAL) FLIGHT STATUS AND TIME COVERAGE (covered % of commercial flights per country) |
|---|---|---|
| Afghanistan | 67% | 0% |
| Albania | 100% | 0% |
| Algeria | 91% | 0% |
| American Samoa | 67% | 0% |
| Angola | 55% | 0% |
| Anguilla | 100% | 0% |
| Antarctica | 0% | 0% |
| Antigua and Barbuda | 100% | 0% |
| Argentina | 92% | 65% |
| Armenia | 100% | 99% |
| Aruba | 100% | 0% |
| Australia | 63% | 63% |
| Austria | 96% | 96% |
| Azerbaijan | 98% | 100% |
| Bahamas | 90% | 0% |
| Bahrain | 100% | 0% |
| Bangladesh | 90% | 0% |
| Barbados | 100% | 0% |
| Belarus | 99% | 98% |
| Belgium | 96% | 85% |
| Belize | 100% | 0% |
| Benin | 100% | 0% |
| Bermuda | 100% | 0% |
| Bhutan | 100% | 0% |
| Bolivia | 67% | 0% |
| Bosnia and Herzegovina | 100% | 78% |
| Botswana | 70% | 0% |
| Brazil | 96% | 35% |
| British Indian Ocean Territory | 0% | 0% |
| British Virgin Islands | 100% | 0% |
| Brunei | 100% | 0% |
| Bulgaria | 100% | 0% |
| Burkina Faso | 100% | 0% |
| Burma | 89% | 0% |
| Burundi | 100% | 0% |
| Cambodia | 88% | 29% |
| Cameroon | 71% | 0% |
| Canada | 92% | 78% |
| Cape Verde | 97% | 0% |
| Caribbean Netherlands | 100% | 0% |
| Cayman Islands | 100% | 0% |
| Central African Republic | 64% | 0% |
| Chad | 57% | 0% |
| Chile | 84% | 0% |
| China | 95% | 35% |
| Christmas Island | 100% | 0% |
| Cocos (Keeling) Islands | 100% | 0% |
| Colombia | 97% | 45% |
| Comoros | 75% | 0% |
| Congo (Brazzaville) | 99% | 35% |
| Congo (Kinshasa) | 68% | 0% |
| Cook Islands | 77% | 0% |
| Costa Rica | 61% | 0% |
| Côte d’Ivoire | 77% | 0% |
| Croatia | 97% | 83% |
| Cuba | 82% | 0% |
| Curaçao | 100% | 0% |
| Cyprus | 83% | 49% |
| Czech Republic | 100% | 98% |
| Denmark | 90% | 90% |
| Djibouti | 100% | 0% |
| Dominica | 67% | 0% |
| Dominican Republic | 93% | 0% |
| Ecuador | 63% | 0% |
| Egypt | 89% | 0% |
| El Salvador | 100% | 0% |
| Equatorial Guinea | 100% | 0% |
| Eritrea | 60% | 0% |
| Estonia | 100% | 99% |
| Ethiopia | 94% | 0% |
| Falkland Islands | 67% | 0% |
| Faroe Islands | 100% | 100% |
| Fiji | 92% | 0% |
| Finland | 89% | 89% |
| France | 100% | 77% |
| French Guiana | 67% | 0% |
| French Polynesia | 92% | 50% |
| Gabon | 61% | 0% |
| Gambia | 100% | 0% |
| Georgia | 91% | 79% |
| Germany | 98% | 97% |
| Ghana | 100% | 0% |
| Gibraltar | 100% | 0% |
| Greece | 87% | 77% |
| Greenland | 88% | 99% |
| Grenada | 100% | 0% |
| Guadeloupe | 67% | 0% |
| Guam | 100% | 0% |
| Guatemala | 64% | 0% |
| Guernsey | 100% | 0% |
| Guinea | 57% | 0% |
| Guinea-Bissau | 100% | 0% |
| Guyana | 67% | 0% |
| Haiti | 67% | 0% |
| Honduras | 79% | 0% |
| Hong Kong | 100% | 100% |
| Hungary | 97% | 100% |
| Iceland | 93% | 81% |
| India | 91% | 38% |
| Indonesia | 84% | 23% |
| Iran | 84% | 0% |
| Iraq | 80% | 0% |
| Ireland | 99% | 95% |
| Isle of Man | 100% | 0% |
| Israel | 66% | 0% |
| Italy | 66% | 47% |
| Jamaica | 77% | 0% |
| Japan | 92% | 65% |
| Jersey | 100% | 0% |
| Jordan | 100% | 0% |
| Kazakhstan | 95% | 66% |
| Kenya | 83% | 0% |
| Kiribati | 87% | 0% |
| Kosovo | 100% | 0% |
| Kuwait | 100% | 0% |
| Kyrgyzstan | 100% | 100% |
| Laos | 95% | 0% |
| Latvia | 100% | 100% |
| Lebanon | 100% | 0% |
| Lesotho | 100% | 0% |
| Liberia | 67% | 0% |
| Libya | 58% | 0% |
| Lithuania | 86% | 0% |
| Luxembourg | 100% | 100% |
| Macau | 100% | 0% |
| Macedonia | 100% | 100% |
| Madagascar | 66% | 0% |
| Malawi | 60% | 0% |
| Malaysia | 98% | 90% |
| Maldives | 93% | 0% |
| Mali | 56% | 0% |
| Malta | 100% | 0% |
| Marshall Islands | 100% | 0% |
| Martinique | 100% | 0% |
| Mauritania | 87% | 0% |
| Mauritius | 100% | 0% |
| Mayotte | 100% | 0% |
| Mexico | 97% | 20% |
| Micronesia | 100% | 0% |
| Moldova | 67% | 0% |
| Mongolia | 88% | 35% |
| Montenegro | 100% | 100% |
| Montserrat | 100% | 0% |
| Morocco | 88% | 0% |
| Mozambique | 85% | 0% |
| Namibia | 61% | 0% |
| Nauru | 100% | 0% |
| Nepal | 93% | 0% |
| Netherlands | 100% | 100% |
| New Caledonia | 52% | 0% |
| New Zealand | 93% | 62% |
| Nicaragua | 89% | 0% |
| Niger | 56% | 0% |
| Nigeria | 76% | 0% |
| Niue | 100% | 0% |
| Norfolk Island | 100% | 0% |
| North Korea | 61% | 59% |
| Northern Mariana Islands | 60% | 0% |
| Norway | 100% | 94% |
| Oman | 96% | 0% |
| Pakistan | 69% | 0% |
| Palau | 100% | 0% |
| Panama | 96% | 0% |
| Papua New Guinea | 85% | 0% |
| Paraguay | 61% | 0% |
| Perú | 92% | 65% |
| Philippines | 94% | 29% |
| Poland | 98% | 83% |
| Portugal | 99% | 97% |
| Puerto Rico | 99% | 94% |
| Qatar | 100% | 100% |
| Réunion | 67% | 0% |
| Romania | 75% | 71% |
| Russia | 100% | 74% |
| Rwanda | 75% | 0% |
| Saint Barthélemy | 100% | 0% |
| Saint Helena | 67% | 0% |
| Saint Kitts and Nevis | 100% | 0% |
| Saint Lucia | 100% | 0% |
| Saint Martin | 100% | 0% |
| Saint Pierre and Miquelon | 67% | 0% |
| Saint Vincent and the Grenadines | 94% | 0% |
| Samoa | 100% | 0% |
| São Tomé and Principe | 100% | 0% |
| Saudi Arabia | 84% | 60% |
| Senegal | 55% | 0% |
| Serbia | 99% | 97% |
| Seychelles | 100% | 0% |
| Sierra Leone | 56% | 0% |
| Singapore | 100% | 100% |
| Sint Maarten | 100% | 0% |
| Slovakia | 89% | 0% |
| Slovenia | 100% | 100% |
| Solomon Islands | 83% | 0% |
| Somalia | 66% | 0% |
| South Africa | 94% | 83% |
| South Korea | 96% | 94% |
| South Sudan | 78% | 0% |
| Spain | 85% | 95% |
| Sri Lanka | 99% | 0% |
| Sudan | 62% | 0% |
| Suriname | 100% | 0% |
| Swaziland | 0% | 0% |
| Sweden | 87% | 81% |
| Switzerland | 100% | 100% |
| Syria | 60% | 0% |
| Taiwan | 94% | 68% |
| Tajikistan | 99% | 80% |
| Tanzania | 95% | 0% |
| Thailand | 92% | 78% |
| Timor-Leste | 60% | 0% |
| Togo | 67% | 0% |
| Tonga | 75% | 0% |
| Trinidad and Tobago | 100% | 0% |
| Tunisia | 89% | 12% |
| Turkey | 67% | 67% |
| Turkmenistan | 60% | 0% |
| Turks and Caicos Islands | 80% | 0% |
| Tuvalu | 100% | 0% |
| U.S. Virgin Islands | 100% | 100% |
| Uganda | 57% | 0% |
| Ukraine | 0% | 0% |
| United Arab Emirates | 85% | 92% |
| United Kingdom | 99% | 71% |
| United States | 100% | 86% |
| United States Minor Outlying Islands | 0% | 0% |
| Uruguay | 94% | 0% |
| Uzbekistan | 98% | 98% |
| Vanuatu | 87% | 0% |
| Venezuela | 63% | 0% |
| Vietnam | 96% | 0% |
| Wallis and Futuna | 67% | 0% |
| Western Sahara | 75% | 0% |
| Yemen | 0% | 0% |
| Zambia | 69% | 0% |
| Zimbabwe | 73% | 0% |
| – countries with high live status coverage (60%+ of flights) |
The Structure of the Flight Data Coverage
Each flight returned by the API is composed of up to 3 data “layers” applied and merged on top of each other: schedules (static data), live (dynamic) data and ADS-B data. Given this and the geographical nature of the coverage, each flight may therefore have different degree of coverage for departure and arrival pieces of the information (asymmetrical coverage).
A flight departing from an airport in the area with all 3 data layers operational and arriving into an airport with only schedule data layer active, will have live status updates for the origin airport (ETD, ATD, possibly, gate number, check-in desk, aircraft registration), and only scheduled time available for the destination (consequently, this flight may not go past the “departed” status, because it will never get actual arrival status report). Please note, that sometimes, a flight or part of the flight (departure or arrival) may have no coverage at all!
^ Example of asymmetrical coverage.
Let’s look into data layers which compose the final flight data you get from the API.
Layer 1. Schedules / Static Data
This data layer is static and therefore doesn’t include any status updates and doesn’t reflect the actual progress of a flight. Often, it provides a significant look-ahead for the upcoming flights. This data layer includes basic minimum information about flight:
- flight number (always);
- airline (always);
- planned time of departure / arrival (always);
- destination / origin (always);
- planned aircraft type (often);
- terminal (sometimes).
As flight schedules do not provide live status updates, the status for a scheduled flight will stay “Unknown”, and planned times will stay the same as revised times, until the flight is updated by the other data layers, if available (see below).
Current Schedules (Static) Data Configuration
Updated: once in 2 weeks per airport / region
Available: up to 365 days1 in the future, if available 2
Historical data is available: up to 365 days in the past, if available 2, 31 Depends on your selected pricing plan
2 May effectively be less for specific flights, airports, regions depending on the quality of the contributing data sources and depending on how far in the future airlines publish their schedules.
3 Do you need more historical data? Please contact us.
Layer 2. Live / Dynamic Data
Data from “live” update feeds layer complements / overwrites schedules data in accordance with the actual progress of the flight, by adding the following information:
- revised planned time of departure / arrival (always);
- actual / estimated time of departure / arrival (always);
- status of the flight (always);
- revised aircraft type (often);
- code-share marker (often);
- terminal (sometimes);
- check-in desks (sometimes);
- baggage belt (sometimes);
- gate (sometimes);
- cargo marker (sometimes);
- aircraft registration (sometimes);
- aircraft ICAO Mode-S 24-bit address (sometimes);
- ATC call-sign (rare);
- actual / estimated time on the runway: take-off/landing time (rare).
This layer is dynamic and is updated frequently. It covers the data related to the estimated and actual progress of the flight. It may also create new flights if not previously provided by the scheduled data layer or remove flights that were placed into schedules incorrectly.
Current Live Data Configuration
Updated: with variable interval, typically from nearly real-time up to once in a few hours
Available: variable, from a few hours ahead up to a few days ahead, typically, up to tomorrow 1
Historical data is available: up to 365 days in the past, if available 2, 31 May effectively be less for specific flights, airports, regions depending on the quality of the contributing data source.
2 May effectively be less for specific flights, airports, regions depending on the quality of the contributing data source.
3 Do you need more historical data? Please contact us.
Layer 3. ADS-B Updates Data
Experimental data layer. This information is derived by analyzing data retrieved from ADS-B receivers located worldwide. This, among others, includes positional changes of the aircraft operating the flight. It may complement scheduled and/or live update data with the following informatio :
- ATC call-sign (always);
- aircraft registration (always);
- aircraft ICAO Mode-S 24-bit address (always);
- revised aircraft type (always);
- actual / estimated time on the runway: take-off / landing time (sometimes);
- actual / estimated runway of take-off / landing (sometimes);
- actual / estimated time of departure / arrival (sometimes).
This type of layer / feed may also create new flights if those were not mentioned in other data layers (typically applies to general aviation or cargo flights). This information is dynamic and updated frequently: with an interval of from a few seconds up to half an hour. Due to the nature of ADS-B, this data is optional even in the areas with stated good coverage. This layer is naturally real-time only and does not provide any look-ahead in the future.
Uniformity of Limitations
You may retrieve flight information either by requesting a specific flight individually, or by listing flights per airport, or by requesting flight updates using the subscription mechanism of our PUSH API. Either way, all coverage limitations apply to any relevant flight data endpoints.
Furthermore, flight data coverage restrictions equally affect any functionality and data derived from the flight data. For example
- there will be no airport or flight delays statistics available for flights / airports without historical live or ADS-B data coverage;
- Flight Alert PUSH API will not provide any updates for flights departing from / arriving to airports / regions without stable live or ADS-B data coverage: there is no practical sense to subscribe alerts to such flights or airports;
- could be more (see documentation for the list of endpoints).
Can You Fix Coverage in My Area? I Really Need It.
We routinely work on improving our coverage. However, we cannot do so on-demand, for practical reasons. If you desired flight is not covered, covered partially or inconsistently, there is usually not much we can do, as we rely on the external sources and we inherit their limitations.
However, you are welcome let us know if there is specific area that you are interested. Areas with more votes will be eventually prioritized in our roadmap. The requests from the customers on high-tier and custom pricing plans, or from those willing to contribute their data to our API, may also be prioritized.
Can I Contribute My Data? Can We Have a Partnership?
We are on a constant look-out for more and better sources of data, so the short answer is – yes. The longer answer will depend on the details of the proposition. Contact us and let’s have a chat.
