Flight Status Feed API

The Flight Status Feed API provides all of FlightStats’ worldwide flight records. Every commercial scheduled flight is added to our system as a Flight Status record and updated multiple times. This API is a complete set of all those Flight Status records along with all updates. A record will typically get its first status update on create approximately 3 days before departure and the feed will show updates to the flight as they happen until the flight is complete.

The feed is a stream of the changes to flight records, not a lookup mechanism. For Flight lookups, please see the Flight Status APIs.

Updates to our entire data set occur about once every six seconds on average throughout the day. The Flight Status Feed is throttled to 3000 requests per minute per user account as a safeguard against runaway processes that could slow down the entire system. To reduce the chance of hitting the rate limiter, your software will need to sleep 10 seconds if you see an empty /next operation.

Reference Data

The airline, airport, and equipment codes found in the Flight Status Feed can be resolved with our reference APIs.

Workflow

There are two types of requests made to this API. You need to make a call to fetch an available list of flight status payloads and then use the urls provided to retrieve the flight statuses themselves. The “list of items” request has three resource options:

  • latest
  • next/{count}
  • previous/{count}

Sample Latest Payload

Sample List Payload

Each unique url is used to request a payload that contains one-to-many flight statuses. The response contains the request and list of flightStatus

Sample Flight Statuses Payloads

Use Cases

Case #1: Starting at a given point in time.

  1. Request 'latest'
  2. Request and process payload of the 'latest' unique url
  3. Using the same unique url, request the next/'n' list
  4. Loop through this list of unique urls, requesting and processing the flight status payloads
  5. When finished use the last unique url to request the next/'n'
  6. Continue
Note: If you request next/100 and our system only has 75 available it will return 75 unique urls. If it returns 0 urls, then there are no items in the feed after that particular item. This is a common situation since a typical scenario is to ask for new entries every 10-15 seconds and it's possible no new entries have been added since the last request.

Case #2: Recovery

  1. Using the unique url of the last successfully processed payload, request the next/’n’
  2. Loop through these unique urls and until finished and request next/’n’

Case #3: Simultaneous Retrieval

The list of unique urls is immutable so you can retrieve multiple flight status payloads simultaneously (e.g. via multiple threads or processes) without fear of duplication or missing data.

Notes About Flight Status Payloads

Each flight status record can be updated multiple times. Each update creates a new entry in the Flight Status Feed. All updates are included with the payload so that the latest flight status has the complete set of changes within it.

Interactive Use

In order to use the Flight Status Feed API, you need to establish an account within the Cirium Developer Center. Once you have completed the signup process, a Cirium representative will configure your account and application and notify you that you have been approved. To retrieve your credentials, log into your account at the Developer Center and go to the Dashboard to view your applications. You will need your appId and appKey from this interface.

Construct a ‘latest’ request with your credentials and use a browser or other tool of your choice to pull back live data from our system. If you are using a browser, you will need to append your credentials to each request.

Pattern

https://api.flightstats.com/flex/flightstatusfeed/rest/v2/{format}/latest?appId=xxx&appKey=xxx
API Links:
REST: WADL | XSD | JSON

Open Source Java Client for the Flight Status Feed

This open source code provides a pattern for how to consume the Flight Status Feed. See the README file for more details.