Flight Schedules
curl --request GET \
--url https://api.flystack.dev/v1/schedules \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.flystack.dev/v1/schedules"
headers = {"x-api-key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
fetch('https://api.flystack.dev/v1/schedules', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.flystack.dev/v1/schedules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.flystack.dev/v1/schedules"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.flystack.dev/v1/schedules")
.header("x-api-key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flystack.dev/v1/schedules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body[
{
"airline_iata": "SK",
"airline_icao": "SAS",
"flight_iata": "SK834",
"flight_icao": "SAS834",
"flight_number": "834",
"cs_airline_iata": null,
"cs_flight_number": null,
"cs_flight_iata": null,
"dep_iata": "CDG",
"dep_icao": "LFPG",
"dep_terminal": null,
"dep_gate": null,
"dep_time": "2026-11-03 12:05",
"dep_time_ts": 1793703900,
"dep_time_utc": "2026-11-03 11:05",
"dep_estimated": "2026-11-03 12:16",
"dep_estimated_ts": 1793704605,
"dep_estimated_utc": "2026-11-03 11:16",
"dep_actual": "2026-11-03 12:16",
"dep_actual_ts": 1793704605,
"dep_actual_utc": "2026-11-03 11:16",
"arr_iata": "OSL",
"arr_icao": "ENGM",
"arr_terminal": null,
"arr_gate": null,
"arr_baggage": null,
"arr_time": "2026-11-03 14:05",
"arr_time_ts": 1793711100,
"arr_time_utc": "2026-11-03 13:05",
"arr_estimated": "2026-11-03 14:21",
"arr_estimated_ts": 1793712101,
"arr_estimated_utc": "2026-11-03 13:21",
"arr_actual": "2026-11-03 14:21",
"arr_actual_ts": 1793712101,
"arr_actual_utc": "2026-11-03 13:21",
"status": "landed",
"duration": 120,
"dep_delayed": 11,
"arr_delayed": 16
}
]
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Provide an airport (dep_/arr_), airline or flight filter."
}
}
Real-time
Flight Schedules
Retrieve near real-time departure and arrival schedules, with usual, estimated and actual times.
GET
/
v1
/
schedules
Flight Schedules
curl --request GET \
--url https://api.flystack.dev/v1/schedules \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.flystack.dev/v1/schedules"
headers = {"x-api-key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
fetch('https://api.flystack.dev/v1/schedules', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.flystack.dev/v1/schedules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.flystack.dev/v1/schedules"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.flystack.dev/v1/schedules")
.header("x-api-key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flystack.dev/v1/schedules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body[
{
"airline_iata": "SK",
"airline_icao": "SAS",
"flight_iata": "SK834",
"flight_icao": "SAS834",
"flight_number": "834",
"cs_airline_iata": null,
"cs_flight_number": null,
"cs_flight_iata": null,
"dep_iata": "CDG",
"dep_icao": "LFPG",
"dep_terminal": null,
"dep_gate": null,
"dep_time": "2026-11-03 12:05",
"dep_time_ts": 1793703900,
"dep_time_utc": "2026-11-03 11:05",
"dep_estimated": "2026-11-03 12:16",
"dep_estimated_ts": 1793704605,
"dep_estimated_utc": "2026-11-03 11:16",
"dep_actual": "2026-11-03 12:16",
"dep_actual_ts": 1793704605,
"dep_actual_utc": "2026-11-03 11:16",
"arr_iata": "OSL",
"arr_icao": "ENGM",
"arr_terminal": null,
"arr_gate": null,
"arr_baggage": null,
"arr_time": "2026-11-03 14:05",
"arr_time_ts": 1793711100,
"arr_time_utc": "2026-11-03 13:05",
"arr_estimated": "2026-11-03 14:21",
"arr_estimated_ts": 1793712101,
"arr_estimated_utc": "2026-11-03 13:21",
"arr_actual": "2026-11-03 14:21",
"arr_actual_ts": 1793712101,
"arr_actual_utc": "2026-11-03 13:21",
"status": "landed",
"duration": 120,
"dep_delayed": 11,
"arr_delayed": 16
}
]
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Provide an airport (dep_/arr_), airline or flight filter."
}
}
Build timetables and “what’s next” experiences using live flight schedules. Schedules are ideal for airport-style boards, lounge/terminal displays, travel assistants, bots, widgets, and any product that needs the latest departure/arrival queue.
Schedules typically return results up to ~10 hours ahead (coverage may vary).
Authentication
string
required
Your FlyStack API token. You can create one from the dashboard (see Authentication).
Query parameters
You can query schedules by airport, airline, or specific flight codes: at least one of these filters is required.Scheduled times are the usual times of the flight, learned from at least 3 of its flights FlyStack tracked; delays are measured against them, not against an airline timetable.
Airport filters
string
Departure airport IATA code (e.g.,
MIA).string
Departure airport ICAO code (e.g.,
KMIA).string
Arrival airport IATA code (e.g.,
SFO).string
Arrival airport ICAO code (e.g.,
KSFO).Airline filters
string
Query by one airline IATA code, or provide multiple IATA codes when querying by airport (comma-separated).
string
Query by one airline ICAO code, or provide multiple ICAO codes when querying by airport (comma-separated).
Flight filters
string
Query by flight ICAO code-number (e.g.,
BAW6984).string
Query by flight IATA code-number (e.g.,
BA6984).Response shaping & pagination
string
Comma-separated list of fields to return (e.g.,
airline_iata,flight_number).number
Max number of rows per response: 100 by default, up to 1,000 (limits may depend on your plan).
number
Pagination offset (0+). When more rows match, the response has the headers
X-Has-More: true and X-Next-Offset: pass its value as offset to get the next page.Response
The endpoint returns a list of schedule entries, by departure time (then flight code), so that pages follow each other.Flight schedule response fields
Show Airline & flight identifiers
Show Airline & flight identifiers
Show Departure
Show Departure
Show Arrival
Show Arrival
Show Times (scheduled / estimated / actual)
Show Times (scheduled / estimated / actual)
string
Scheduled departure time (local).
number
Scheduled departure time (unix).
string
Scheduled departure time (UTC).
string
Estimated departure time (local, when available).
number
Estimated departure time (unix, when available).
string
Estimated departure time (UTC, when available).
string
Actual departure time (local, when available).
number
Actual departure time (unix, when available).
string
Actual departure time (UTC, when available).
string
Scheduled arrival time (local).
number
Scheduled arrival time (unix).
string
Scheduled arrival time (UTC).
string
Estimated arrival time (local, when available).
number
Estimated arrival time (unix, when available).
string
Estimated arrival time (UTC, when available).
string
Actual arrival time (local, when available).
number
Actual arrival time (unix, when available).
string
Actual arrival time (UTC, when available).
Show Status & derived fields
Show Status & derived fields
number
Flight duration in minutes, takeoff to landing: observed on the flights FlyStack tracked, else estimated from the distance.
number
Estimated departure delay (minutes, when available).
number
Estimated arrival delay (minutes, when available).
string
scheduled, cancelled, active, landed. A flight that leaves receiver coverage stays active until its estimated arrival, then landed with no actual arrival time or arrival delay: its landing was not observed, and its arrival airport is the one its route publishes.[
{
"airline_iata": "SK",
"airline_icao": "SAS",
"flight_iata": "SK834",
"flight_icao": "SAS834",
"flight_number": "834",
"cs_airline_iata": null,
"cs_flight_number": null,
"cs_flight_iata": null,
"dep_iata": "CDG",
"dep_icao": "LFPG",
"dep_terminal": null,
"dep_gate": null,
"dep_time": "2026-11-03 12:05",
"dep_time_ts": 1793703900,
"dep_time_utc": "2026-11-03 11:05",
"dep_estimated": "2026-11-03 12:16",
"dep_estimated_ts": 1793704605,
"dep_estimated_utc": "2026-11-03 11:16",
"dep_actual": "2026-11-03 12:16",
"dep_actual_ts": 1793704605,
"dep_actual_utc": "2026-11-03 11:16",
"arr_iata": "OSL",
"arr_icao": "ENGM",
"arr_terminal": null,
"arr_gate": null,
"arr_baggage": null,
"arr_time": "2026-11-03 14:05",
"arr_time_ts": 1793711100,
"arr_time_utc": "2026-11-03 13:05",
"arr_estimated": "2026-11-03 14:21",
"arr_estimated_ts": 1793712101,
"arr_estimated_utc": "2026-11-03 13:21",
"arr_actual": "2026-11-03 14:21",
"arr_actual_ts": 1793712101,
"arr_actual_utc": "2026-11-03 13:21",
"status": "landed",
"duration": 120,
"dep_delayed": 11,
"arr_delayed": 16
}
]
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Provide an airport (dep_/arr_), airline or flight filter."
}
}