Aviationstack API

Flights, Timetable, or FlightsFuture: Which Aviationstack Endpoint Do You Actually Need?

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.

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 Products
Browse products by category and discover APIs for your project.
Find 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.

SignalWhat It Suggests
No stated drawbacksLikely promotional content
Affiliate disclosureBasic transparency
Dated payout testReal 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.

Related posts
Aviationstack APIIP API

Build a Flight Delay Alert API with aviationstack and Vercel

Aviationstack API

Build a 7-Day Departure Board with Aviationstack

Aviationstack API

Introducing continuous flight schedules

Aviationstack API

Webhook vs Polling: When Each Makes Sense (with Real Examples from Aviationstack)