Travel & Lodging

FlightAware API

The FlightAware API returns live flight-tracking data as clean JSON.

3 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary flight_status endpoint returns a flight's ident, status, airline, aircraft, origin, destination and gate times, and you can pull a live_position and an airport_board. It is built for travel apps, logistics and flight-tracking products that need live flight data. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, flight_status, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/flightaware/v1/flight_status",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "ident": "UAL100"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "flightaware",
    "endpoint": "flight_status",
    "mode": "live",
    "latency_ms": 2806.9,
    "record_count": 1,
    "bytes": 590241,
    "cache_hit": false,
    "method": "ssr_trackpoll_bootstrap"
  },
  "data": {
    "flight": {
      "ident": "UAL100",
      "display_ident": "UAL100",
      "iata_ident": "UA100",
      "friendly_ident": "United 100",
      "flight_id": "UAL[redacted-phone]-schedule-29p:8",
      "status": "arrived",
      "cancelled": false,
      "diverted": false,
      "airline": {
        "name": "[redacted-name]",
        "short_name": "United",
        "icao": "UAL",
        "iata": "UA",
        "callsign": "United",
        "url": "https://www.united.com/"
      },
      "aircraft": {
        "type": "B789",
        "friendly_type": "Boeing 787-9 Dreamliner (twin-jet)",
        "manufacturer": "Boeing",
        "model": "787-9 Dreamliner",
        "engines": "2",
        "engine_type": "jet",
        "tail": null,
        "heavy": true
      },
      "origin": {
        "iata": "SYD",
        "icao": "YSSY",
        "name": "Sydney",
        "city": "Sydney, Australia",
        "timezone": "Australia/Sydney",
        "gate": "26",
        "terminal": "1",
        "coord": {
          "latitude": -33.9461,
          "longitude": 151.1772
        },
        "delays": null
      },
      "destination": {
        "iata": "IAH",
        "icao": "KIAH",
        "name": "[redacted-name]",
        "city": "Houston, TX",
        "timezone": "America/Chicago",
        "gate": "E5",
        "terminal": "E",
        "coord": {
          "latitude": 29.9844,
          "longitude": -95.3414
        },
        "delays": null
      },
      "gate_departure": {
        "scheduled": 1774659000,
        "estimated": 1774659600,
        "actual": 1774659600
      },
      "takeoff": {
        "scheduled": 1774659600,
        "estimated": 1774660680,
        "actual": 1774660680
      },
      "landing": {
        "scheduled": 1774714680,
        "estimated": 1774715700,
        "actual": 1774715700
      },
      "gate_arrival": {
        "scheduled": 1774715100,
        "estimated": 1774716180,
        "actual": 1774716300
      },
      "progress": {
        "flown_miles": 7479,
        "remaining_miles": 1,
        "actual_miles": 7693,
        "percent_complete": 100
      },
      "position": {
        "latitude": 29.9934,
        "longitude": -95.3487,
        "altitude_100ft": null,
        "groundspeed_kts": 141,
        "heading": null,
        "timestamp": 1774715672
      },
      "flight_plan": {
        "route": "M082F290 DCT NOBAR B474 ISTEM/M084F330 DCT 23S163E DCT 18S168E DCT 14S172E/M084F350 DCT GITON DCT 05S179W DCT 01N170W/M084F370 DCT 06N160W DCT 11N150W DCT 17N140W/M084F390 DCT 21N130W DCT 24N120W/M084F410 DCT LTO/N0482F410 DCT DUTES DCT DLF DCT SAT HTOWN3",
        "filed_altitude": 290,
        "filed_speed": 486,
        "direct_distance": 7479,
        "planned_distance": 7503,
        "ete_seconds": 55080
      },
      "last_updated": 1774716363
    }
  }
}
Actions

What the FlightAware API does

ActionDescriptionConcrete use caseKey params
flight_statusLive status for one flight by ident or flight number. Returns origin/destination (airport name, IATA/ICAO, gate, terminal, timezone, coordinates), scheduled / estimated / actual times for gate-out, take-off, landing and gate-in, aircraft type, airline, trip progress (percent complete, miles flown/remaining), the live position (altitude, groundspeed, heading) when airborne, and the filed flight plan.Travel apps call flight_status to get live status for one flight by ident or flight number.ident
live_positionLive ADS-B track for one airborne flight: current position plus the full position history (lat/lon/altitude/groundspeed per timestamp) FlightAware has logged for this leg. Use flight_status first to confirm the flight is airborne. For grounded / arrived flights `position` is null and `track` is whatever was logged on the ground.Pricing monitors call live_position to get live ADS-B track for one airborne flight.ident
airport_boardLive activity board for an airport: the arrivals, departures, en-route or scheduled flights FlightAware shows for that airport. Each row gives the flight ident, aircraft type, the other airport (IATA), and the scheduled/estimated times. Feed an ident back into flight_status for full detail.Itinerary products call airport_board to get live activity board for an airport.airport, board, limit
Code samples

Call flight_status from your stack

curl -X POST https://api.reefapi.com/flightaware/v1/flight_status \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"ident":"UAL100"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.flightaware.flight_status with {"ident":"UAL100"}.
Use cases

Who uses this API and why

  • Travel apps call flight_status to show a passenger's live flight state.
  • Logistics tracks cargo flights with live_position.
  • Airport apps use airport_board for departures and arrivals.
FAQ

Questions developers ask before integrating

What is the FlightAware API?

FlightAware API is a ReefAPI endpoint group for flightaware It returns live JSON through POST requests under /flightaware/v1.

Is the FlightAware API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. FlightAware calls use the same shared credit balance as every other ReefAPI engine.

Do I need a FlightAware login or account?

No login to FlightAware is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the FlightAware data?

The page example is captured from a live flight_status call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the FlightAware API use?

FlightAware actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call FlightAware from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call flightaware actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the FlightAware API a FlightAware scraper?

It is the managed alternative to a DIY FlightAware scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same flightaware back as clean JSON.

Why does my FlightAware scraper keep getting blocked?

Most FlightAware scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / flightaware

FlightAware

FlightAware

base /flightaware/v13 endpoints
post/flightaware/v1/flight_status1 credit

Live status for one flight by ident or flight number. Returns origin/destination (airport name, IATA/ICAO, gate, terminal, timezone, coordinates), scheduled / estimated / actual times for gate-out, take-off, landing and gate-in, aircraft type, airline, trip progress (percent complete, miles flown/remaining), the live position (altitude, groundspeed, heading) when airborne, and the filed flight plan.

ParameterAllowed / rangeDescription
identrequiredFlight identifier — an airline flight number in ICAO form (UAL100, DAL47, BAW178) or IATA form (UA100, DL47, BA178), or a registration/callsign. IATA is auto-resolved to the operating flight. The aircraft's most recent/active leg is returned.
Try in playground →
post/flightaware/v1/live_position1 credit

Live ADS-B track for one airborne flight: current position plus the full position history (lat/lon/altitude/groundspeed per timestamp) FlightAware has logged for this leg. Use flight_status first to confirm the flight is airborne. For grounded / arrived flights `position` is null and `track` is whatever was logged on the ground.

ParameterAllowed / rangeDescription
identrequiredFlight identifier — an airline flight number in ICAO form (UAL100, DAL47, BAW178) or IATA form (UA100, DL47, BA178), or a registration/callsign. IATA is auto-resolved to the operating flight. The aircraft's most recent/active leg is returned.
Try in playground →
post/flightaware/v1/airport_board1 credit

Live activity board for an airport: the arrivals, departures, en-route or scheduled flights FlightAware shows for that airport. Each row gives the flight ident, aircraft type, the other airport (IATA), and the scheduled/estimated times. Feed an ident back into flight_status for full detail.

ParameterAllowed / rangeDescription
airportrequiredAirport code — ICAO (KJFK, EGLL, EDDF) or IATA (JFK, LHR, FRA). ICAO is the most reliable. Returns the live activity boards for that airport.
board = arrivalsoptionalarrivals · departures · enroute · scheduledWhich activity board to return: arrivals, departures, enroute or scheduled.
limit = 20optional1–20Max flights to return from the board (1-20; FlightAware renders ~20 per board to logged-out requests).
Try in playground →