Skip to content

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