Aviationstack exposes three flight endpoints, and each answers a different question. The flights endpoint returns real-time and historical status for specific flights, timetable returns a live departure or arrival board for one airport, and flightsFuture returns scheduled flights for an airport on a future date. Pick the wrong one and the field your feature needs will not be in the response. This guide maps all three to their use cases so you call the right one. Aviationstack is part of the APILayer suite, so one account, one API key, one dashboard, and one invoice cover it.
Table of Contents
Which Aviationstack endpoint should I use?
Use the Aviationstack flights endpoint when you have a flight and want its live or past status, timetable when you have an airport and want everything departing or arriving right now, and flightsFuture when you have an airport and a future date.
Two questions settle it: do you know the flight number or the airport, and do you need now, the past, or the future? Known flight, now or past, is flights. Known airport, right now, is timetable. Known airport, a date ahead, is flightsFuture.
The flights endpoint: real-time and historical status
The Aviationstack flights endpoint returns the status of specific flights across airports, in real time or for a past date. Filter it by flight number (flight_iata), airline (airline_iata), route (dep_iata, arr_iata), or status (flight_status). Add flight_date in YYYY-MM-DD form for historical queries, which need the Basic plan or higher (as of September 2026, per the Aviationstack docs). It is the only one of the three that returns a pagination object, so it is the endpoint for queries that can run to thousands of rows. For a full walkthrough, see how to use Aviationstack for real-time flight tracking.
curl "https://api.aviationstack.com/v1/flights?access_key=YOUR_ACCESS_KEY&flight_iata=AA1004&limit=1"
The sample response from the documentation, trimmed to its core fields:
{
"pagination": { "limit": 1, "offset": 0, "count": 1, "total": 1669022 },
"data": [
{
"flight_date": "2026-09-12",
"flight_status": "active",
"departure": {
"airport": "San Francisco International",
"timezone": "America/Los_Angeles",
"iata": "SFO",
"icao": "KSFO",
"terminal": "2",
"gate": "D11",
"delay": 13,
"scheduled": "2026-09-12T04:20:00+00:00",
"estimated": "2026-09-12T04:20:00+00:00",
"actual": "2026-09-12T04:20:13+00:00"
},
"arrival": {
"airport": "Dallas/Fort Worth International",
"iata": "DFW",
"icao": "KDFW",
"terminal": "A",
"gate": "A22",
"baggage": "A17",
"scheduled": "2026-09-12T04:20:00+00:00"
},
"airline": { "name": "American Airlines", "iata": "AA", "icao": "AAL" },
"flight": { "number": "1004", "iata": "AA1004", "icao": "AAL1004", "codeshared": null }
}
]
}
The aircraft and live objects (position, speed, altitude) return on higher plans and are null on the free tier, so do not build against them until your plan includes them.
The timetable endpoint: a live airport board
The Aviationstack timetable endpoint returns the current departure or arrival board for one airport, the way a terminal screen shows it. Call it with an airport iataCode and a type of departure or arrival, and filter by airline_iata or status. It reports gate, terminal, delay, and the live status of each flight, which makes it the choice for an airport operations view rather than a single-flight lookup.
curl "https://api.aviationstack.com/v1/timetable?access_key=YOUR_ACCESS_KEY&iataCode=JFK&type=arrival"
APILayer’s published response example:
{
"data": [
{
"airline": { "iataCode": "AV", "icaoCode": "AVA", "name": "SA AVIANCA" },
"departure": {
"iataCode": "TPE", "icaoCode": "RCTP", "terminal": "2", "gate": "C4",
"delay": "97", "scheduledTime": "2026-09-18T19:10:00.000",
"estimatedTime": "2026-09-18T19:10:00.000", "actualTime": "2026-09-18T20:46:00.000"
},
"arrival": {
"iataCode": "JFK", "icaoCode": "KJFK", "terminal": "1", "gate": "3",
"delay": "65", "scheduledTime": "2026-09-18T22:05:00.000",
"estimatedTime": "2026-09-18T23:10:00.000", "actualTime": null
},
"flight": { "iataNumber": "AV4511", "icaoNumber": "AVA4511", "number": "4511" },
"status": "scheduled",
"type": "arrival"
}
]
}
Codes here are camelCase (iataCode, flight.iataNumber), and the live state is status alongside a type field. The response is a plain data array with no pagination object, so you narrow it with parameters, not offsets.
The flightsFuture endpoint: future-dated schedules
The Aviationstack flightsFuture endpoint returns the scheduled flights for one airport on a date in the future. Call it with an airport iataCode, a type of departure or arrival, and a future date in YYYY-MM-DD form. It answers what is scheduled to fly then, which is what you want for trip planning, capacity forecasting, or seeding a schedule ahead of travel. Because the flight has not happened yet, the response carries scheduled times and a weekday value but no live status.
curl "https://api.aviationstack.com/v1/flightsFuture?access_key=YOUR_ACCESS_KEY&iataCode=BER&type=departure&date=2026-12-15"
A representative response for a future departure schedule:
{
"data": [
{
"weekday": "1",
"departure": {
"iataCode": "BER", "icaoCode": "EDDB", "terminal": "2",
"gate": "B36", "scheduledTime": "09:15"
},
"arrival": {
"iataCode": "BCN", "icaoCode": "LEBL", "terminal": "2",
"gate": "B30", "scheduledTime": "11:50"
},
"aircraft": { "modelCode": "B738", "modelText": "BOEING 737-8AS" },
"airline": { "name": "Ryanair", "iataCode": "FR", "icaoCode": "RYR" },
"flight": { "number": "132", "iataNumber": "FR132", "icaoNumber": "RYR132" }
}
]
}
The flightsFuture schema follows the timetable naming (iataCode, iataNumber, camelCase), and like timetable it returns a data array with no pagination object. Two differences matter: scheduledTime is a wall-clock time (09:15) rather than a full timestamp, and there is no status field, because a future flight has no live state.
How the three compare?
These three are the only Aviationstack endpoints that return flight-level departure and arrival records, which is why they sit together. Reference endpoints such as airports, airlines, and routes return metadata, not flights, so they are out of scope. The table holds all three to the same five questions and shows that the endpoint you pick determines the field names you parse, the status values you receive, and whether you can page through results.
Question | flights | timetable | flightsFuture |
What it returns | Real-time or historical status for specific flights | Live departure or arrival board for one airport | Scheduled flights for one airport on a future date |
Airport and airline codes | iata, icao (e.g. departure.iata) | iataCode, icaoCode | iataCode, icaoCode |
Flight number field | flight.iata, flight.icao | flight.iataNumber, flight.icaoNumber | flight.iataNumber, flight.icaoNumber |
Status field | flight_status: scheduled, active, landed, cancelled, incident, diverted | status (live), plus a type field | none (returns weekday and scheduled times) |
Time fields | scheduled, estimated, actual (full timestamps) | scheduledTime, estimatedTime, actualTime | scheduledTime (wall-clock, e.g. 09:15) |
Pagination | limit and offset, returns a pagination object | data array, no pagination object | data array, no pagination object |
Rate limit (Sept 2026) | Bound by your plan’s monthly quota | 1 request / 10s paid, 1 request / 60s free | 1 request / 10s paid, 1 request / 60s free |
The status values above are the flight_status set documented for the flights endpoint as of September 2026, per the Aviationstack docs. The timetable and flightsFuture rate limits come from APILayer’s Aviationstack changelog dated August 19, 2025; the flights endpoint is governed by your plan’s monthly request allowance rather than a per-request throttle. On the free plan, send requests to http:// rather than https://, and keep example calls small so you do not spend your monthly quota while testing.
The iata versus iataCode trap
Aviationstack splits its field naming by endpoint, and this detail breaks most parsers. The flights endpoint uses lowercase snake_case: iata, icao, flight.iata, and flight_status. The timetable and flightsFuture endpoints use camelCase: iataCode, icaoCode, flight.iataNumber, and scheduledTime (as of September 2026, per the Aviationstack docs). A parser written for one endpoint reads null against the other, so branch on the endpoint you called.
A decision rule per use case
Match the endpoint to what you already know:
- You have a flight number and want its status now or in the past: flights, filtered by flight_iata, with flight_date for history on the Basic plan or higher.
- You want every departure or arrival at an airport right now: timetable, with iataCode and type.
- You want an airport’s schedule for a future date: flightsFuture, with iataCode, type, and date.
- You need to page through a large result set: only flights returns a pagination object; scope timetable and flightsFuture with parameters instead.
Because these are pull endpoints, how often you call them is its own decision. If you are tracking changing flights, see webhook vs polling with Aviationstack, and for a full build, see an automated flight status notification system.
Aviationstack is part of the APILayer suite, so one account, one API key, one dashboard, and one invoice cover it alongside APILayer’s other APIs.
Start building
Pick the endpoint that matches your use case, grab an access key, and make the call. Start with Aviationstack, and keep the official documentation open for the full field reference.
Explore APILayer Products
Discover APIs for geolocation, finance, aviation, weather, web scraping, AI, and more. Browse APILayer's product catalog to find the right APIs for your application and integrate the data and functionality your project needs.
Explore APILayer ProductsFind the right tools to start building.
FAQ
Which Aviationstack endpoint should I use?
Use flights for the status of a specific flight or route, timetable for an airport’s current departures or arrivals board, and flightsFuture for an airport’s schedule on a future date. Flight lookups go to flights; airport boards go to the other two.
What is the difference between the flights and timetable endpoints in Aviationstack?
The flights endpoint returns status for specific flights across airports and uses iata and flight_status, while the timetable endpoint returns one airport’s live board and uses iataCode and status plus a type field. Only flights returns a pagination object.
How do I get future flight schedules from Aviationstack?
Call the flightsFuture endpoint with an airport iataCode, a type of departure or arrival, and a future date in YYYY-MM-DD form. It returns scheduled times and a weekday value, and no live status, because the flight has not happened yet.
Does Aviationstack support pagination?
The flights endpoint supports pagination through limit and offset and returns a pagination object with limit, offset, count, and total. As of September 2026, APILayer’s published timetable and flightsFutureresponses return a data array with no pagination object, so scope those two with request parameters.
Why does Aviationstack return iata on one endpoint and iataCode on another?
The flights endpoint uses snake_case keys such as iata, icao, and flight_status, while timetable and flightsFuture use camelCase keys such as iataCode, icaoCode, and iataNumber. The two schemas are not interchangeable, so parse each endpoint’s field names on their own.
STAY CONNECTED
Casino reviews are among the most read pages in the industry and among the least neutral. Most sites publishing them earn a commission when a reader signs up, which shapes what gets covered and how warmly. Knowing that does not make reviews useless, only in need of careful reading.
Reading Casino Reviews Critically
A review worth trusting names the licence, quotes the withdrawal limits and mentions at least one genuine drawback, because a page with no criticism is advertising with a score attached. Readers comparing sources often Ozwin Casino and check whether the same facts appear consistently. Look for the affiliate disclosure, which regulated markets require and honest publishers place where it can be found.
| Signal | What It Suggests |
|---|---|
| No stated drawbacks | Likely promotional content |
| Affiliate disclosure | Basic transparency |
| Dated payout test | Real hands on checking |
- Look for a disclosure of commercial relationships
- Prefer specifics over adjectives and star ratings
Reviews are a starting point for a shortlist and a poor basis for a final decision. The facts they contain can be verified independently, and anything that cannot be verified is opinion. Use them to narrow the field, confirm the licence yourself, and set a deposit budget before registering anywhere.