CLI¤
List all commands and show help:
$ fr24 --help
Usage: fr24 [OPTIONS] COMMAND [ARGS]...
Options:
--install-completion Install completion for the current shell.
--show-completion Show completion for the current shell, to copy it or
customize the installation.
--help Show this message and exit.
Commands:
dirs Shows relevant directories
tui Starts the TUI
flight-list Fetch the flight list.
flight-list-all Fetch all pages of the flight list.
playback Fetch the playback data for a flight.
live-feed Fetch the live feed.
live-feed-playback Fetch a playback of the live feed.
nearest-flights Fetch the nearest flights.
live-flights-status Fetch the live flights status.
flight-details Fetch flight details.
top-flights Fetch the top flights.
playback-flight Fetch playback flight details.
auth Commands for authentication
live-feed
& live-feed-playback
¤
Dump the current (or playback of) live feed data.
fr24 live-feed --help
# by default, parquet
fr24 live-feed --bounding-box "42.0,52.0,-8.0,10.0"
# write to stdout in csv format
fr24 live-feed --bounding-box "42.0,52.0,-8.0,10.0" --format csv -o -
# at a specific time
fr24 live-feed-playback --bounding-box "42.0,52.0,-8.0,10.0" --timestamp "2024-01-01T12:00:00"
$ fr24 live-feed --help
Usage: fr24 [OPTIONS]
Fetch the live feed.
Options:
--bounding-box SOUTH,NORTH,WEST,EAST
Example (france UIR): `42.0, 52.0, -8.0,
10.0` [required]
--stats / --no-stats Whether to include stats in the given area.
[default: no-stats]
--limit INTEGER Maximum number of flights (should be set to
1500 for unauthorized users, 2000 for
authorized users). [default: 1500]
--maxage INTEGER Maximum time since last message update,
seconds. [default: 14400]
--fields [flight|reg|route|type|squawk|vspeed|airspace|logo_id|age]
Fields to include. For unauthenticated
users, a maximum of 4 fields can be
included. When authenticated, `squawk`,
`vspeed`, `airspace`, `logo_id` and `age`
can be included. [default: {'reg',
'flight', 'route', 'type'}]
-o, --output FILEPATH|CACHE|- Save results to a specific filepath. If `-`,
results will be printed to stdout. If
`cache`, results will be saved to the
default cache. [default:
live_feed.parquet]
-f, --format [parquet|csv] Output format [default: parquet]
--when-file-exists [backup|error|overwrite]
Action when output file path already exists.
[default: backup]
--help Show this message and exit.
$ fr24 live-feed-playback --help
Usage: fr24 [OPTIONS]
Fetch a playback of the live feed.
Options:
--bounding-box SOUTH,NORTH,WEST,EAST
Example (france UIR): `42.0, 52.0, -8.0,
10.0` [required]
--stats / --no-stats Whether to include stats in the given area.
[default: no-stats]
--limit INTEGER Maximum number of flights (should be set to
1500 for unauthorized users, 2000 for
authorized users). [default: 1500]
--maxage INTEGER Maximum time since last message update,
seconds. [default: 14400]
--fields [flight|reg|route|type|squawk|vspeed|airspace|logo_id|age]
Fields to include. For unauthenticated
users, a maximum of 4 fields can be
included. When authenticated, `squawk`,
`vspeed`, `airspace`, `logo_id` and `age`
can be included. [default: {'reg',
'flight', 'route', 'type'}]
--timestamp TIMESTAMP_S Start timestamp [default: now]
--duration INTEGER Duration of prefetch,
`floor(7.5*(multiplier))` seconds For 1x
playback, this should be 7 seconds.
[default: 7]
--hfreq INTEGER High frequency mode
-o, --output FILEPATH|CACHE|- Save results to a specific filepath. If `-`,
results will be printed to stdout. If
`cache`, results will be saved to the
default cache. [default:
live_feed_playback.parquet]
-f, --format [parquet|csv] Output format [default: parquet]
--when-file-exists [backup|error|overwrite]
Action when output file path already exists.
[default: backup]
--help Show this message and exit.
$ fr24 live-feed --bounding-box "42.0,52.0,-8.0,10.0"
[00:00:00] INFO using environment `subscription_key` and __init__.py:98
`token`
[00:00:00] INFO HTTP Request: POST _client.py:1740
https://data-feed.flightradar24.com/fr24.fee
d.api.v1.Feed/LiveFeed "HTTP/2 200 OK"
INFO wrote 982 rows to utils.py:229
`/home/user/live_feed.parquet`
$ duckdb -c "describe select * from 'live_feed.parquet';"
┌─────────────────┬──────────────────────┬─────────┬───┬─────────┬─────────┐
│ column_name │ column_type │ null │ … │ default │ extra │
│ varchar │ varchar │ varchar │ │ varchar │ varchar │
├─────────────────┼──────────────────────┼─────────┼───┼─────────┼─────────┤
│ timestamp │ TIMESTAMP WITH TIM… │ YES │ … │ NULL │ NULL │
│ flightid │ UINTEGER │ YES │ … │ NULL │ NULL │
│ latitude │ FLOAT │ YES │ … │ NULL │ NULL │
│ longitude │ FLOAT │ YES │ … │ NULL │ NULL │
│ track │ USMALLINT │ YES │ … │ NULL │ NULL │
│ altitude │ INTEGER │ YES │ … │ NULL │ NULL │
│ ground_speed │ SMALLINT │ YES │ … │ NULL │ NULL │
│ on_ground │ BOOLEAN │ YES │ … │ NULL │ NULL │
│ callsign │ VARCHAR │ YES │ … │ NULL │ NULL │
│ source │ UTINYINT │ YES │ … │ NULL │ NULL │
│ registration │ VARCHAR │ YES │ … │ NULL │ NULL │
│ origin │ VARCHAR │ YES │ … │ NULL │ NULL │
│ destination │ VARCHAR │ YES │ … │ NULL │ NULL │
│ typecode │ VARCHAR │ YES │ … │ NULL │ NULL │
│ eta │ UINTEGER │ YES │ … │ NULL │ NULL │
│ squawk │ USMALLINT │ YES │ … │ NULL │ NULL │
│ vertical_speed │ SMALLINT │ YES │ … │ NULL │ NULL │
│ position_buffer │ STRUCT(delta_lat I… │ YES │ … │ NULL │ NULL │
├─────────────────┴──────────────────────┴─────────┴───┴─────────┴─────────┤
│ 18 rows 6 columns (5 shown) │
└──────────────────────────────────────────────────────────────────────────┘
flight-list
& flight-list-all
¤
Dump the flight list for a given registration or flight number.
fr24 flight-list --help
fr24 flight-list --reg B-HPB -o - --format csv
fr24 flight-list-all --flight CX488 -o cache
$ fr24 flight-list --help
Usage: fr24 [OPTIONS]
Fetch the flight list.
Options:
--reg TEXT Aircraft registration (e.g. `B-HUJ`)
--flight TEXT Flight number (e.g. `CX8747`)
--page INTEGER Page number [default: 1]
--limit INTEGER Number of results per page - use `100` if
authenticated. [default: 10]
--timestamp TIMESTAMP_S Show flights with ATD before this Unix
timestamp [default: now]
-o, --output FILEPATH|CACHE|- Save results to a specific filepath. If `-`,
results will be printed to stdout. If
`cache`, results will be saved to the
default cache. [default:
flight_list.parquet]
-f, --format [parquet|csv] Output format [default: parquet]
--when-file-exists [backup|error|overwrite]
Action when output file path already exists.
[default: backup]
--help Show this message and exit.
$ fr24 flight-list-all --help
Usage: fr24 [OPTIONS]
Fetch all pages of the flight list.
Options:
--reg TEXT Aircraft registration (e.g. `B-HUJ`)
--flight TEXT Flight number (e.g. `CX8747`)
--page INTEGER Page number [default: 1]
--limit INTEGER Number of results per page - use `100` if
authenticated. [default: 10]
--timestamp TIMESTAMP_S Show flights with ATD before this Unix
timestamp [default: now]
--delay INTEGER Delay between requests in seconds.
[default: 5]
--max-pages INTEGER Maximum number of pages to fetch.
-o, --output FILEPATH|CACHE|- Save results to a specific filepath. If `-`,
results will be printed to stdout. If
`cache`, results will be saved to the
default cache. [default:
flight_list_all.parquet]
-f, --format [parquet|csv] Output format [default: parquet]
--when-file-exists [backup|error|overwrite]
Action when output file path already exists.
[default: backup]
--help Show this message and exit.
$ fr24 flight-list --reg B-HPB -o - --format csv
[00:00:00] INFO using environment `subscription_key` and __init__.py:98
`token`
[00:00:00] INFO HTTP Request: GET _client.py:1740
https://api.flightradar24.com/common/v1/flig
ht/list.json?query=B-HPB&fetchBy=reg&page=1&
limit=10 "HTTP/200 OK"
flight_id,number,callsign,icao24,registration,typecode,origin,destination,status,STOD,ETOD,ATOD,STOA,ETOA,ATOA
996322074,CX742,CPA742,7901768,B-HPB,A21N,VVNB,VHHH,Landed 21:46,2025-07-23T12:05:00.000+0000,,2025-07-23T12:23:33.000+0000,2025-07-23T14:10:00.000+0000,,2025-07-23T13:46:15.000+0000
996286687,CX743,CPA743,7901768,B-HPB,A21N,VHHH,VVNB,Landed 17:51,2025-07-23T08:55:00.000+0000,,2025-07-23T09:21:44.000+0000,2025-07-23T11:05:00.000+0000,,2025-07-23T10:51:39.000+0000
996244655,CX608,CPA608,7901768,B-HPB,A21N,VDPP,VHHH,Landed 14:51,2025-07-23T04:25:00.000+0000,,2025-07-23T04:39:01.000+0000,2025-07-23T07:15:00.000+0000,,2025-07-23T06:51:29.000+0000
996213423,CX607,CPA607,7901768,B-HPB,A21N,VHHH,VDPP,Landed 10:04,2025-07-23T00:35:00.000+0000,,2025-07-23T01:00:29.000+0000,2025-07-23T03:15:00.000+0000,,2025-07-23T03:04:00.000+0000
996039556,CX926,CPA926,7901768,B-HPB,A21N,RPVM,VHHH,Landed 21:47,2025-07-22T11:15:00.000+0000,,2025-07-22T11:25:42.000+0000,2025-07-22T14:15:00.000+0000,,2025-07-22T13:47:05.000+0000
996004405,CX925,CPA925,7901768,B-HPB,A21N,VHHH,RPVM,Landed 17:56,2025-07-22T07:15:00.000+0000,,2025-07-22T07:41:27.000+0000,2025-07-22T10:05:00.000+0000,,2025-07-22T09:56:45.000+0000
995970644,CX906,CPA906,7901768,B-HPB,A21N,RPLL,VHHH,Landed 13:10,2025-07-22T02:45:00.000+0000,,2025-07-22T03:31:12.000+0000,2025-07-22T05:15:00.000+0000,,2025-07-22T05:10:58.000+0000
995937230,CX907,CPA907,7901768,B-HPB,A21N,VHHH,RPLL,Landed 09:42,2025-07-21T23:20:00.000+0000,,2025-07-21T23:55:22.000+0000,2025-07-22T01:35:00.000+0000,,2025-07-22T01:42:25.000+0000
995808068,CX963,CPA963,7901768,B-HPB,A21N,ZSHC,VHHH,Landed 23:06,2025-07-21T11:35:00.000+0000,,2025-07-21T13:02:20.000+0000,2025-07-21T14:20:00.000+0000,,2025-07-21T15:06:00.000+0000
995766910,CX962,CPA962,7901768,B-HPB,A21N,VHHH,ZSHC,Landed 19:12,2025-07-21T08:00:00.000+0000,,2025-07-21T09:22:59.000+0000,2025-07-21T10:20:00.000+0000,,2025-07-21T11:12:56.000+0000
INFO wrote 10 rows to `<_io.BufferedWriter utils.py:229
name='<stdout>'>`
playback
¤
Dump the historical track playback data.
fr24 playback --help
fr24 playback --flight-id 2d81a27 -o playback.parquet
$ fr24 playback --help
Usage: fr24 [OPTIONS]
Fetch the playback data for a flight.
Options:
--flight-id FLIGHT_ID fr24 flight id, represented in hex
[required]
--timestamp TIMESTAMP_S Actual time of departure (ATD) of the
historic flight, Unix timestamp in seconds.
Optional, but it is recommended to include
it.
-o, --output FILEPATH|CACHE|- Save results to a specific filepath. If `-`,
results will be printed to stdout. If
`cache`, results will be saved to the
default cache. [default: playback.parquet]
-f, --format [parquet|csv] Output format [default: parquet]
--when-file-exists [backup|error|overwrite]
Action when output file path already exists.
[default: backup]
--help Show this message and exit.
nearest-flights
, live-flights-status
, flight-details
, top-flights
, playback-flight
¤
Dump various gRPC-based flight data.
fr24 nearest-flights --lat 22.3 --lon 113.9
fr24 live-flights-status --flight-ids 3963916d 3963a803
fr24 flight-details --flight-id 3963916d
fr24 top-flights --limit 5
fr24 playback-flight --flight-id 3963916d --timestamp "2025-07-24T00:00:00"
$ fr24 nearest-flights --help
Usage: fr24 [OPTIONS]
Fetch the nearest flights.
Options:
--lat FLOAT Latitude, degrees, -90 to 90 [required]
--lon FLOAT Longitude, degrees, -180 to 180 [required]
--radius INTEGER Radius, metres [default: 10000]
--limit INTEGER Maximum number of aircraft to return
[default: 1500]
-o, --output FILEPATH|CACHE|- Save results to a specific filepath. If `-`,
results will be printed to stdout. If
`cache`, results will be saved to the
default cache. [default:
nearest_flights.parquet]
-f, --format [parquet|csv] Output format [default: parquet]
--when-file-exists [backup|error|overwrite]
Action when output file path already exists.
[default: backup]
--help Show this message and exit.
$ fr24 live-flights-status --help
Usage: fr24 [OPTIONS]
Fetch the live flights status.
Options:
--flight-ids FLIGHT_ID List of flight IDs to get status for
[required]
-o, --output FILEPATH|CACHE|- Save results to a specific filepath. If `-`,
results will be printed to stdout. If
`cache`, results will be saved to the
default cache. [default:
live_flights_status.parquet]
-f, --format [parquet|csv] Output format [default: parquet]
--when-file-exists [backup|error|overwrite]
Action when output file path already exists.
[default: backup]
--help Show this message and exit.
$ fr24 flight-details --help
Usage: fr24 [OPTIONS]
Fetch flight details.
Options:
--flight-id FLIGHT_ID Flight ID to fetch details for. Must be
live, or the response will contain an empty
`DATA` frame error. [required]
--restriction-mode FLIGHT_ID [FAA LADD](https://www.faa.gov/pilots/ladd)
visibility mode. [default: 0]
--verbose / --no-verbose Whether to include [fr24.proto.v1_pb2.Flight
DetailsResponse.flight_plan] and [fr24.proto
.v1_pb2.FlightDetailsResponse.aircraft_detai
ls] in the response. [default: verbose]
-o, --output FILEPATH|CACHE|- Save results to a specific filepath. If `-`,
results will be printed to stdout. If
`cache`, results will be saved to the
default cache. [default:
flight_details.parquet]
-f, --format [parquet|csv] Output format [default: parquet]
--when-file-exists [backup|error|overwrite]
Action when output file path already exists.
[default: backup]
--help Show this message and exit.
$ fr24 top-flights --help
Usage: fr24 [OPTIONS]
Fetch the top flights.
Options:
--limit INTEGER Maximum number of top flights to return
(1-10) [default: 10]
-o, --output FILEPATH|CACHE|- Save results to a specific filepath. If `-`,
results will be printed to stdout. If
`cache`, results will be saved to the
default cache. [default:
top_flights.parquet]
-f, --format [parquet|csv] Output format [default: parquet]
--when-file-exists [backup|error|overwrite]
Action when output file path already exists.
[default: backup]
--help Show this message and exit.
$ fr24 playback-flight --help
Usage: fr24 [OPTIONS]
Fetch playback flight details.
Options:
--flight-id FLIGHT_ID Flight ID to fetch details for. Must not be
live, or the response will contain an empty
`DATA` frame error. [required]
--timestamp TIMESTAMP_S Actual time of departure (ATD) of the
historic flight [required]
-o, --output FILEPATH|CACHE|- Save results to a specific filepath. If `-`,
results will be printed to stdout. If
`cache`, results will be saved to the
default cache. [default:
playback_flight.parquet]
-f, --format [parquet|csv] Output format [default: parquet]
--when-file-exists [backup|error|overwrite]
Action when output file path already exists.
[default: backup]
--help Show this message and exit.
tui
¤
Start the Text User Interface.
fr24 tui