BTS Airline On-Time Performance Scraper avatar

BTS Airline On-Time Performance Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
BTS Airline On-Time Performance Scraper

BTS Airline On-Time Performance Scraper

Scrape US DOT Bureau of Transportation Statistics On-Time Performance data. Get airline on-time rates, delay-cause breakdowns, cancellation and diversion rates by carrier, route, year, and month.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

14 days ago

Last modified

Share

Get official US airline on-time performance statistics straight from the US Department of Transportation's Bureau of Transportation Statistics (BTS) — the same data every US airline is legally required to report to the federal government every month. This actor turns the raw monthly BTS flight-level file into ready-to-use summaries: on-time rate, average delay, cancellation and diversion rates, and a full delay-cause breakdown — by airline, by route, or by airport.

What this actor does

  • Computes carrier month summaries — one airline's entire on-time performance for one month, network-wide
  • Computes route month summaries — one airline on one specific origin → destination pair, for one month
  • Ranks an airline's top routes by flight volume for a month, each with full on-time stats
  • Ranks the top carriers at an airport by flight volume for a month, each with full on-time stats
  • No login, API key, cookies, or proxy required — reads BTS's public monthly data file directly
  • Empty fields are omitted (e.g. a group with zero cancelled flights omits the cancellation-cause fields entirely, rather than showing fake zeros)

Output per summary record

  • carrierCode / carrierName — reporting airline
  • originAirport / originCityName / originStateName — departure airport (route / top-carriers-at-airport modes)
  • destAirport / destCityName / destStateName — arrival airport (route / top-routes modes)
  • year / month / monthName
  • rank — flight-volume rank (top-routes / top-carriers modes only)
  • totalFlights — scheduled flights in the group
  • cancelledFlights / cancellationRate
  • cancelledByCarrierCount / cancelledByWeatherCount / cancelledByNASCount / cancelledBySecurityCount — cancelled flights by BTS's reported cancellation reason (only present when BTS recorded a cause code; BTS didn't start collecting this code until June 2003)
  • cancelledByCarrierShare / cancelledByWeatherShare / cancelledByNASShare / cancelledBySecurityShare — each reason's share (%) of cancelled flights
  • divertedFlights / diversionRate
  • onTimeFlights / delayedFlights / onTimeRate — a flight is on-time if it arrived within 15 minutes of schedule, per DOT convention (cancelled/diverted flights excluded)
  • avgDepDelayMinutes / avgArrDelayMinutes
  • avgTaxiOutMinutes / avgTaxiInMinutes / avgAirTimeMinutes / avgDistanceMiles
  • totalCarrierDelayMinutes / totalWeatherDelayMinutes / totalNASDelayMinutes / totalSecurityDelayMinutes / totalLateAircraftDelayMinutes — total delay minutes attributed to each cause (only present when at least one flight reported delay-cause minutes)
  • carrierDelayShare / weatherDelayShare / nasDelayShare / securityDelayShare / lateAircraftDelayShare — each cause's share (%) of total attributed delay minutes
  • sourceUrl — the official BTS On-Time Performance portal
  • sourceDataUrl — the exact monthly government data file this record was computed from
  • recordTypecarrierMonthSummary / routeMonthSummary / topRouteByCarrier / topCarrierByAirport
  • scrapedAt — when this actor computed the record

Input

FieldTypeDefaultDescription
modestringcarrierMonthSummarycarrierMonthSummary / routeMonthSummary / topRoutesByCarrier / topCarriersByAirport
carrierstringWNReporting carrier code (mode=carrierMonthSummary/routeMonthSummary/topRoutesByCarrier). Dropdown of ~34 current + historical US airlines
carrierCodeOverridestringRaw BTS carrier code, used instead of carrier if set (for codes not in the dropdown)
originAirportstringOrigin airport code (mode=routeMonthSummary/topCarriersByAirport). Dropdown of ~115 major US airports
originAirportOverridestringRaw 3-letter airport code, used instead of originAirport if set
destAirportstringDestination airport code (mode=routeMonthSummary)
destAirportOverridestringRaw 3-letter airport code, used instead of destAirport if set
yearstring2025Reporting year, 2000–present
monthstring12Reporting month, 1–12
maxItemsinteger20Cap on ranked records returned (mode=topRoutesByCarrier/topCarriersByAirport), 1–200

Example: Southwest Airlines network-wide summary

{
"mode": "carrierMonthSummary",
"carrier": "WN",
"year": "2025",
"month": "6"
}

Example: on-time performance for a specific route

{
"mode": "routeMonthSummary",
"carrier": "DL",
"originAirport": "ATL",
"destAirport": "JFK",
"year": "2025",
"month": "6"
}

Example: an airline's busiest routes that month

{
"mode": "topRoutesByCarrier",
"carrier": "AA",
"year": "2025",
"month": "6",
"maxItems": 25
}

Example: which carriers dominate an airport

{
"mode": "topCarriersByAirport",
"originAirport": "ORD",
"year": "2025",
"month": "6",
"maxItems": 15
}

Use cases

  • Travel research — compare airlines' on-time reliability before booking
  • Route planning — check historical delay stats for a specific origin-destination pair
  • Aviation journalism — source official DOT statistics for on-time performance stories
  • Competitive analysis — benchmark one airline's operational performance against its historical trend
  • Airport operations research — see which carriers drive the most volume and delays at a given airport
  • Academic / policy research — build datasets of delay-cause attribution (weather vs. carrier vs. air-traffic system)

FAQ

Do I need an API key or to log in to BTS? No. This is fully public US government data — no account, cookies, or API key needed.

Is this actor affiliated with the US DOT or BTS? No. This is an independent, third-party actor that reads BTS's public monthly data files. It is not affiliated with, endorsed by, or operated by the Department of Transportation.

What does "on-time" mean here? A flight counts as on-time if it landed within 15 minutes of its scheduled arrival time — the US DOT's standard definition. Cancelled and diverted flights are reported separately (cancellationRate / diversionRate) rather than folded into the on-time rate.

Why don't I see delay-cause fields on every record? BTS only records carrier/weather/NAS/security/late-aircraft delay-minute breakdowns for flights delayed 15+ minutes. A group of entirely on-time flights has no delay minutes to attribute, so those fields are omitted rather than shown as zero.

Why don't I see cancellation-reason fields on every record? BTS only assigns a cancellation reason code to flights that were actually cancelled, and only started collecting that code in June 2003. A group with nothing to attribute simply omits the cancelledBy* fields rather than showing fake zeros.

Can I get data for a specific flight number or specific day? No — this actor works at the monthly aggregate level (whole carrier, whole route, or top-N rankings), matching what BTS publishes as its downloadable summary-friendly data.

How far back does the data go? BTS calls this series "1987-present", but the actual downloadable monthly files only go back to 2000 — that's the earliest year selectable in this actor.

How fresh is the data? BTS publishes each month's file roughly 2 months after the month ends — for example, January data usually appears in March. If you request a month BTS hasn't released yet, the run finishes with 0 records and a status message explaining why; try an earlier month.

What happens if a route or carrier had no flights that month? The run finishes successfully with 0 records rather than erroring — only routes/carriers that actually operated in the requested month have data.

Does this cover international flights? No — this dataset covers US-certificated air carriers operating domestic (and some US-to-territory) flights only; it does not include foreign carriers or international-only routes.