FlightByte vs aviationstack
Two different products that share a search result. aviationstack sells requests against a large catalogue of aviation data. FlightByte sells watched flights and tells you the moment one changes. If your job is to react to a specific flight, the difference is the whole product.
In thirty seconds
live object400 with the legsorigin selector; never a guess.access_key in the URL, so in every proxy log.x-api-keyaviationstack figures from its public pricing and documentation pages, checked October 15, 2026. Plans change; if something here is out of date, tell us and we will fix it.
aviationstack pricing, free tier and API key
What each plan costs, what the free plan allows, and how a key is issued, from aviationstack’s own pages on October 15, 2026. Every plan buys the same thing, requests, so the plan you need depends on how often your code asks.
| Plan | Price | Included | Notes |
|---|---|---|---|
| Free | $0 | 100 requests / month | Non-commercial, no support; no history, routes, autocomplete, schedules or future flights |
| Basic | $49.99 / month, $44.99 billed yearly | 10,000 requests | Commercial use, history, schedules, future flights; overage about $0.02 a request |
| Professional | $149.99 / month, about $132 billed yearly | 50,000 requests | Up to 1,000 results a call instead of 100; overage about $0.012 |
| Business | $499.99 / month, $424.99 billed yearly | 250,000 requests | Overage about $0.008 |
| Enterprise | Custom | Custom |
Platinum support is an add-on from $479.88 a year. Since July 2026 aviationstack is part of the APILayer suite, and apilayer.com sells the same plans under other names: Starter, Professional and Enterprise. E-mail warnings go out at 75, 90 and 100 percent of the quota.
aviationstack free tier
Free is 100 requests a month, for non-commercial use, with no support. It leaves out history, routes, autocomplete, schedules and future flights, and it asks for no credit card.
At one request every five minutes for the last six hours of a flight, 100 requests watch about one flight a month.
aviationstack API key: how to get one
- Sign up at aviationstack.com with a name, e-mail address and password; the Free plan asks for no card.
- Copy the access key from your account.
- Send it as the
access_keyquery parameter toapi.aviationstack.com/v1.
One APILayer account and key now covers aviationstack and the other APILayer APIs; older aviationstack keys keep working.
- Hobby, $9 / month
- 100 flights · 4,000 lookups
- Starter, $19 / month
- 500 flights · 20,000 lookups
- Growth, $49 / month
- 2,000 flights · 80,000 lookups
- Scale, $99 / month
- 5,000 flights · 200,000 lookups
- Free tier
- 3 flights a month, commercial use
- Getting a key: sign up
- free key on screen in a minute; paid plans by email
- Where the key goes
- x-api-key header
When aviationstack is the better choice
It is a broader product, and for three jobs it is the right one.
You need the catalogue
Lists of airports, airlines, aircraft types, routes and cities from one API. FlightByte only carries the airport data that belongs to a flight.
You need history
Three months of past flights on paid plans. FlightByte keeps a live window, and a delivery log for the flights it watched, nothing older.
You need positions
Latitude, altitude and speed for airborne flights. FlightByte tells you a flight is en route; it does not tell you where.
When FlightByte is
When there is a particular flight you care about, and something in your product has to happen when it changes.
You would otherwise poll
A status endpoint answers the easy question. Knowing how often to ask, what changed, and what to do at three in the morning is the work; FlightByte does it and sends the result.
You count in flights, not requests
A booking is a flight. Pricing per watched flight means the bill tracks your business, not how nervous your poller is.
You need to prove what was sent
Every delivery is signed and logged with its HTTP status and latency. When a driver says the message never came, you can look.
What watching 500 flights a month costs
Assume a modest poller: one status request every five minutes for the last six hours before each flight, which is 72 requests per flight and still misses a gate change by up to five minutes.
- 500 flights × 72 requests
- 36,000 requests
- Basic (10,000) plus 26,000 overage at ~$0.02
- ≈ $570
- or Professional (50,000)
- $149.99
- Plus
- a poller, a differ, a retry queue, a log
- 500 watched flights
- 500 line items
- Starter covers all 500
- $19
- or Growth (2,000) for headroom
- $49
- Plus
- nothing; the polling is inside the price
FlightByte polls each flight on its own schedule, roughly 40 to 120 upstream requests per flight, tighter at the gate than a five-minute loop and looser a day out. That cost is inside the plan. See pricing.
Moving over
Most integrations map in an afternoon. The shapes are similar; the difference is that FlightByte splits gate and runway times, gives every time a UTC and a local form, and adds a phase you can branch on.
| aviationstack | FlightByte | Note |
|---|---|---|
flight_date | date | Local departure date at the origin in both. |
flight_status | status.phase | See the status map below. |
flight.iata | flightKey | FlightByte’s key adds the date and, once resolved, the leg: TK1848:2026-09-12@ATH-IST. |
flight.number | flightNumber | Leading zeros are ignored on lookup. |
airline.iata | carrier.iata | carrier.name and operatedBy alongside. |
flight.codeshared | codeshares[] | A list, one entry per codeshare number. |
departure.scheduled | departure.times.scheduledGate.utc | Also .local and .timezone. |
departure.estimated | departure.times.estimatedGate.utc | Or read departure.bestTimeUtc for “the best time known right now”. |
departure.actual | departure.times.actualGate.utc | |
departure.estimated_runway | departure.times.estimatedRunway.utc | |
departure.actual_runway | departure.times.actualRunway.utc | |
departure.delay | departure.delayMinutes | Negative when early. |
departure.terminal | departure.terminal | Same on arrival. |
departure.gate | departure.gate | Same on arrival. |
arrival.baggage | arrival.baggage | And a arrival.baggage.changed event when it is assigned. |
departure.airport | departure.airport.name | Plus iata, icao, city, timezone and a country with flag URLs. |
aircraft.registration | equipment.tailNumber | |
aircraft.iata | equipment.iata | equipment.name is the readable type. |
live.* | — | No position data. |
| aviationstack flight_status | FlightByte status.phase | Note |
|---|---|---|
scheduled | scheduled, boarding | FlightByte separates gate activity from the schedule. |
active | departed, en_route | Off the gate versus airborne. |
landed | landed, arrived | On the runway versus at the gate. |
cancelled | cancelled | A flight.reinstated event exists for the ones that come back. |
diverted | diverted, redirected | The new airport is under diverted. |
incident | — | Not modelled as a phase; the timeline carries the airline's wording. |
What you stop writing. The polling loop and its schedule, the table of last-seen values, the diff, the retry queue for your own notifications, and the log that says what went out. A subscription replaces all of it:
POST https://api.flightbyte.dev/v1/subscriptions
x-api-key: $FLIGHTBYTE_KEY
{
"carrier": "TK",
"flightNumber": "1848",
"date": "2026-09-12",
"webhookUrl": "https://yourapp.com/hooks/flights",
"events": ["flight.departed", "flight.arrived", "delay.increased", "arrival.gate.changed"],
"metadata": { "bookingId": "BK-1042" }
}The quickstart has the receiver in Node and Python; Webhooks lists all 23 change types.
Questions people ask before switching
How much does aviationstack cost?
What are the aviationstack free plan limits?
How do I get an aviationstack API key?
access_key query parameter. Since July 2026 aviationstack is part of the APILayer suite, so one APILayer account and key can cover it.Can I use both?
Does FlightByte have live aircraft positions?
Does FlightByte have a free plan?
Watch your first flight tonight.
Nine dollars, a hundred flights, every event. The migration map above is the whole afternoon.
A free key in a minute, no card. On a paid plan? Request a key