# Flightradar24 API

> Flightradar24 workflow and API: flight status and airport flights. Returns status, airline, latitude and longitude as JSON.

Flightradar24 data from flightradar24.com: flight status and airport flights.

- Page: https://fous.com/tools/flightradar24
- Handle: `@flightradar24`
- Category: [Travel](https://fous.com/tools/category/travel)
- Source website: https://flightradar24.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 a flight’s public status and times by flight number and departure-airport date. Recent flight history and upcoming schedules only; aircraft details and live position may be unavailable for scheduled flights.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `date` | string | no | `"2026-09-28"` | Departure date at the origin airport, such as 2026-09-28. Defaults to today at the origin airport. |
| `flight_number` | string | yes | `"BA117"` | Flight number, such as BA117 or UA 901. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "flight_number"
  ],
  "properties": {
    "date": {
      "type": "string",
      "format": "date",
      "description": "Departure date at the origin airport, such as 2026-09-28. Defaults to today at the origin airport.",
      "examples": [
        "2026-09-28"
      ]
    },
    "flight_number": {
      "type": "string",
      "description": "Flight number, such as BA117 or UA 901.",
      "examples": [
        "BA117",
        "EK202"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "flight_number": "BA117"
    },
    {
      "date": "2026-09-28",
      "flight_number": "EK202"
    },
    {
      "date": "2026-09-28",
      "flight_number": "BA117"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `status` | string | `"delayed"` |  |
| `airline` | string or null | `"British Airways"` |  |
| `latitude` | number or null | `41.4002` |  |
| `longitude` | number or null | `-69.7671` |  |
| `registration` | string or null | `"G-VIIM"` |  |
| `aircraft_type` | string or null | `"Boeing 777-236(ER)"` |  |
| `altitude_feet` | number or null | `33925` |  |
| `delay_minutes` | integer or null | `21` |  |
| `flight_number` | string | `"BA117"` |  |
| `actual_arrival` | string or null | `"2026-09-28T10:48:17-04:00"` | Local airport time in ISO 8601 with UTC offset. |
| `actual_departure` | string or null | `"2026-09-28T23:26:27-04:00"` | Local airport time in ISO 8601 with UTC offset. |
| `estimated_arrival` | string or null | `"2026-09-29T19:53:28+04:00"` | Local airport time in ISO 8601 with UTC offset. |
| `scheduled_arrival` | string or null | `"2026-09-29T11:10:00-04:00"` | Local airport time in ISO 8601 with UTC offset. |
| `flightradar24_link` | string | `"https://www.flightradar24.com/data/flights/ba117"` |  |
| `ground_speed_knots` | number or null | `549` |  |
| `estimated_departure` | string or null | `"2026-09-29T08:41:00+01:00"` | Local airport time in ISO 8601 with UTC offset. |
| `origin_airport_code` | string or null | `"LHR"` |  |
| `origin_airport_name` | string or null | `"London Heathrow Airport, United Kingdom"` |  |
| `scheduled_departure` | string or null | `"2026-09-29T08:20:00+01:00"` | Local airport time in ISO 8601 with UTC offset. |
| `flightradar24_flight_id` | string or null | `"41e2568e"` |  |
| `destination_airport_code` | string or null | `"JFK"` |  |
| `destination_airport_name` | string or null | `"New York John F. Kennedy International Airport, United States"` |  |
| `icao_24_bit_aircraft_code` | string or null | `"8963E4"` |  |

**Example input**

```json
{
  "flight_number": "BA117"
}
```

**Example output**

```json
{
  "status": "delayed",
  "airline": "British Airways",
  "latitude": null,
  "longitude": null,
  "registration": "G-VIIM",
  "aircraft_type": "Boeing 777-236(ER)",
  "altitude_feet": null,
  "delay_minutes": 21,
  "flight_number": "BA117",
  "actual_arrival": null,
  "actual_departure": null,
  "estimated_arrival": null,
  "scheduled_arrival": "2026-09-29T11:10:00-04:00",
  "flightradar24_link": "https://www.flightradar24.com/data/flights/ba117",
  "ground_speed_knots": null,
  "estimated_departure": "2026-09-29T08:41:00+01:00",
  "origin_airport_code": "LHR",
  "origin_airport_name": "London Heathrow Airport, United Kingdom",
  "scheduled_departure": "2026-09-29T08:20:00+01:00",
  "flightradar24_flight_id": null,
  "destination_airport_code": "JFK",
  "destination_airport_name": "New York John F. Kennedy International Airport, United States",
  "icao_24_bit_aircraft_code": 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 upcoming departures or arrivals at an airport, with local flight times, airline, route, status and aircraft. Uses the public airport board; some flights may lack an estimate or tracking ID.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `airport` | string | yes | `"Dubai"` | Airport name, city or 3-letter code, for example Heathrow, Dubai or JFK. |
| `direction` | string | no | `"arrivals"` | Board direction, for example arrivals; defaults to departures. |
| `max_results` | integer | no | `8` | Maximum number of flights to return, for example 25. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "airport"
  ],
  "properties": {
    "airport": {
      "type": "string",
      "description": "Airport name, city or 3-letter code, for example Heathrow, Dubai or JFK.",
      "examples": [
        "Dubai",
        "Heathrow",
        "NHD"
      ]
    },
    "direction": {
      "enum": [
        "departures",
        "arrivals"
      ],
      "type": "string",
      "default": "departures",
      "description": "Board direction, for example arrivals; defaults to departures.",
      "examples": [
        "arrivals",
        "departures"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of flights to return, for example 25.",
      "x-fous-developer": true,
      "examples": [
        8,
        25,
        100
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "airport": "Dubai",
      "direction": "arrivals",
      "max_results": 8
    },
    {
      "airport": "Heathrow",
      "direction": "departures",
      "max_results": 25
    },
    {
      "airport": "NHD",
      "direction": "departures"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `flights` | array |  | Flights in scheduled time order starting now. |
| `flights[].status` | string | `"Estimated 08:02"` | Flight status in words. |
| `flights[].airline` | string or null | `"Emirates"` | Operating airline. |
| `flights[].flight_id` | string or null | `"41e1500b"` | Flightradar24 tracking ID when available. |
| `flights[].page_link` | string | `"https://www.flightradar24.com/data/flights/ek194#41e1500b"` | Flightradar24 page for this flight. |
| `flights[].aircraft_type` | string or null | `"B77W"` | Aircraft type shown on the board. |
| `flights[].flight_number` | string or null | `"EK194"` | Published flight number. |
| `flights[].scheduled_time` | string or null | `"2026-09-29T08:05:00+04:00"` | Scheduled local time in ISO 8601 with UTC offset. |
| `flights[].other_airport_code` | string or null | `"LIS"` | IATA code of the other airport. |
| `flights[].other_airport_name` | string or null | `"Lisbon Humberto Delgado Airport"` | Destination for departures or origin for arrivals. |
| `flights[].estimated_or_actual_time` | string or null | `"2026-09-29T08:02:33+04:00"` | Estimated or actual local time in ISO 8601 with UTC offset, if available. |
| `direction` | string | `"arrivals"` | Board direction. |
| `airport_code` | string | `"DXB"` | IATA airport code. |
| `airport_name` | string | `"Dubai International Airport"` | Resolved airport name. |

**Example input**

```json
{
  "airport": "Dubai",
  "direction": "arrivals",
  "max_results": 8
}
```

**Example output**

```json
{
  "flights": [
    {
      "status": "Estimated 08:02",
      "airline": "Emirates",
      "flight_id": "41e1500b",
      "page_link": "https://www.flightradar24.com/data/flights/ek194#41e1500b",
      "aircraft_type": "B77W",
      "flight_number": "EK194",
      "scheduled_time": "2026-09-29T08:05:00+04:00",
      "other_airport_code": "LIS",
      "other_airport_name": "Lisbon Humberto Delgado Airport",
      "estimated_or_actual_time": "2026-09-29T08:02:33+04:00"
    },
    {
      "status": "Landed",
      "airline": "Emirates",
      "flight_id": "41e031d4",
      "page_link": "https://www.flightradar24.com/data/flights/ek232#41e031d4",
      "aircraft_type": "B77W",
      "flight_number": "EK232",
      "scheduled_time": "2026-09-29T08:05:00+04:00",
      "other_airport_code": "IAD",
      "other_airport_name": "Washington Dulles International Airport",
      "estimated_or_actual_time": "2026-09-29T07:37:03+04:00"
    },
    {
      "status": "Landed",
      "airline": "Emirates",
      "flight_id": "41e11883",
      "page_link": "https://www.flightradar24.com/data/flights/ek331#41e11883",
      "aircraft_type": "B77W",
      "flight_number": "EK331",
      "scheduled_time": "2026-09-29T08:05:00+04:00",
      "other_airport_code": "MNL",
      "other_airport_name": "Manila Ninoy Aquino International Airport",
      "estimated_or_actual_time": "2026-09-29T07:47:50+04:00"
    }
  ],
  "direction": "arrivals",
  "airport_code": "DXB",
  "airport_name": "Dubai International Airport"
}
```

## 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": "@flightradar24",
  "visibility": "public",
  "operation": "check_flight_status",
  "version": 1,
  "input": {
    "flight_number": "BA117"
  },
  "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\": \"@flightradar24\",\n  \"visibility\": \"public\",\n  \"operation\": \"check_flight_status\",\n  \"version\": 1,\n  \"input\": {\n    \"flight_number\": \"BA117\"\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": "@flightradar24",
  "visibility": "public",
  "operation": "check_flight_status",
  "version": 1,
  "input": {
    "flight_number": "BA117"
  },
  "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/flightradar24`
- 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.
- `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-flightradar24 https://api.fous.com/mcp/tools/flightradar24 --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.

## 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 Flightradar24 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 Flightradar24 account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from flightradar24.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.

## Related

- [FlightAware API](https://fous.com/tools/flightaware.md): FlightAware provides public flight status and dated flight details, airport arrivals and departures limited to displayed history and 20 flights per direction, plus today’s delays and cancellations when shown.
- [FAA API](https://fous.com/tools/faa.md): Federal Aviation Administration airport status and air traffic information.
- [Amtrak API](https://fous.com/tools/amtrak.md): Amtrak passenger train travel and status.
- [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.
- [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.
- [TSA Wait Times API](https://fous.com/tools/tsa-wait-times.md): Security wait time estimates at US airports.
- [Trip.com API](https://fous.com/tools/trip-com.md): Trip.com offers hotel and flight bookings, with hotel listings limited to initial public results and prices and fares subject to change.
- [All Travel tools](https://fous.com/tools/category/travel)
