1. Home
  2. Web

Real-Time and Historical Flight Data with the Aviationstack API (2021 Review)

If your business at all relies on flight data, you owe it to yourself to check out Apilayer’s robust Aviationstack API. This generously provisioned, competitively priced, highly scalable SaaS offering makes it possible to track a wealth of flight data from all over the world, from real-time statistics to historical records with equal aplomb.

So how does it work? Below, we take an eagle-eyed look at Aviationstack’s rich feature set. You’ll learn all about how the API handles forward and reverse geocoding, plus discover a vast array of advanced features to fully flesh out integration with your company’s app. We also help you get up and running with Aviationstack in our simple quick-start guide. Towards the end of the article, we review the API’s performance, then lay out Aviationstack’s various pricing tiers to help you assess which level of service is best for you.

Real-time Flight Status & Global Aviation Data API

Ready for takeoff? Onward and upward!

The Aviationstack API in a nutshell

Aviationstack is the go-to microservice API for real-time flight data, trusted by over 5,000 companies worldwide. Whether you’re building a booking platform; flight visualization, tracking, or monitoring applications; or something more novel, you can count on Apilayer’s expert team and globalized infrastructure to deliver the mission-critical results you need.

Aviationstack offers easy integration into virtually any app or platform thanks to its wide compatibility with all the major programming languages, including PHP, Python, Node.js, jQuery, Go, and Ruby. Requests return JSON, XML, or any geocode-specific GeoJSON files for optimum utility in any use-case. The API is extremely responsive, and generally returns on your requests within 10-100 ms.

Results are generated through forward and reverse geocoding, stemming from a truly massive database encompassing over 2 billion locations across the globe. What’s more, you can tailor its parameters for encryption, support for multiple languages, embeddable map URLs, and much more.

What can you do with Aviationstack?

So what does this all mean in layman’s terms? It’s not an exaggeration to say that Aviationstack gives you ready access to basically any piece of information you could want on any aspect of the aviation industry, anywhere in the world. Need some examples? You can request data on:

  • Live flight tracking
  • Historical flight lookups
  • Scheduling and routes
  • Countries, cities, airports, airlines, and even individual aircraft
  • Aviation taxes

What’s more, there’s a wealth of historical data to parse as well. Since its creation, Aviationstack has vigilantly collected and stored data on millions upon millions of flight records. This allows you to take a granular look into routes, flight numbers, dates, time, and location information. You can also view which cities, airports, terminals, and even gates a flight has departed from or landed in.

Getting started with Aviationstack in 3 steps

Up to this point, we’ve taken a high-level view of Aviationstack’s abilities. Now, it’s time to take a closer look at what it’s like to actually use the API.

Aviationstack’s documentation details a three-stage roadmap to getting their API successfully integrated into your app. Of course, there’re a ton of parameters to consider “under the hood”, but for now we’ll summarize the sign-up process along with their Quickstart Guide.

Aviationstack - review

First, you’ll need to create a free account. Navigate to aviationstack.com, and click “Sign Up Free” in the top-right corner of the window. This will take you to their pricing page, where several subscription packages are available. For now, just sign up for the Free tier–we’ll review the other options later on in this guide, and it’s easy enough to upgrade your account at any time.

Once you’ve entered your credentials, click “Sign Up” once again to create your account. From there, you’ll be presented with Aviationstack’s 3-Step Quickstart Guide. This is a broad overview of the process you’ll follow to get their API working for you.

  1. The first step deals with your API key, which you can use as-is, or rotate out as necessary. Simple!
  2. Next, you’ll choose your API endpoints. In plain English, that simply means you’ll choose which datasets Aviationstack delivers to your app. This is also where you’ll configure things like encryption, batch requests, etc. You’ll also see the API’s base URL: https://api.aviationstack.com/v1/ This is the address where your app will direct its requests for the data points we mentioned above. Aviationstack is kind enough to provide code for an example API request, as well.
  3. Finally, integration! Aviationstack links you to the full documentation where you can find comprehensive integration guides and more code examples. Obviously, complete app integration will take some doing, but these three steps stress how easy it is to pass the required milestones to make it happen.

Dashboard overview

Before getting into the nitty-gritty of understanding and configuring Aviationstack’s API endpoints, take a moment to browse your Dashboard. By default, you’ll see quick links to the 3-Step Quickstart Guide and their APT Documentation page. You can see your API access key here as well, plus reset it whenever you want.

Looking over to the sidebar, you’ll find:

  • Upgrade/Subscription Plan – A quick overview of the different pricing models and their respective benefits. This is also where you can see your billing period and quick stats of your API usage.
  • Account – Configure your basic identity and sign-in details here. Nothing too mysterious!
  • Payment – Easily manipulate your payment methods, and view past invoices for easy accounting.
  • API Usage – By far the most substantial sidebar option, here is where you’ll see how close you are to reaching your monthly quota for API requests. There’s also a handy readout for your historical usage statistics, designed to help you refine your strategy over time. You’ll also get Dashboard and email alerts whenever you exceed 75%, 90%, and 100% of your request quota (though they allow some wiggle-room up to 120% capacity to allow for the inevitable variability of real-world flights).


Here’s where things get interesting. Aviationstack’s documentation page is a massive trove of endpoints, parameters, configurations, and code. To cover every point fully is beyond the scope of this article, but we will provide you with descriptions of everything you need to know–some briefly, some more in depth.

We’re actually going to go out of order, covering the all-important API endpoints first.

About endpoints

So, we’ve mentioned endpoints over and over. Many of our readers will take this term in confident stride, while others may be left scratching their head at the lingo. Just so we’re all on the same page, it helps to think of API endpoints as specific categories of information your app can ask to receive from Aviationstack. The process of doing so is literally known as a “request”, and it generally looks like this:

    ? access_key = YOUR_ACCESS_KEY

You probably recognize the base API URL from earlier, which is simply the address where your app sends its request. Similarly, it’s easy to understand YOUR_ACCESS_KEY is where you input your assigned access key. But look at the end of the base URL. ENDPOINT is where you specify which information your app is requesting from Aviationstack.

Aviationstack’s API endpoints

Note: Most of these endpoints support 256-bit SSL encryption, JSONP Callbacks, results limits, and pagination offset. We’ll cover these after we touch on Aviationstack’s array of endpoints.

Here’s a brief rundown of each endpoint you can use:

  • Real-Time Flights – By appending /flights onto your base URL, you can request real-time information on any number of current flights. There are a ton of parameters to narrow down your request, but generally you can filter by various combinations of arrivals/departures, IATA/ICAO codes and flight numbers, min/max delays, and more. Here’s the example response provided by Aviationstack’s documentation:
    "pagination": {
        "limit": 100,
        "offset": 0,
        "count": 100,
        "total": 1669022
    "data": [
            "flight_date": "2019-12-12",
            "flight_status": "active",
            "departure": {
                "airport": "San Francisco International",
                "timezone": "America/Los_Angeles",
                "iata": "SFO",
                "icao": "KSFO",
                "terminal": "2",
                "gate": "D11",
                "delay": 13,
                "scheduled": "2019-12-12T04:20:00+00:00",
                "estimated": "2019-12-12T04:20:00+00:00",
                "actual": "2019-12-12T04:20:13+00:00",
                "estimated_runway": "2019-12-12T04:20:13+00:00",
                "actual_runway": "2019-12-12T04:20:13+00:00"
            "arrival": {
                "airport": "Dallas/Fort Worth International",
                "timezone": "America/Chicago",
                "iata": "DFW",
                "icao": "KDFW",
                "terminal": "A",
                "gate": "A22",
                "baggage": "A17",
                "delay": 0,
                "scheduled": "2019-12-12T04:20:00+00:00",
                "estimated": "2019-12-12T04:20:00+00:00",
                "actual": null,
                "estimated_runway": null,
                "actual_runway": null
            "airline": {
                "name": "American Airlines",
                "iata": "AA",
                "icao": "AAL"
            "flight": {
                "number": "1004",
                "iata": "AA1004",
                "icao": "AAL1004",
                "codeshared": null
            "aircraft": {
               "registration": "N160AN",
               "iata": "A321",
               "icao": "A321",
               "icao24": "A0F1BB"
            "live": {
                "updated": "2019-12-12T10:00:00+00:00",
                "latitude": 36.28560000,
                "longitude": -106.80700000,
                "altitude": 8846.820,
                "direction": 114.340,
                "speed_horizontal": 894.348,
                "speed_vertical": 1.188,
                "is_ground": false
  • Historical Flights – This is actually a parameter nested under the /flights endpoint, but bears mention on its own as a useful tool for parsing historical flight data. The format is YYYY-MM-DD, and can be requested alongside all other standard flights parameters.
  • Airline Routes – Appending /routes enables you to hone in on specific routes taken by individual flights or entire airlines. Filter by flight number, and/or IATA/ICAO code by departures/arrivals. A route will look something like this:
   "pagination": {
       "limit": 100,
       "offset": 0,
       "count": 100,
       "total": 208033
   "data": [
         "departure": {
            "airport": "Brussels Airport",
            "timezone": "Europe/Brussels",
            "iata": "BRU",
            "icao": "EBBR",
            "terminal": null,
            "time": "06:10:00"
         "arrival": {
            "airport": "Girona-Costa Brava",
            "timezone": "Europe/Madrid",
            "iata": "GRO",
            "icao": "LEGE",
            "terminal": "1",
            "time": "07:55:00"
         "airline": {
            "name": "Brussels Airlines",
            "callsign": "B-LINE",
            "iata": "SN",
            "icao": "BEL"
         "flight": {
            "number": "3683"
  • Airports – So long as you have the Basic plan or better, you can request info on /airports around the world. This endpoint also supports the search parameter, which lets you get autocomplete suggestions from string inputs. More on autocomplete below.
  • Airlines – Appending /airlines will allow you to collate info on your chosen airline. This endpoint supports the search parameter as well.
  • Airplanes – Want to grab data about specific aircraft? Here’s an example of what appending /airplanes will return:
   "pagination": {
       "limit": 100,
       "offset": 0,
       "count": 100,
       "total": 19052
   "data": [
         "registration_number": "YR-BAC",
         "production_line": "Boeing 737 Classic",
         "iata_type": "B737-300",
         "model_name": "737",
         "model_code": "B737-377",
         "icao_code_hex": "4A0823",
         "iata_code_short": "B733",
         "construction_number": "23653",
         "test_registration_number": null,
         "rollout_date": null,
         "first_flight_date": "1986-08-02T22:00:00.000Z",
         "delivery_date": "1986-08-21T22:00:00.000Z",
         "registration_date": "0000-00-00",
         "line_number": "1260",
         "plane_series": "377",
         "airline_iata_code": "0B",
         "airline_icao_code": null,
         "plane_owner": "Airwork Flight Operations Ltd",
         "engines_count": "2",
         "engines_type": "JET",
         "plane_age": "31",
         "plane_status": "active",
         "plane_class": null
  • Aircraft Types – For data on types of aircraft, append /aircraft_types to the base URL. The API response will return info on a wealth of different aircraft types, but if you want to narrow it down, we recommend you add the search parameter to type in specific models like DC-10, 737, or Cessna 172.
  • Aviation Taxes – You can easily source data on various aviation taxes with /taxes. Doing so will return the name of the tax, plus the associated IATA code. This endpoint also supports search for Basic customers and above.
  • Cities, Countries – Appending /cities or /countries will return valuable data on specific locations. You can view IATA/ISO codes, longitude/latitude, time zone, population, capital, currency, phone prefixes and more.

Other features

To help you control how data is requested and transmitted, the Aviationstack offers a few advanced options to customize your requests:

  • 256-bit HTTPS Encryption – While this is optional, Addictive Tips has written many articles on the virtues of encrypting, well… basically everything. Provided you have at least the Basic Aviationstack subscription, and security is something you value, there’s a simple way to alter your API request: simply replace http in the base API URL with https, like this: https://api.aviationstack.com. Doing so will shroud your communication with Aviationstack’s server in impenetrable 256-bit SSL encryption–the industry standard for good reason.
  • JSONP Callbacks – Cross-domain policies can get in the way of getting your API request returned. Evoking JSONP callbacks will bypass this issue, requesting an external script instead. In layman’s terms, this is a tool you can apply to cross roadblocks that may gum up transmission of vital data.
  • Autocomplete – This function is evoked adding the “search” parameter to your request. Essentially, if you don’t know the exact term for a specific aircraft, airport, or anything else, you can ask Aviationstack to meet you halfway. This creates a dialogue box where you can start typing plain English, and the API will interpret the string and suggest the proper nomenclature. It’s an extremely useful function, but is unavailable for Free subscribers. Supported endpoints include: /airports, /airlines, /airplanes, /aircraft_types, /taxes, /cities, /countries.
  • API Errors – As with anything, sometimes things go wrong with your API request. In this case, Aviationstack will return a JSON object containing a message describing the problem, along with the error code. You can also see the context wherein the error occurred, allowing you to more easily hone in on and squash the bug.


At this point, you should have a pretty good idea of what Aviationstack can do. But to truly grasp how powerful the API is, let’s consider how many data points are in Aviationstack’s network:

  • 10,000+ Airports
  • 13,000+ Airlines
  • 19,000+ Airplanes
  • 300+ Aircraft types
  • 9,000+ Cities
  • 250+ Countries
  • 500+ Aviation taxes

To put some of those numbers into context, according to the Airports Council International, there are around 17,000 airports globally. Additionally, estimates put the total number of active planes at around 39,000. Both figures take into consideration commercial and military infrastructure. When you consider Aviationstack’s piece of the pie focuses solely on civilian flights, you realize their API covers the vast majority of non-military flight activity worldwide.

Even setting its network aside, Aviationstack’s remains highly impressive. They report 99.9% uptime in the last 12 months, showing that they’re not just touting theoretical performance–they’ve got the stability to back it up. What’s more, the data returned by your requests is typically delayed by less than a minute, which is by all accounts extremely fast for a consumer SaaS product.

Perhaps most critically, these figures retain their fidelity no matter how big you scale up your requests. Whether you’re making just a few thousand requests a month or processing millions of data points per day, Aviationstack delivers fast, reliable performance 99.9% of the time. Just reach out to their support team with your requirements, and they’ll make it happen.


Aviationstack offers five tiers of service. Whether you’re running a startup, SMB, or enterprise, there’s a package to meet your needs in a cost-efficient way.

Pricing Plans That Fit Your Business

Let’s take a look:

  • Free – True to its name, this tier costs nothing to use. What’s more, you don’t even have to provide credit card details, so it’s best for anyone who wants to test out Aviationstack with no obligation. Free users have a 500/month API request quota, a personal license, and full access to Aviationstack’s massive trove of real-time aviation data. There’s limited customer support, so you’ll need to have some understanding of API integration to make good use of this tier.
  • Basic – $49.99 per month, with a $10 monthly discount for year-long subscriptions. This tier sees a significant step up in your request quota to 10,000 requests per month. You also get expanded access to real-time and historical data, plus info on airline routes. Crucially, you also unlock encryption and autocomplete, for a more secure and streamlined user experience overall. Basic subscribers get a commercial license, plus full access to Aviationstack’s incredible customer support.
  • Professional – $149.99 per month, with a $30 monthly discount for year-long subscriptions. What’s more, Aviationstack offers extended access limits for companies looking to scale up. The Professional tier their most popular package, and ideally suited for the vast majority of commercial applications. Monthly requests balloon to a quota of 50,000, and you have full access to real-time, historical, and airline route data. Encryption and autocomplete also come standard in this tier, along with a commercial license and comprehensive customer support.
  • Business – $499.99 per month, with a $100 monthly discount for year-long subscriptions. The Business tier includes everything in the Professional tier, except your quota skyrockets to 250,000 monthly requests. This is more than enough horsepower for anything but the largest enterprises.
  • Enterprise – If you’re looking for full-scale monitoring of the aviation industry, you’ll want to contact Aviationstack for a custom quote. Together, you will identify your estimated volume requests, and configure your subscription accordingly. Rest assured, Aviationstack is ready to deploy its considerable resources to achieve custom solutions to best fit your needs.


Aviationstack is the go-to solution for tracking real-time and historical flight data. Whether you’re building a novel startup, scaling a SMB, or expanding your enterprise, Aviationstack’s robust API has the performance and reliability you need to access mission-critical data. With Aviationstack, you can have your thumb on the pulse of nearly the entire civilian airline industry worldwide. No matter what your requirements, expert customer support is ready to make this API work for you.

Do you have any questions about the Aviationstack API? What sort of integrations do you have in store? Leave us a comment below.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.