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.
Request
Requirements
x-api-key on every request (direct subscription). Learn more →https://data.skylinkapi.com/v3/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 |
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 |
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 |
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
import osimport requestsBASE = "https://data.skylinkapi.com/v3"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 are often empty strings until shortly before departure or arrival.
Status labels. Do not hard-code an exhaustive status enum.
Polling frequency. Poll every 2–5 minutes for consumer flight boards.
Error responses
404 - flight not found
{
"detail": "Flight not found for number: BA123"
}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/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