Flight Delays
curl --request GET \
--url https://api.flystack.dev/v1/delays \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.flystack.dev/v1/delays"
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/delays', 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/delays",
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/delays"
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/delays")
.header("x-api-key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flystack.dev/v1/delays")
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": "SQ",
"airline_icao": "SIA",
"flight_iata": "SQ335",
"flight_icao": "SIA335",
"flight_number": "335",
"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 10:40",
"dep_time_ts": 1793698800,
"dep_time_utc": "2026-11-03 09:40",
"dep_estimated": "2026-11-03 11:25",
"dep_estimated_ts": 1793701531,
"dep_estimated_utc": "2026-11-03 10:25",
"arr_iata": "SIN",
"arr_icao": "WSSS",
"arr_terminal": null,
"arr_gate": null,
"arr_baggage": null,
"arr_time": "2026-11-04 05:32",
"arr_time_ts": 1793741520,
"arr_time_utc": "2026-11-03 21:32",
"arr_estimated": "2026-11-04 06:32",
"arr_estimated_ts": 1793745153,
"arr_estimated_utc": "2026-11-03 22:32",
"status": "active",
"duration": 712,
"delayed": 45
}
]
{
"error": {
"code": "VALIDATION_ERROR",
"message": "delay: Input should be greater than 30"
}
}
Real-time
Flight Delays
Monitor live flight delays worldwide or filter by airport, airline, or flight.
GET
/
v1
/
delays
Flight Delays
curl --request GET \
--url https://api.flystack.dev/v1/delays \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.flystack.dev/v1/delays"
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/delays', 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/delays",
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/delays"
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/delays")
.header("x-api-key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flystack.dev/v1/delays")
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": "SQ",
"airline_icao": "SIA",
"flight_iata": "SQ335",
"flight_icao": "SIA335",
"flight_number": "335",
"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 10:40",
"dep_time_ts": 1793698800,
"dep_time_utc": "2026-11-03 09:40",
"dep_estimated": "2026-11-03 11:25",
"dep_estimated_ts": 1793701531,
"dep_estimated_utc": "2026-11-03 10:25",
"arr_iata": "SIN",
"arr_icao": "WSSS",
"arr_terminal": null,
"arr_gate": null,
"arr_baggage": null,
"arr_time": "2026-11-04 05:32",
"arr_time_ts": 1793741520,
"arr_time_utc": "2026-11-03 21:32",
"arr_estimated": "2026-11-04 06:32",
"arr_estimated_ts": 1793745153,
"arr_estimated_utc": "2026-11-03 22:32",
"status": "active",
"duration": 712,
"delayed": 45
}
]
{
"error": {
"code": "VALIDATION_ERROR",
"message": "delay: Input should be greater than 30"
}
}
Beta: This endpoint reflects live delays for departing or arriving flights. Coverage may vary.
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.
Authentication
string
required
Your FlyStack API token. You can create one from the dashboard (see Authentication).
Query parameters
Required
number
required
Minimum delay (in minutes). Must be greater than 30.
string
required
Flight type:
departuresarrivals
Optional filters
string
Filter by departure airport IATA code.
string
Filter by departure airport ICAO code.
string
Filter by arrival airport IATA code.
string
Filter by arrival airport ICAO code.
string
Filter by airline ICAO code.
string
Filter by airline IATA code.
string
Filter by flight ICAO code-number.
string
Filter by flight IATA code-number.
string
Filter by flight number only.
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 delayed flights.Delay response fields
This response reuses the schedule-style fields (airline/flight codes, airports, times). The key delay field is
delayed. Arrival delays only count landings observed: a flight that left receiver coverage has none.Show Core identifiers
Show Core identifiers
Show Airports
Show Airports
string
Departure airport IATA code.
string
Departure airport ICAO code.
string
Arrival airport IATA code.
string
Arrival airport ICAO code.
string
Estimated departure terminal (when available).
string
Estimated departure gate (when available).
string
Estimated arrival terminal (when available).
string
Estimated arrival gate (when available).
string
Estimated baggage belt (when available).
Show Times & delay
Show Times & delay
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
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
scheduled, cancelled, active, landed.number
Flight duration in minutes, takeoff to landing: observed on the flights FlyStack tracked, else estimated from the distance.
number
Estimated delay time (minutes).
[
{
"airline_iata": "SQ",
"airline_icao": "SIA",
"flight_iata": "SQ335",
"flight_icao": "SIA335",
"flight_number": "335",
"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 10:40",
"dep_time_ts": 1793698800,
"dep_time_utc": "2026-11-03 09:40",
"dep_estimated": "2026-11-03 11:25",
"dep_estimated_ts": 1793701531,
"dep_estimated_utc": "2026-11-03 10:25",
"arr_iata": "SIN",
"arr_icao": "WSSS",
"arr_terminal": null,
"arr_gate": null,
"arr_baggage": null,
"arr_time": "2026-11-04 05:32",
"arr_time_ts": 1793741520,
"arr_time_utc": "2026-11-03 21:32",
"arr_estimated": "2026-11-04 06:32",
"arr_estimated_ts": 1793745153,
"arr_estimated_utc": "2026-11-03 22:32",
"status": "active",
"duration": 712,
"delayed": 45
}
]
{
"error": {
"code": "VALIDATION_ERROR",
"message": "delay: Input should be greater than 30"
}
}