Flightradar24 All-in-One API avatar

Flightradar24 All-in-One API

Pricing

from $31.20 / 1,000 live feeds

Go to Apify Store
Flightradar24 All-in-One API

Flightradar24 All-in-One API

Real-time, unofficial Flightradar24 API — live flight positions by bounding box, flight detail, live tracking, historical playback, nearest-flights, search, and airport arrival/departure boards. No API key, no login, no scraping setup.

Pricing

from $31.20 / 1,000 live feeds

Rating

0.0

(0)

Developer

Romy

Romy

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

What does Flightradar24 All-in-One API do?

Flightradar24 All-in-One API is a unified REST endpoint for Flightradar24's live flight-tracking data — live positions by bounding box, most-tracked flights globally, full flight detail, live position streaming, historical playback, batch status, search, and airport arrival/departure/on-ground boards — all from a single always-on API powered by Apify Standby.

It talks directly to the same two internal APIs the official Flightradar24 Android app uses — the gRPC live feed (data-feed.flightradar24.com) and the legacy REST API (mobile.flightradar24.com) — reverse-engineered by static decompilation and validated against real live traffic. No API key, no login, no scraping setup — call the endpoint, get JSON back instantly.

Why use Flightradar24 All-in-One API?

  • All Flightradar24 data in one place — live map, top flights, flight detail, live tracking, playback, search, and airport boards in one API
  • Always-on — Standby mode means no cold start, responds in milliseconds
  • Standard REST + NDJSON streaming — works with any language: curl, Python, JavaScript, Postman
  • Use cases: aviation monitoring, airport operations dashboards, logistics/cargo tracking, flight-delay research, competitive intelligence on airline route activity

Endpoints

Feed (gRPC-backed, live tracking):

MethodPathDescription
GET/live-feedLive flights within a bounding box
GET/top-flightsMost-tracked flights globally right now
GET/flight-detailsFull detail for one flight — aircraft, schedule, progress, trail
GET/follow-flightStream live position updates for one flight (NDJSON)
GET/playbackHistorical flight positions at a past point in time
GET/flights-statusBatch position/status refresh for a list of known flight ids
GET/nearest-flightsFlights nearest to a coordinate, sorted by distance

Legacy REST (search & airport data):

MethodPathDescription
GET/searchSearch flights, airlines, airports, or registrations
GET/flight-lookupFlight detail by hex id, optionally at a past point in time
GET/airportAirport info — location, weather, stats, photos
GET/airport/arrivalsArrival board for an airport
GET/airport/departuresDeparture board for an airport
GET/airport/on-groundAircraft currently on the ground at an airport
GET/airport/disruptionsAirports currently experiencing delays, ranked
GET/airlinesBulk airline reference dump (~2,700 rows)
GET/airportsBulk airport reference dump (~6,700 rows)

How to use

  1. Go to Apify Store and click Try for free
  2. The actor runs in Standby mode — it starts once and stays alive
  3. Call the API using your Apify token:
curl "https://romy--flightradar24-all-in-one-api.apify.actor/live-feed?north=6&south=-11&west=95&east=141&limit=50" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"

Quick tip: To get all flights over Indonesia, use north=6&south=-11&west=95&east=141.

Input (Query Parameters)

GET /live-feed

ParamTypeDefaultDescription
north / south / west / eastnumberrequiredBounding box in decimal degrees
limitinteger1500Max flights to return
maxageinteger14400Max age (seconds) of position data to include

GET /top-flights

ParamTypeDefaultDescription
limitinteger50Max entries to return

GET /flight-details

ParamTypeDefaultDescription
flight_idintegerrequiredFrom a /live-feed, /top-flights, or /playback result

GET /follow-flight

ParamTypeDefaultDescription
flight_idintegerrequiredFrom a /live-feed, /top-flights, or /playback result
durationinteger30Seconds to keep the stream open (max 120)

Response is application/x-ndjson — one JSON object per line, one line per position update pushed by Flightradar24 (roughly every 1–3 seconds while airborne):

curl -N "https://romy--flightradar24-all-in-one-api.apify.actor/follow-flight?flight_id=1094013202&duration=60" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"

GET /playback

ParamTypeDefaultDescription
north / south / west / eastnumberrequiredBounding box in decimal degrees
timestampintegerrequiredUnix timestamp (seconds) of the point in time to look up
limitinteger1500Max flights to return

Depth is the last 7 days — this matches the free tier of the Flightradar24 app itself (older timestamps return an empty flight list rather than an error; it's enforced server-side by Flightradar24, not by this Actor).

GET /flights-status

ParamTypeDefaultDescription
flight_idsstringrequiredComma-separated flight ids, e.g. 1094013202,1094013408

Cheaper than calling /flight-details once per flight when you already have the ids (e.g. from /live-feed or /airport/on-ground) and only need a fresh position/status.

GET /nearest-flights

ParamTypeDefaultDescription
lat / lonnumberrequiredCenter coordinate
radiusinteger200000Search radius in meters
limitinteger300Max results

Powers the app's own "Search > Nearby" screen — results are sorted nearest-first with a distance (meters) on each entry. This is a real server-side nearest-neighbor query, unlike the app's AR "point at the sky" view, which just calls /live-feed with a tight bounding box instead.

ParamTypeDefaultDescription
querystringrequiredFlight number, callsign, registration, airline, or airport name/code
limitinteger25Max results

Live-flight results include a hex id (e.g. "41336b86") — pass it to /flight-lookup. Airport results include a numeric id — pass it to /airport*.

GET /flight-lookup

ParamTypeDefaultDescription
flightstringrequiredHex flight id from a /search result
historyintegerUnix timestamp (seconds) — look up this flight's state at a past point in time instead of now

This is the REST equivalent of /flight-details, and also covers flights the gRPC feed itself won't return — already-landed aircraft, ground vehicles, anything not currently broadcasting a live position.

GET /airport

ParamTypeDefaultDescription
idstringrequiredAirport id, from a /search result (e.g. 631 for Jakarta CGK)
includestringimages,weather,stats,runwaysSections to include

GET /airport/arrivals, /airport/departures, /airport/on-ground

ParamTypeDefaultDescription
idstringrequiredAirport id
pageinteger1Page number (100 results per page — Flightradar24's server rejects any other page size)

GET /airport/disruptions

ParamTypeDefaultDescription
continentinteger00 = all continents
periodstringlive
typestringboth

Output Example

/live-feed:

{
"success": true,
"flights": [
{
"flightId": 1094013202,
"lat": -5.815,
"lon": 111.413,
"track": 205,
"alt": 38000,
"speed": 476,
"callsign": "PAS646",
"onGround": false,
"timestampMs": "1786924707066",
"extraInfo": { "flight": "IP646", "reg": "PK-PWO", "type": "A320" }
}
]
}

/flight-details:

{
"success": true,
"aircraftInfo": { "reg": "PK-PWO", "type": "A320", "fullDescription": "Airbus A320-214", "registeredOwners": "Pelita Air" },
"scheduleInfo": { "flightNumber": "IP646", "scheduledDeparture": "1786921200", "actualDeparture": "1786921125" },
"flightProgress": { "progressPct": 65, "flightStage": 3, "delayStatus": 1 },
"flightTrail": [ { "snapshotId": "1786921371", "lat": -1.34, "lon": 116.72, "altitude": 6175, "spd": 272 } ]
}

/flights-status:

{
"success": true,
"flights": {
"1094013202": { "lat": -5.82, "lon": 111.41, "status": 4, "timestamp": "1786924711" }
}
}

Pricing

This Actor uses Pay Per Event billing — you only pay for successful API calls (failed 4xx/5xx requests are not charged). /follow-flight is billed per update received, not per request, since one call can stay open for up to 120 seconds and deliver dozens of updates.

Known limitations

  • All eight of the feed's gRPC methods are now confirmed and exposed. The last two to fall into place — /nearest-flights and /flights-status — took longer to trigger than the rest (the app's own AR "flights near me" camera view turned out to be a red herring, reusing /live-feed instead). /flights-status was found via an airport's "on ground" tab; /nearest-flights needed the "while using the app" foreground location permission specifically — granting only the AR view's camera/location prompt isn't enough.
  • Some aircraftInfo fields are paywalled by Flightradar24 itself, not by this Actor. msn (serial number), acAge/acBirthDate, and countryOfReg come back empty even though their companion msnAvailable / ageAvailable / isCountryOfRegAvailable flags report true (confirmed server-side gating, not a UI-only lock — verified against both an anonymous session and a modified client that locally fakes a paid subscription, with identical results either way) — this API calls the feed anonymously, the same way the free tier of the app does, and there's no way to unlock those fields short of an actual paying Flightradar24 account.
  • /playback depth is 7 days, matching the app's own free-tier limit.
  • /airport/arrivals, /airport/departures, /airport/on-ground only accept 100 results per page. Flightradar24's server validates limit against a fixed allow-list rather than an arbitrary range — 10/25/50/200 all get rejected with HTTP 422, only 100 works — so this Actor hardcodes it and exposes page for pagination instead.
  • /airlines and /airports are large, close-to-static reference dumps (thousands of rows) — cache the result client-side rather than calling on every request.

FAQ

Does this require a Flightradar24 account? No. The Actor uses the same anonymous data/search feed the Flightradar24 mobile app uses — no login, no API key.

Is the data real-time? Yes — positions update roughly every 1–3 seconds per flight. /live-feed is a snapshot; /follow-flight streams continuous updates for one flight.

Is this official? No. This is an independent tool using Flightradar24's internal APIs, reverse-engineered from the public Android app. Use responsibly and in accordance with Flightradar24's Terms of Service.

Need a custom integration? Contact me at romysaputrasihanandaa@gmail.com or hire me on Fiverr.