# FlightAware API

> FlightAware returns flight status, airport flight boards, and delay data as a workflow and API.

FlightAware checks an airline flight number and departure date for flight status, times, route, and aircraft details. FlightAware lists airport arrivals or departures using an airport name, city, code, or link, with an optional direction and result count. FlightAware checks airport delays, cancellations, weather, and reported ground programs using an airport name or code.

- Page: https://fous.com/tools/flightaware
- Handle: `@flightaware`
- Category: [Travel](https://fous.com/tools/category/travel)
- Source website: https://flightaware.com
- Last verified: Sep 29, 2026

## Methods

### Check flight status

Operation `check_flight_status`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Check the public status and flight details for an airline flight number on a departure date. Dates outside the displayed flight history may not be available.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `date` | string | no | `"2026-09-27"` | Departure date at the departure airport, for example 2026-09-28. Defaults to today at that airport. |
| `flight` | string | yes | `"BA 283"` | Airline name or code and flight number, for example United 1234 or BA 283. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "flight"
  ],
  "properties": {
    "date": {
      "type": "string",
      "format": "date",
      "description": "Departure date at the departure airport, for example 2026-09-28. Defaults to today at that airport.",
      "examples": [
        "2026-09-27",
        "2026-09-28"
      ]
    },
    "flight": {
      "type": "string",
      "description": "Airline name or code and flight number, for example United 1234 or BA 283.",
      "examples": [
        "BA 283",
        "UA1234",
        "United 1234"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "date": "2026-09-27",
      "flight": "BA 283"
    },
    {
      "flight": "UA1234"
    },
    {
      "date": "2026-09-28",
      "flight": "United 1234"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `status` | string or null | `"Landed"` | Flight status in plain words. |
| `airline_name` | string or null | `"British Airways"` | Airline name. |
| `arrival_gate` | string or null | `"157"` | Arrival gate. |
| `aircraft_type` | string or null | `"Boeing 777-300ER"` | Aircraft model in words. |
| `baggage_claim` | string or null |  | Baggage claim, if displayed. |
| `flight_number` | string | `"BA283"` | Airline flight number, for example UA1234. |
| `actual_arrival` | string or null | `"2026-09-27T14:12:00-07:00"` | Actual gate arrival time, with airport local offset. |
| `departure_gate` | string or null | `"C65"` | Departure gate. |
| `actual_departure` | string or null | `"2026-09-27T10:45:00+01:00"` | Actual gate departure time, with airport local offset. |
| `arrival_terminal` | string or null | `"B"` | Arrival terminal. |
| `flightaware_link` | string | `"https://www.flightaware.com/live/flight/BAW283/history/20260927/0940Z/EGLL/KLAX"` | FlightAware page for this flight. |
| `estimated_arrival` | string or null | `"2026-09-27T14:10:00-07:00"` | Estimated gate arrival time, with airport local offset. |
| `scheduled_arrival` | string or null | `"2026-09-27T13:50:00-07:00"` | Scheduled gate arrival time, with airport local offset. |
| `departure_terminal` | string or null | `"5"` | Departure terminal. |
| `estimated_departure` | string or null | `"2026-09-27T10:40:00+01:00"` | Estimated gate departure time, with airport local offset. |
| `origin_airport_code` | string or null | `"LHR"` | Departure airport IATA code, or ICAO code if IATA is unavailable. |
| `origin_airport_name` | string or null | `"London Heathrow"` | Departure airport name. |
| `scheduled_departure` | string or null | `"2026-09-27T10:30:00+01:00"` | Scheduled gate departure time, with airport local offset. |
| `route_distance_miles` | number or null | `4999` | Route distance in miles. |
| `aircraft_registration` | string or null |  | Aircraft registration, if displayed. |
| `arrival_delay_minutes` | integer or null | `22` | Minutes late at arrival; negative means early. |
| `flightaware_flight_id` | string or null | `"BAW283-1790315269-airline-1943p:0"` | FlightAware flight ID. |
| `departure_delay_minutes` | integer or null | `15` | Minutes late at departure; negative means early. |
| `destination_airport_code` | string or null | `"LAX"` | Arrival airport IATA code, or ICAO code if IATA is unavailable. |
| `destination_airport_name` | string or null | `"Los Angeles Intl"` | Arrival airport name. |

**Example input**

```json
{
  "date": "2026-09-27",
  "flight": "BA 283"
}
```

**Example output**

```json
{
  "status": "Landed",
  "airline_name": "British Airways",
  "arrival_gate": "157",
  "aircraft_type": "Boeing 777-300ER",
  "baggage_claim": null,
  "flight_number": "BA283",
  "actual_arrival": "2026-09-27T14:12:00-07:00",
  "departure_gate": "C65",
  "actual_departure": "2026-09-27T10:45:00+01:00",
  "arrival_terminal": "B",
  "flightaware_link": "https://www.flightaware.com/live/flight/BAW283/history/20260927/0940Z/EGLL/KLAX",
  "estimated_arrival": "2026-09-27T14:10:00-07:00",
  "scheduled_arrival": "2026-09-27T13:50:00-07:00",
  "departure_terminal": "5",
  "estimated_departure": "2026-09-27T10:40:00+01:00",
  "origin_airport_code": "LHR",
  "origin_airport_name": "London Heathrow",
  "scheduled_departure": "2026-09-27T10:30:00+01:00",
  "route_distance_miles": 4999,
  "aircraft_registration": null,
  "arrival_delay_minutes": 22,
  "flightaware_flight_id": "BAW283-1790315269-airline-1943p:0",
  "departure_delay_minutes": 15,
  "destination_airport_code": "LAX",
  "destination_airport_name": "Los Angeles Intl"
}
```

### Get airport delays

Operation `get_airport_delays`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Check today’s delayed and cancelled departures and arrivals at an airport, plus current weather and reported airport delay status. Delay averages and active FAA ground programs are returned only when shown; counts may be unavailable for airports without a displayed statistics row.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `airport` | string | yes | `"Newark"` | City, airport name or airport code, for example Newark or EWR. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "airport"
  ],
  "properties": {
    "airport": {
      "type": "string",
      "description": "City, airport name or airport code, for example Newark or EWR.",
      "examples": [
        "Newark",
        "KLAS"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "airport": "Newark"
    },
    {
      "airport": "KLAS"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `date` | string | `"2026-09-28"` | Date for today’s statistics in the FlightAware U.S. Eastern reporting day. |
| `wind` | string or null | `"Light winds"` | Current wind description shown by FlightAware. |
| `airport_code` | string | `"EWR"` | Airport code displayed by FlightAware. |
| `airport_name` | string | `"Newark Liberty Intl"` | Airport name. |
| `temperature_f` | number or null | `62` | Current temperature in degrees Fahrenheit. |
| `flightaware_link` | string | `"https://www.flightaware.com/live/airport/KEWR"` | FlightAware airport page link. |
| `weather_conditions` | string or null | `"Partly cloudy"` | Current weather conditions shown by FlightAware. |
| `arrivals_delayed_count` | integer or null | `64` | Delayed arrivals today. |
| `arrivals_cancelled_count` | integer or null | `10` | Cancelled arrivals today. |
| `arrivals_delayed_percent` | number or null | `10` | Percent of arrivals delayed today. |
| `departures_delayed_count` | integer or null | `51` | Delayed departures today. |
| `active_faa_ground_program` | string or null |  | Current FAA ground delay or ground stop, when reported. |
| `faa_ground_program_reason` | string or null |  | Reason or status details for an active ground program, when reported. |
| `arrivals_cancelled_percent` | number or null | `1` | Percent of arrivals cancelled today. |
| `departures_cancelled_count` | integer or null | `8` | Cancelled departures today. |
| `departures_delayed_percent` | number or null | `8` | Percent of departures delayed today. |
| `departures_cancelled_percent` | number or null | `1` | Percent of departures cancelled today. |
| `average_arrival_delay_minutes` | integer or null | `63` | Reported current average airborne arrival delay in minutes, when shown. |
| `average_departure_delay_minutes` | integer or null |  | Reported current average departure delay in minutes, when shown. |

**Example input**

```json
{
  "airport": "Newark"
}
```

**Example output**

```json
{
  "date": "2026-09-28",
  "wind": "Light winds",
  "airport_code": "EWR",
  "airport_name": "Newark Liberty Intl",
  "temperature_f": 62,
  "flightaware_link": "https://www.flightaware.com/live/airport/KEWR",
  "weather_conditions": "Partly cloudy",
  "arrivals_delayed_count": 64,
  "arrivals_cancelled_count": 10,
  "arrivals_delayed_percent": 10,
  "departures_delayed_count": 51,
  "active_faa_ground_program": null,
  "faa_ground_program_reason": null,
  "arrivals_cancelled_percent": 1,
  "departures_cancelled_count": 8,
  "departures_delayed_percent": 8,
  "departures_cancelled_percent": 1,
  "average_arrival_delay_minutes": null,
  "average_departure_delay_minutes": null
}
```

### List airport flights

Operation `list_airport_flights`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List the public arrivals or departures shown for an airport, with flight times and status when available. For a city with several airports, selects the busiest listed airport and notes the choice. The public board shows up to 20 flights per direction; additional flights require sign-in.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `airport` | string | yes | `"Chicago"` | Airport name, city, IATA code, ICAO code or FlightAware airport link, such as Chicago O'Hare, Chicago, ORD, or Heathrow. |
| `direction` | string | no | `"departures"` | Which board to show, for example arrivals. |
| `max_results` | integer | no | `5` | Maximum flights to return, for example 10. Public boards show up to 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "airport"
  ],
  "properties": {
    "airport": {
      "type": "string",
      "description": "Airport name, city, IATA code, ICAO code or FlightAware airport link, such as Chicago O'Hare, Chicago, ORD, or Heathrow.",
      "examples": [
        "Chicago",
        "Heathrow"
      ]
    },
    "direction": {
      "enum": [
        "departures",
        "arrivals"
      ],
      "type": "string",
      "default": "departures",
      "description": "Which board to show, for example arrivals.",
      "examples": [
        "departures",
        "arrivals"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum flights to return, for example 10. Public boards show up to 20.",
      "x-fous-developer": true,
      "examples": [
        5,
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "airport": "Chicago",
      "direction": "departures",
      "max_results": 5
    },
    {
      "airport": "Heathrow",
      "direction": "arrivals",
      "max_results": 3
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `flights` | array |  |  |
| `flights[].city` | string or null | `"Zurich"` | Destination city for departures, origin city for arrivals. |
| `flights[].status` | string or null | `"Departed"` |  |
| `flights[].airline` | string or null | `"Swiss"` |  |
| `flights[].flight_link` | string | `"https://www.flightaware.com/live/flight/SWR9/history/20260929/0015Z/KORD/LSZH"` |  |
| `flights[].airport_code` | string or null | `"ZRH"` | Destination airport code for departures, origin airport code for arrivals. |
| `flights[].aircraft_type` | string or null | `"BOEING 777-300ER (twin-jet)"` |  |
| `flights[].flight_number` | string or null | `"SWR9"` |  |
| `flights[].scheduled_time` | string or null | `"2026-09-28T19:05:00-05:00"` | Scheduled departure or arrival time, ISO 8601 with offset. |
| `flights[].estimated_or_actual_time` | string or null | `"2026-09-28T19:04:00-05:00"` | Latest estimated or actual departure or arrival time, ISO 8601 with offset. |
| `airport_code` | string | `"ORD"` |  |
| `airport_name` | string | `"Chicago O'Hare Intl"` |  |
| `airport_selection_note` | string or null | `"Selected the busiest listed airport for Chicago: Chicago O'Hare Intl."` | Notes when the busiest airport was chosen for a city. |

**Example input**

```json
{
  "airport": "Chicago",
  "direction": "departures",
  "max_results": 5
}
```

**Example output**

```json
{
  "flights": [
    {
      "city": "Zurich",
      "status": "Departed",
      "airline": "Swiss",
      "flight_link": "https://www.flightaware.com/live/flight/SWR9/history/20260929/0015Z/KORD/LSZH",
      "airport_code": "ZRH",
      "aircraft_type": "BOEING 777-300ER (twin-jet)",
      "flight_number": "SWR9",
      "scheduled_time": "2026-09-28T19:05:00-05:00",
      "estimated_or_actual_time": "2026-09-28T19:04:00-05:00"
    },
    {
      "city": "New Haven",
      "status": "Departed",
      "airline": "Avelo Airlines",
      "flight_link": "https://www.flightaware.com/live/flight/VXP422/history/20260929/0027Z/KORD/KHVN",
      "airport_code": "HVN",
      "aircraft_type": "Boeing 737-800 (twin-jet)",
      "flight_number": "VXP422",
      "scheduled_time": "2026-09-28T19:17:00-05:00",
      "estimated_or_actual_time": "2026-09-28T19:01:00-05:00"
    },
    {
      "city": "San Francisco",
      "status": "Departed",
      "airline": "United",
      "flight_link": "https://www.flightaware.com/live/flight/UAL649/history/20260928/2335Z/KORD/KSFO",
      "airport_code": "SFO",
      "aircraft_type": "Airbus A321neo (twin-jet)",
      "flight_number": "UAL649",
      "scheduled_time": "2026-09-28T18:25:00-05:00",
      "estimated_or_actual_time": "2026-09-28T19:01:00-05:00"
    }
  ],
  "airport_code": "ORD",
  "airport_name": "Chicago O'Hare Intl",
  "airport_selection_note": "Selected the busiest listed airport for Chicago: Chicago O'Hare Intl."
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@flightaware",
  "visibility": "public",
  "operation": "check_flight_status",
  "version": 1,
  "input": {
    "date": "2026-09-27",
    "flight": "BA 283"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@flightaware\",\n  \"visibility\": \"public\",\n  \"operation\": \"check_flight_status\",\n  \"version\": 1,\n  \"input\": {\n    \"date\": \"2026-09-27\",\n    \"flight\": \"BA 283\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@flightaware",
  "visibility": "public",
  "operation": "check_flight_status",
  "version": 1,
  "input": {
    "date": "2026-09-27",
    "flight": "BA 283"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/flightaware`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `check_flight_status`: Check flight status. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_airport_delays`: Get airport delays. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_airport_flights`: List airport flights. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-flightaware https://api.fous.com/mcp/tools/flightaware --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Track a flight’s status and gate times
- Review arrivals or departures at an airport
- Monitor airport delays and cancellations
- Compare delay and cancellation counts across airports
- Check whether an airport has a reported ground program

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this FlightAware tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a FlightAware account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from flightaware.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What is the status of a specific flight?

Use Check flight status with an airline name or code, flight number, and departure date.

### Which flights are arriving or departing at an airport?

Use List airport flights with an airport and, optionally, a direction and maximum result count.

### How many flights are delayed or cancelled at an airport?

Use Get airport delays with a city, airport name, or airport code.

## Related

- [Flightradar24 API](https://fous.com/tools/flightradar24.md): Flightradar24 provides live flight tracking, recent history, flight status and times, plus upcoming airport departures and arrivals; history and schedules are limited to recent and upcoming flights.
- [FAA API](https://fous.com/tools/faa.md): Federal Aviation Administration airport status and air traffic information.
- [Expedia API](https://fous.com/tools/expedia.md): Expedia helps travelers find hotels, vacation stays, and travel deals, with hotel prices and flight options for selected destinations and dates; flight listings may be limited.
- [Amtrak API](https://fous.com/tools/amtrak.md): Amtrak passenger train travel and status.
- [TSA Wait Times API](https://fous.com/tools/tsa-wait-times.md): Security wait time estimates at US airports.
- [Kayak API](https://fous.com/tools/kayak.md): Kayak compares flight and hotel prices across booking sites and current rental car offers; hotel rates assume two adults per room and cover public location pages, while prices and availability can change at booking.
- [Google Flights API](https://fous.com/tools/google-flights.md): Google Flights returns route schedules, public fares, monthly lowest prices, and flight or destination options with times, stops, emissions, and fares that may change.
- [Ryanair API](https://fous.com/tools/ryanair.md): Ryanair provides flights and fares, including lowest one-way prices by destination or day for selected dates; prices and availability can change.
- [All Travel tools](https://fous.com/tools/category/travel)
