ADS-B Flight Tracker API: Live Aircraft Data
Pricing
from $0.12 / 1,000 live aircraft or notable-traffic events
ADS-B Flight Tracker API: Live Aircraft Data
Live aircraft positions worldwide from FlyItalyADSB's own ADS-B and MLAT receiver network: search by area, ICAO hex, callsign or registration, or get all military aircraft. Plus daily flight tracks since 2022, overflights and emergencies. Export JSON, CSV or Excel, schedule runs or call it via API.
Pricing
from $0.12 / 1,000 live aircraft or notable-traffic events
Rating
0.0
(0)
Developer
FlyitalyADSB
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Security
Limited permissionsShare
ADS-B Flight Tracker gives you live aircraft positions anywhere in the world, daily flight tracks since 2022, observed flights (where a callsign flies, an aircraft's flight log, an airport's departures and arrivals), the aircraft that flew over a place and notable traffic such as emergencies and military aircraft, as clean datasets. The data is first-party. It comes from FlyItalyADSB's own network of community ADS-B receivers and MLAT servers, born in Italy and now all over the world, and is not scraped from another flight-tracking website.
Try it in one click. The prefilled input lists every aircraft within 100 km of London Heathrow right now. On Apify's free plan, the $5 monthly credit covers about 33,000 aircraft.
What can this ADS-B flight tracker do?
| Mode | What it returns | One row is |
|---|---|---|
| Live: aircraft in an area | Every aircraft within a radius of a point, nearest first, up to the whole world (20,040 km) | an aircraft |
| Live: specific aircraft | The aircraft you name by ICAO hex address, callsign or registration, if they are in the air now | an aircraft |
| Live: military / PIA / LADD | All military, PIA or LADD aircraft our receivers see now, worldwide | an aircraft |
| History: daily track | An aircraft's full recorded track for a UTC day, since 2022 | an aircraft-day, with every position |
| History: aircraft profile | Identity, live status and a summary of an aircraft's history | an aircraft |
| History: flew over a place | Every aircraft that passed within up to 50 km of a point in a window of up to 24 hours: closest point, lowest altitude, time in and out | an aircraft |
| History: notable traffic | Emergencies (squawk 7500/7600/7700), military and interesting aircraft that entered an area, up to 7 days back | an event |
| History: observed flights | Flights our receivers saw, by callsign or flight number (its last 1–14 days and usual routes), by aircraft (its flight log over up to 31 days) or by airport (a day's departures and arrivals): departure and arrival airport, times, duration | a flight |
With the Apify platform you also get:
- 📤 Exports to JSON, CSV, Excel or XML.
- 🔌 An API for every run.
- ⏰ Scheduled runs, for example a snapshot of an area every hour.
- 🔗 Integrations with Make, Zapier, n8n, Google Sheets and webhooks.
- 🤖 AI agents, which can call the Actor through the Apify MCP server.
What ADS-B data can you get?
Live rows keep the readsb field names, the same ones tar1090 uses: hex, flight, r (registration), t (type), lat, lon, alt_baro (ft, or "ground"), gs (kt), track, squawk, category, seen_pos (seconds since the position was received), and the rest. A few fields are added in front of them:
callsign: the trimmed callsign;distanceKm: the distance from the centre of the area;onGround, andmilitary,interesting,pia,laddfrom the database flags;positionSource:adsb,mlat,tisb,adsrorother;positionTime,retrievedAt: ISO 8601 times;mapUrl: the aircraft on our live map;query: what produced the row.
{"hex": "781f74", "callsign": "CSN674", "distanceKm": 0.6, "onGround": false, "military": false,"positionSource": "adsb", "positionTime": "2026-10-26T21:39:58.453Z","mapUrl": "https://map.flyitalyadsb.com/?icao=781f74","r": "B-32EE", "t": "A359", "lat": 51.464895, "lon": -0.454178, "alt_baro": 275, "gs": 122,"track": 270, "baro_rate": -192, "squawk": "2021", "category": "A5", "seen_pos": 5.488, "rssi": -32.8}
Other modes:
- Daily tracks carry
trace, readsb's list of positions. Each one is[seconds after timestamp, lat, lon, altitude ft or "ground", ground speed kt, track, flags, vertical rate, details, source, ...]. The row also haspoints,firstPositionTimeandlastPositionTime. - Overflights and notable traffic are flat rows.
- Observed flights are flat rows too:
hex,r,t,callsign, thenfromAirport,fromIata,fromName,fromCountry,fromTime,fromSeenand the same six forto, thenfirstSeen,lastSeen,durationMin,day.fromSeen/toSeensay how the airport was recognised:ground(on the ground within 6 km),low(at most 2,500 ft above it within 15 km) orapproach(at most 6,000 ft within 30 km). An end our receivers didn't see is empty. A callsign's usual routes, with how many times each was flown, go in the run'sOUTPUTrecord.
{"hex": "4d2247", "r": "9H-QDF", "t": "B738", "callsign": "RYR791K","fromAirport": "EGGD", "fromIata": "BRS", "fromName": "Bristol Airport", "fromCountry": "GB","fromTime": "2026-11-05T12:49:00Z", "fromSeen": "ground","toAirport": "EPKK", "toIata": "KRK", "toName": "Kraków John Paul II International Airport", "toCountry": "PL","toTime": "2026-11-05T15:18:00Z", "toSeen": "low","firstSeen": "2026-11-05T12:49:00Z", "lastSeen": "2026-11-05T15:18:00Z", "durationMin": 149, "day": "2026-11-05"}
The run's OUTPUT record says whether the window was fully indexed and whether there were more results.
How to use the ADS-B Flight Tracker
- Click Try for free (or Start in Apify Console).
- In What to get, pick a mode.
- Fill in its section:
- Area for a point and a radius;
- Aircraft for ICAO hex addresses, callsigns or registrations;
- History for days and time windows;
- Observed flights for airports, how many days back a callsign goes, and departures or arrivals.
- Optionally, narrow the results under Filters and limits.
- Run it, then download the dataset or read it through the API.
Input examples
Aircraft within 50 km of London Heathrow:
{ "mode": "area", "latitude": 51.47, "longitude": -0.45, "radiusKm": 50 }
The whole world, only aircraft above 30,000 ft:
{ "mode": "area", "latitude": 0, "longitude": 0, "radiusKm": 20040, "minAltitudeFt": 30000 }
Specific aircraft:
{ "mode": "aircraft", "icao": ["4952cd"], "callsigns": ["BAW123"], "registrations": ["EI-DCL"] }
An aircraft's track on two days (leave dates empty for its most recent day):
{ "mode": "history", "icao": ["4952cd"], "dates": ["2026-10-24", "2026-10-25"] }
What flew over a house in the last hour, below 3,000 ft:
{ "mode": "overflights", "latitude": 51.47, "longitude": -0.45, "radiusKm": 3, "maxAltitudeFt": 3000 }
Use from and to (ISO 8601 or Unix seconds) for another window.
Where a flight number flies, and an aircraft's flight log for October (a flight number such as FR5518 is matched to the callsign the aircraft transmits):
{ "mode": "flights", "callsigns": ["FR5518"], "flightDays": 14, "registrations": ["EI-DCL"], "from": "2026-10-01", "to": "2026-10-31" }
Yesterday's departures from London Heathrow (leave dates empty for the latest day, or give several):
{ "mode": "flights", "airports": ["LHR"], "airportFlights": "departures" }
Emergencies around Rome in the last 3 days:
{ "mode": "events", "latitude": 41.9, "longitude": 12.5, "radiusKm": 300, "sinceHours": 72, "eventKinds": ["emergency"] }
How much does flight tracking data cost?
Without your own key, you pay per result:
| Result | Free plan | Bronze | Silver | Gold and above |
|---|---|---|---|---|
| Live aircraft, or a notable-traffic event, per 1,000 | $0.15 | $0.14 | $0.13 | $0.12 |
| Daily track, aircraft profile or overflight, per 1,000 | $2.00 | $1.90 | $1.80 | $1.60 |
| Observed flight, per 1,000 | $0.50 | $0.47 | $0.44 | $0.40 |
Your Apify plan sets your price. There is no fee for starting a run. Rows we don't find are free, and so are failed lookups. Two runs on an October evening, at the Free plan price, for scale:
- 50 km around London Heathrow returned 44 aircraft, about $0.007.
- The whole world returned 10,381 aircraft, about $1.56.
FlyItalyADSB is a community network: these prices help cover the cost of running it.
With your own FlyItalyADSB API key in Your flyitalyadsb API key, results are not charged. The limits of your plan apply: radius, requests per minute and per month. A Free key is enough to start, and you can get one here.
If you query the same area every few seconds, for a display, an app or a dashboard, call the REST API directly instead: its plans cost less for that.
Limits and coverage
- Live data is a snapshot taken at the moment of the run.
seen_postells how old each position is. - Coverage depends on where our receivers are. It is densest in Europe and North America; check an area on the live map.
- Overflights: up to 50 km and 24 hours per run. The last few minutes may not be indexed yet.
- Notable traffic: up to 7 days back.
- Observed flights: built every night from our own tracks, so yesterday and earlier, not today. They are what our receivers saw, not airline schedules: over oceans or where receivers are few, one end of a flight can be missing. Up to 14 days back for a callsign, 31 days per run for an aircraft, and up to 500 flights per callsign or aircraft (
OUTPUTlists the lookups that had more). - History: since 2022.
- Per run: up to 1,000 lookups (ICAO, callsign, registration) or aircraft-days. An area has no cap: the whole world is about 10,000 rows. Set Maximum results to cap a run.
FAQ
Where does the ADS-B data come from?
From FlyItalyADSB's own network:
- community ADS-B receivers, born in Italy and now all over the world;
- MLAT servers, which locate aircraft that don't broadcast their position.
It is not scraped from Flightradar24, FlightAware or any other flight-tracking website.
Can I use the data commercially?
Yes. The data is published under CC BY-SA 4.0. If you reuse it:
- credit "FlyItalyADSB" with a link to flyitalyadsb.com;
- share derivative works under the same licence.
The terms of service apply. In particular, the data must not be used:
- for safety of life, air traffic control or navigation;
- to follow or harass people.
How do I get ADS-B data in Python or JavaScript?
Run the Actor with the Apify client. Your Apify token is under Settings → API & Integrations.
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("flyitalyadsb/adsb-flight-tracker").call(run_input={"mode": "area", "latitude": 51.47, "longitude": -0.45, "radiusKm": 50})for aircraft in client.dataset(run["defaultDatasetId"]).iterate_items():print(aircraft["hex"], aircraft.get("callsign"), aircraft.get("alt_baro"))
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('flyitalyadsb/adsb-flight-tracker').call({mode: 'area', latitude: 51.47, longitude: -0.45, radiusKm: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Can I schedule runs or get alerts?
Yes. A schedule in Apify Console runs the Actor, for example every hour, and integrations or webhooks pass the results on to Slack, Google Sheets, Make, Zapier or n8n.
For push alerts the moment an emergency or a military aircraft shows up in an area, our REST API has webhooks on its paid plans.
Can AI agents use it?
Yes. Agents connected to the Apify MCP server can find this Actor and run it as a tool. For assistants like Claude and ChatGPT there is also our own MCP server, with a live map in the chat.
Why is an aircraft missing?
There are three usual reasons:
- it isn't transmitting;
- it is outside our coverage;
- it was left out by a filter, such as Include aircraft on the ground or an altitude band.
The live map shows what our receivers see right now.
Support
Questions, bugs or a missing feature: open an issue in the Issues tab or write to info@flyitalyadsb.com.