Related Commercial Information: Live ADS-B Flight Data Feed (Worldwide)
Firehose is a FlightAware API for receiving streaming flight positions (e.g., RADAR, ADS-B, Mode S multilateration (MLAT), datalink, etc) as well as flight status data (e.g., flight plans, departure/arrival messages, flight updates) and surface movement positions. This page defines a protocol for establishing a connection and receiving data from the Firehose interface.
If you have a question that is not answered by this document, please check our frequently asked questions to see if your topic has already been answered there before contacting your account representative for support.
All requests must include a username and FlightXML API Key (don't have one?). In addition to obtaining an API Key, the user's account must be specially enabled by a FlightAware representative for access to the firehose service.
If you have a firewall that needs authorization, then please authorize both of the CIDR network block ranges:
A customer's application will connect via a TCP socket secured with Secure Socket Layer/Transport Layer Security (SSL/TLS) protocol to FlightAware. The port for downlink connections will be 1501. The hostname will be firehose.flightaware.com, unless FlightAware has instructed the customer otherwise.
On the downlink connection customer's application will send an initiation command followed by a newline character, to specify the credentials, time range, and any filtering of messages to be provided, and both sides will keep the connection open indefinitely for FlightAware to send messages to the customer as they become available. If an error in the syntax or credentials of the initiation command occurs, the firehose server will transmit an error message and disconnect.
The customer's application should be designed to detect socket disconnection and attempt to reconnect to the FlightAware server when necessary. It is also recommended to have an idle connection handler that will disconnect and reconnect if no messages have been received in the last 5 minutes. When reconnecting to the FlightAware server, the "pitr" or "range" initiation command can be used to resume playback from the pitr timestamp of the last received message, if desired.
An important initial diagnostic technique is to confirm your outbound network connectivity over the necessary port number. For testing and development purposes, the OpenSSL command-line tools can be used to check the ability to open a SSL/TLS connection to FlightAware:
openssl s_client -host firehose.flightaware.com -port 1501 -tls1
If the connection is successfully established, OpenSSL will display the server's certificate information and then pause. Should it fail to connect, contact your network administrator to ensure that your application server has access to make outbound TCP connections on port 1501 to the FlightAware datacenter.
Initiation Command Options
Example downlink initiation commands:
Your access level will consist of any combination of the following data layers:
Please ask a FlightAware representative if you would like access to additional data layers. Firehose is billed at a monthly rate for unlimited use, dependent on what data layers you choose to access and the scope of how you repurpose/redistribute the data within your application. Discounts are available for long-term commitment, up-front payment, and/or public attribution to FlightAware.
Firehose can also be used in conjunction with FlightAware Global for added satellite uplinks and EUROCONTROL data. Other aircraft operator's data can be integrated as well: read about Improving Tracking of Your Flights on FlightAware.
*Australia RADAR and ADS-B is only available for internal consumption (e.g., not for redistribution to third parties beyond yourself).
For more information on FlightAware's position data coverage, please see FlightAware's coverage map.
Messages have three categories of data fields, "Mandatory", "Common", "Optional":