FAQ
Answers to the questions we are asked most. The technical details are in the documentation.
Key and account
Do I need an API key?
Yes, for both the REST API (api.flyitalyadsb.com/v2/*) and the MCP server (flyitalyadsb.com/mcp) — same key for both, passed in the X-Api-Key header. It's self-service and instant: just an email address: within seconds you get a link to see the key, no manual approval. The key is free; paid plans raise its limits without changing it.
The email with my key doesn’t arrive. What should I do?
Check your spam folder: the sender is [email protected]. The link is valid for 7 days and shows the key once. If you just asked for a key for the same email, wait a few minutes before trying again. Temporary email addresses are not accepted.
I lost my key.
Ask for it again with the same email: the old one keeps working until you open the new link. Or sign in to My API and regenerate it: the new key replaces the old one at once, with the same plan.
Can you email me a key or activate one manually?
No need: the key is self-serve, with no approval. Just enter your email in the form on the API page. For security, keys no longer travel in emails: you see and regenerate them in My API.
Can I have several free keys?
One free key per mailbox: +tag variants and, on Gmail, dotted variants count as the same mailbox. One key is enough for a product; if you need more requests, a paid plan raises the limits of that same key.
Plans and payment
How do payment and cancellation work?
A monthly subscription paid by card or wallet, prices before tax: your country's tax is added at checkout. Change plan or cancel any time from the links in your receipt; a cancellation takes effect at the end of the period and the key goes back to the Free plan. The data stays CC BY-SA 4.0: a plan pays for access and higher limits, not for a different licence.
Is there an SLA? How fast do you reply?
No plan includes an SLA or guaranteed response times, for the API or for email: FlyItalyADSB is a community and the paid plans only cover the cost of servers and bandwidth. The service is best effort and we reply as soon as we can. An SLA can only be agreed in an enterprise agreement.
How much does it cost?
The Free plan is free, commercial use included, within 30 requests per minute, 300,000 per month and a 500 km radius. Starter €9/month, Pro €49/month, Business €249/month, before tax. Each plan’s limits are in the plans table.
What changes on 27 October 2026?
From 27 October 2026 the Free plan has per-key limits: 30 requests per minute, 300,000 per month and a radius up to 500 km. Until then only the limit of 100 requests per minute per IP applies. Requests from all your devices count together on the same key.
Do I pay more if I go over the limits?
No. Requests over the limits get an error (429, or 403 for too large a radius), are not counted and are not billed: there is nothing beyond the plan’s price.
If I move to a paid plan, do I have to change my key?
No: the key you already have moves to the new plan, with no change in your code. The same on cancellation, when it goes back to Free.
Commercial use
Can I use the API commercially?
Yes, on every plan, free included, within that plan's limits. Above the free limits you need a paid plan (Starter from €9/month, Pro, Business): self-serve, cancel any time, the key you already have is upgraded in place. You can use it inside apps and devices you sell too (see below). An enterprise agreement is needed only to resell the data as an API or feed for other people's products, for an SLA or for volume beyond Business.
Can I put the key in an app or a device I sell? And use it from my server?
Yes. The key can be built into an app or device you distribute or sell, and your server can use it, caching included, to serve your product's users. Requests from all the devices and users count together towards that key's plan: for example 10 devices asking 12 times a minute, day and night, make 120 requests a minute and over 5 million a month, which is the Pro plan. Use one key per product and credit FlyItalyADSB and flyitalyadsb.com in the product (CC BY-SA 4.0). A key inside an app can be extracted: to keep it safe, use it only from your server. An enterprise agreement is needed only to resell the data as an API or feed for other people's products.
How should I credit FlyItalyADSB?
With a link to flyitalyadsb.com where your product’s users see it (in the app, on the device or in the manual, on the product page), for example: “Flight data: FlyItalyADSB (flyitalyadsb.com), CC BY-SA 4.0”. Works derived from the data that you publish go under the same licence.
Can I cache or store the data?
Yes. A server of your own with a cache serving only your users or devices is fine: it isn’t redistribution, and it lowers your requests. You can also keep what you derived from the data. Reselling the data as an API or feed for other people’s products needs an agreement.
Which plan do I need for my devices?
Multiply one device’s requests per minute by the number of devices: they all count on the same key. One device asking every 5 seconds makes about 520,000 requests a month, already beyond Free. Asking every 15 seconds cuts usage by three, and a cache on your server lowers it further.
When do I need an enterprise agreement?
Only to resell the data as an API or feed for other people’s products, to get an SLA, or for volumes above the Business plan. Everything else, including apps and devices you sell, works with the self-serve plans. For an agreement, write to [email protected].
Limits and errors
What counts as a request?
Every call to an endpoint counts as one, MCP tool calls included; calls refused for a limit don’t count. Limits are per key, from any IP. The monthly counter resets on the 1st, and the X-FIA-Used-Month and X-FIA-Quota-Month headers tell you where you stand.
I get 429. Why?
You went over the requests per minute: wait for the seconds in the Retry-After header. If the message is about the monthly quota, the counter resets on the 1st (field resets), or you need a bigger plan. The Free plan also has a limit of 100 requests per minute per IP.
I get 403 with max_radius_km.
The radius is above your plan’s maximum: 500 km on Free, 1000 km on Starter, no limit on Pro and Business. Split the area into several smaller requests, or upgrade.
I get “Sorry, you have been blocked” or error 1010.
Cloudflare stopped the request before it reached the API. Always send the X-Api-Key header and a User-Agent of your own. If it goes on, write to [email protected] with the CF-Ray ID from the error page, the date and time (UTC) and the endpoint.
I get 401 “missing or invalid X-Api-Key”.
The key is missing or invalid. Check the header name (X-Api-Key) and that the key is complete. If you regenerated it in My API, the old one no longer works.
Can I call the API from a browser?
Yes, CORS is open. But anyone can see a key inside a web page: for a public site, call the API from your server and show the results.
Is there a stream or a WebSocket?
No: you poll the API. The data refreshes every 2 seconds; for a display or an app, every 5–15 seconds is usually enough.
Data and coverage
Where does the data come from?
Almost all of it from the receivers of the FlyItalyADSB network, which send us their data first-hand, and from our own multilateration (MLAT). A small part comes from outside sources: ADSBHub and, for gliders and ultralights, the Open Glider Network (OGN). Aircraft seen only by those sources are about 1% of the total (measured on 19 October 2026): if one of them stops, the rest is unaffected.
How fresh are the positions?
The server rewrites the picture of every aircraft every 2 seconds and the API reloads it at most every 3. Each aircraft carries seen_pos, the seconds since its last position: in a measurement on 19 October 2026 half of the positions were under a second old and 9 in 10 under 7 seconds. Positions older than about 60 seconds are not returned.
Which fields does a response have? Is the flight route included?
Each aircraft is a record in readsb's aircraft.json format, the same as tar1090 and adsb.lol: ICAO hex, callsign (flight), registration (r) and type (t) for about 99% of aircraft, position, altitude, speed, track, squawk, category and the military, PIA and LADD flags. There is no route (departure and arrival airports) and no photos: for those you need another source.
Can I get every aircraft in an area in a single request?
Yes: /v2/lat/<lat>/lon/<lon>/dist/<km> returns every aircraft within the radius. The maximum radius depends on the plan: 500 km on Free, 1000 km on Starter, no limit on Pro and Business, which can ask for the whole world in one request. There is no single request for several aircraft by hex or registration: one request per aircraft, or one per radius.
Is the network limited to Italy?
No. FlyItalyADSB was born in Italy but is a global network with 3,200+ direct feeders worldwide — both the REST API and the MCP tools accept coordinates anywhere on the planet, not just Italy. Coverage follows the receivers: dense in Italy, much of Europe and North America, thinner in Asia, Africa and Oceania. For a given area, check the live map or try a request with a Free key.
How does this compare to other open ADS-B APIs (adsb.fi, airplanes.live, adsb.lol...)?
See the factual comparison at flyitalyadsb.com/en/data/comparison: rate limits, feeder requirements, and commercial-use terms for each, compared without value judgments.
Why is an aircraft missing?
Coverage follows the receivers: where there aren’t enough, or at low altitude, the aircraft isn’t seen. Aircraft without ADS-B show up only through multilateration, which needs at least four receivers in view. Positions older than about 60 seconds are not returned. The data is unfiltered: PIA and LADD aircraft are flagged, not hidden.
What is the difference between ADS-B and MLAT?
With ADS-B the aircraft transmits its own GPS position. With MLAT we compute the position from the arrival-time differences of the same signal at four or more receivers: it covers aircraft without ADS-B, many military ones included. In the API the type field is mlat.
What units are altitude, speed and radius in?
Altitude in feet (alt_baro can be the string "ground"), speed in knots, vertical rate in feet per minute. The request radius is in kilometres, not the nautical miles some other ADS-B APIs use.
Can I monitor emergency squawks (7700)?
There is no squawk endpoint: ask for a radius and filter on the squawk field yourself (7700, 7600, 7500). The whole world in one request (/lat/0/lon/0/dist/20040) needs Pro or Business; on Free and Starter you can cover an area with several 500 or 1000 km requests.
History
How far back does history go?
To 2022, with gaps: from 10/04/2022 to 04/10/2023 only the first and last point of each flight, from 25/07/2023 to 27/06/2024 full tracks with gaps, and since 17/08/2026 full tracks every day. There is nothing between 28/06/2024 and 16/08/2026.
Can I get every aircraft in an area or at an airport on a past day?
Not self-serve: history is asked aircraft by aircraft (/v2/history/{icao}/{date}). For larger extracts or research projects, write to [email protected].
Do you have the raw data (Mode-S messages, BEAST)?
No: we only distribute decoded data. Raw access used to be harvested and redistributed elsewhere, so we no longer offer it.
MCP and AI agents
How do I use the MCP server with Claude or ChatGPT?
Add https://flyitalyadsb.com/mcp as a custom connector (on claude.ai: Connectors → Add custom connector) and press Connect: you sign in with your email and a 6-digit code, no key to copy. In clients without OAuth, pass your key in the X-Api-Key header. Then just ask things like "what's flying over Fiumicino right now?" or "any military traffic over Rome?" and the agent will call the tools automatically.
What can the MCP server do that the map can't?
It returns structured data (JSON) instead of a web page: look up one aircraft by ICAO hex/callsign/registration, list every aircraft within a radius of any point on the planet with full records, and pull filtered lists of military, PIA (privacy), or LADD traffic.
Do questions to the assistant use up requests?
Yes: each MCP tool call is an API request and counts on your key’s plan, like a direct call.
How do I disconnect an assistant?
In My API, under “Connected assistants”, press Disconnect. Your key doesn’t change.
Can an AI agent register by itself?
Yes, with auth.md, but it always needs your confirmation: the agent gives you a link and a code, you sign in with the code we email you and type the agent’s code.
Receivers (feeders)
I run a receiver that feeds the network: do I get anything?
Yes: whoever feeds FlyItalyADSB gets the Pro plan limits on their Free keys at no cost (300 requests a minute, 10 million a month, worldwide radius), for non-commercial use. Turn it on in My API by opening the page from the same network as the receiver: we check that data arrives from there, as on the "Is my data arriving?" page. It lasts as long as the receiver feeds the network, with 3 days of grace if it stops.
How do I become a feeder?
You need an ADS-B receiver (for example a Raspberry Pi with an RTL-SDR dongle and an antenna) that sends BEAST data to dati.flyitalyadsb.com on port 4905, and the MLAT client on port 30100. The step-by-step guide is on the Become a feeder page.
Do I need to ask you to activate my receiver?
No: as soon as it is configured, the data arrives on its own. To check, open the “Is my data arriving?” page from the receiver’s network.
The MLAT client errors out or doesn’t sync.
Check that your network allows outgoing connections to dati.flyitalyadsb.com on port 30100 (a “no route to host” is usually a firewall). Then check that the antenna’s latitude, longitude and altitude are exact and the MLAT name is unique. Syncing needs other receivers in view in your area.
Can I use the network’s data in a paid app?
Yes: the data you get from the API is CC BY-SA 4.0 and is fine in a paid product too, with FlyItalyADSB credited visibly. The feeder perk, however, is for non-commercial use only.
Map
Does the map show where a flight departs from and goes to?
You can turn it on in the map settings, with “Lookup route”. The route comes from an external service (adsb.im) based on the callsign and can be wrong. The API doesn’t return it.
An aircraft has the wrong type, registration or silhouette.
Type and registration come from an aircraft database. To report a mistake, write to [email protected] with the ICAO hex (or registration) and the correct information.
No question found. Try another word, or write to us.
Didn’t find your answer? Write to [email protected].