Flight Status
Real-time operational status for a single scheduled flight. Pass an IATA flight number (2-letter airline prefix + digits, e.g. BA123) or an ICAO operator prefix (3-letter prefix, e.g. BAW123). The response includes departure and arrival times, terminal, gate, check-in desk, and baggage belt when published.
Gate, terminal, baggage, and check-in fields are frequently empty strings ("") until the airline or airport publishes them — not null. Treat empty strings as "unknown" in your UI; do not surface them as configuration errors.
ICAO-prefix lookup resolves operator codes from SkyLink reference data. Prefer IATA when you have it — European operator resolution is less reliable than major-carrier IATA lookup.
Request
Requirements
x-api-key on every request (direct subscription). Learn more →https://data.skylinkapi.com/v3.1/flight_status/{flight_number}| Parameter | Type | Required | Description |
|---|---|---|---|
flight_number | string | Yes | Flight number in IATA (BA123) or ICAO operator prefix + digits (BAW123) |
Response
{
"flight_number": "BA 123",
"airline": "British Airways",
"status": "En Route",
"departure": {
"airport": "EGLL",
"airport_full": "London Heathrow Airport",
"scheduled_time": "10:30",
"scheduled_date": "11 Feb",
"actual_time": "10:35",
"actual_date": "11 Feb",
"terminal": "5",
"gate": "A12",
"checkin": ""
},
"arrival": {
"airport": "KJFK",
"airport_full": "John F Kennedy International Airport",
"scheduled_time": "14:45",
"scheduled_date": "11 Feb",
"estimated_time": "14:50",
"estimated_date": "11 Feb",
"terminal": "7",
"gate": "B15",
"baggage": ""
}
}Top-level fields
| Field | Type | Required | Description |
|---|---|---|---|
flight_number | string | Yes | Display flight number, e.g. "BA 123" |
airline | string | Yes | Airline display name |
status | string | Yes | Current status label — treat as display text, not a fixed enum |
departure | object | Yes | Departure airport and gate information |
arrival | object | Yes | Arrival airport and gate information |
departure object
| Field | Type | Required | Notes |
|---|---|---|---|
airport | string | Yes | Airport code (IATA or ICAO) |
airport_full | string | Yes | Full airport name |
scheduled_time | string | Yes | Local scheduled departure time |
scheduled_date | string | Yes | Local scheduled departure date |
actual_time | string | Yes | Actual or latest known departure time |
actual_date | string | Yes | Date for actual_time |
terminal | string | Yes | May be "" when not published |
gate | string | Yes | May be "" when unknown |
checkin | string | Yes | May be "" when not provided |
arrival object
| Field | Type | Required | Notes |
|---|---|---|---|
airport | string | Yes | Arrival airport code |
airport_full | string | Yes | Full airport name |
scheduled_time | string | Yes | Local scheduled arrival time |
scheduled_date | string | Yes | Local scheduled arrival date |
estimated_time | string | Yes | Latest estimated arrival when en route |
estimated_date | string | Yes | Date for estimated_time |
terminal | string | Yes | May be "" when not available |
gate | string | Yes | May be "" when unknown |
baggage | string | Yes | Baggage belt — may be "" when not published |
Client types
"""Flight status response models for /flight_status/{flight_number}."""from __future__ import annotationsfrom dataclasses import dataclass@dataclassclass FlightStatusRequest: """Request input for GET /flight_status/{flight_number}.""" flight_number: str@dataclassclass DepartureInfo: airport: str airport_full: str scheduled_time: str scheduled_date: str actual_time: str actual_date: str terminal: str gate: str checkin: str@dataclassclass ArrivalInfo: airport: str airport_full: str scheduled_time: str scheduled_date: str estimated_time: str estimated_date: str terminal: str gate: str baggage: str@dataclassclass FlightStatusResponse: flight_number: str airline: str status: str departure: DepartureInfo arrival: ArrivalInfoIntegration
Build a compact flight status card from a single lookup helper.
The example below normalizes the input flight number for display, applies connect/read timeouts, and maps the response into a flat view model for UI components.
import osimport requestsBASE = "https://data.skylinkapi.com/v3.1"HEADERS = { "x-api-key": os.getenv("SKYLINK_API_KEY", "YOUR_API_KEY")}def fetch_flight_status(flight_number: str) -> dict: """Fetch a single flight status snapshot by flight number.""" r = requests.get( f"{BASE}/flight_status/{flight_number}", headers=HEADERS, timeout=(10, 15), ) r.raise_for_status() return r.json()if __name__ == "__main__": import json status = fetch_flight_status("AA100") print(json.dumps(status, indent=2, default=str))Implementation notes
Handling missing gate and terminal data. Gate, terminal, baggage belt, and check-in desk fields are often empty strings until shortly before departure or arrival. Hide or show a neutral placeholder — not an error banner.
Status labels. Do not hard-code an exhaustive status enum. Special-case only what your UI needs (e.g. Cancelled vs Landed for color coding).
Polling frequency. Poll every 2–5 minutes for consumer flight boards. For push updates, see Webhooks.
Error responses
For shared platform errors, see Error Handling. Endpoint-specific:
404 - flight not found
{
"detail": "Flight not found for number: BA123"
}Usually means the flight is not operating today, the number is invalid, or upstream has not published it yet. There is no date parameter on this endpoint — check Schedules for the operating day.
Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Path Parameters
Flight number in IATA (BA123) or ICAO (BAW123, CCA933) format
2 <= length <= 10Response Body
application/json
application/json
curl -X GET "https://data.skylinkapi.com/v3.1/flight_status/UA100"{
"flight_number": "BA 123",
"airline": "British Airways",
"status": "En Route",
"departure": {
"airport": "EGLL",
"airport_full": "London Heathrow Airport",
"scheduled_time": "10:30",
"scheduled_date": "11 Feb",
"actual_time": "10:35",
"actual_date": "11 Feb",
"terminal": "5",
"gate": "A12",
"checkin": ""
},
"arrival": {
"airport": "KJFK",
"airport_full": "John F Kennedy International Airport",
"scheduled_time": "14:45",
"scheduled_date": "11 Feb",
"estimated_time": "14:50",
"estimated_date": "11 Feb",
"terminal": "7",
"gate": "B15",
"baggage": ""
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Related: Schedules · Flight Briefing · Airlines