Save up to 17% with yearly billing

See pricing

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

Auth
x-api-key on every request (direct subscription). Learn more →
GEThttps://data.skylinkapi.com/v3.1/flight_status/{flight_number}
ParameterTypeRequiredDescription
flight_numberstringYesFlight 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

FieldTypeRequiredDescription
flight_numberstringYesDisplay flight number, e.g. "BA 123"
airlinestringYesAirline display name
statusstringYesCurrent status label — treat as display text, not a fixed enum
departureobjectYesDeparture airport and gate information
arrivalobjectYesArrival airport and gate information

departure object

FieldTypeRequiredNotes
airportstringYesAirport code (IATA or ICAO)
airport_fullstringYesFull airport name
scheduled_timestringYesLocal scheduled departure time
scheduled_datestringYesLocal scheduled departure date
actual_timestringYesActual or latest known departure time
actual_datestringYesDate for actual_time
terminalstringYesMay be "" when not published
gatestringYesMay be "" when unknown
checkinstringYesMay be "" when not provided

arrival object

FieldTypeRequiredNotes
airportstringYesArrival airport code
airport_fullstringYesFull airport name
scheduled_timestringYesLocal scheduled arrival time
scheduled_datestringYesLocal scheduled arrival date
estimated_timestringYesLatest estimated arrival when en route
estimated_datestringYesDate for estimated_time
terminalstringYesMay be "" when not available
gatestringYesMay be "" when unknown
baggagestringYesBaggage 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: ArrivalInfo

Integration

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.

GET
/flight_status/{flight_number}
x-api-key<token>

Your SkyLink licence key, for keys bought direct from skylinkapi.com.

In: header

Path Parameters

flight_number*Flight Number

Flight number in IATA (BA123) or ICAO (BAW123, CCA933) format

Length2 <= length <= 10

Response 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