# FAA Airport Status & Delays Scraper (`martc03/faa-airport-delays`) Actor

Tracks real-time airport delays and ground stops from the FAA National Airspace System Status. All US airports with delay reasons and durations.

- **URL**: https://apify.com/martc03/faa-airport-delays.md
- **Developed by:** [CoDee](https://apify.com/martc03) (community)
- **Categories:** Travel, Automation
- **Stats:** 4 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## :airplane: FAA Airport Status & Delays Tracker

Real-time **US airport delays, ground stops, and closures** from the [FAA (Federal Aviation Administration)](https://nasstatus.faa.gov/) SWIM feed. Covers all major US airports with active ground delays, ground stops, arrival/departure delays, closures, and deicing alerts.

### What data does it extract?

For each active delay or event, the Actor extracts:

| Field | Description |
|-------|-------------|
| **Airport Code** | IATA code (e.g., `JFK`, `LAX`, `ORD`) |
| **Airport Name** | Full airport name |
| **Delay Type** | Ground Delay, Ground Stop, Closure, Arrival Delay, Departure Delay, Deicing |
| **Status** | Active, Closed, or Normal Operations |
| **Reason** | Cause of delay (weather, volume, runway, equipment, etc.) |
| **Avg/Max Delay** | Average and maximum delay times |
| **Start/End Time** | When the delay program began and is expected to end |
| **NOTAM** | NOTAM number and text for the event |
| **Coordinates** | Latitude and longitude of the airport |

### Output example

```json
{
  "airportCode": "EWR",
  "airportName": "Newark Liberty International Airport",
  "delayType": "Ground Delay",
  "status": "Active",
  "reason": "WEATHER / LOW CEILINGS",
  "avgDelay": "1 hour and 12 minutes",
  "maxDelay": "1 hour and 45 minutes",
  "startTime": "2026-02-25T14:00:00Z",
  "endTime": "2026-02-25T20:00:00Z",
  "notamNumber": 1234,
  "notamText": "GDP EWR 14:00-20:00 WX/LOW CIGS",
  "latitude": "40.6925",
  "longitude": "-74.1687",
  "scrapedAt": "2026-02-25T16:00:00.000Z",
  "sourceUrl": "https://nasstatus.faa.gov/api/airport-events"
}
```

### Input options

| Parameter | Type | Description |
|-----------|------|-------------|
| `airports` | string\[] | Filter by IATA airport codes (e.g., `["JFK", "LAX", "ORD"]`). Leave empty for all airports with active events. |
| `delayTypes` | string\[] | Filter by delay type: Ground Delay, Ground Stop, Closure, Arrival Delay, Departure Delay, Deicing. Leave empty for all. |
| `includeAirportsWithoutDelays` | boolean | When filtering by airport, include airports with no active delays. Default: false. |

### Delay types

| Type | Description |
|------|-------------|
| **Ground Delay** | Flights held on the ground at departure airports to manage arrival flow |
| **Ground Stop** | No departures allowed to the affected airport |
| **Closure** | Airport is fully closed |
| **Arrival Delay** | Delays for arriving flights |
| **Departure Delay** | Delays for departing flights |
| **Deicing** | Deicing operations causing delays |

### Use cases

- **Airlines & dispatchers** — Monitor delay programs in real time for operational planning
- **Travel apps** — Integrate live airport delay data into flight tracking and rebooking tools
- **Freight & logistics** — Factor airport delays into air cargo scheduling and routing
- **Business travelers** — Check for delays before heading to the airport
- **Data journalists** — Analyze patterns in airport delays, causes, and seasonal trends
- **Aviation researchers** — Study airspace congestion, weather impacts, and NAS performance

### Data freshness

The FAA updates this data **continuously**. Schedule this Actor to run every 15-60 minutes for real-time airport delay monitoring.

### Cost

This Actor makes a single API request per run. Typical cost: **less than $0.01 per run**.

# Actor input Schema

## `airports` (type: `array`):

Filter by IATA airport codes (e.g., \["JFK", "LAX", "ORD", "ATL"]). Leave empty to return all airports with active delays/events.

## `delayTypes` (type: `array`):

Filter by delay type. Options: Ground Delay, Ground Stop, Closure, Arrival Delay, Departure Delay, Deicing, Free Form. Leave empty for all types.

## `includeAirportsWithoutDelays` (type: `boolean`):

When filtering by airport codes, include airports that currently have no active delays. Default: false.

## Actor input object example

```json
{
  "includeAirportsWithoutDelays": false
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("martc03/faa-airport-delays").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("martc03/faa-airport-delays").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call martc03/faa-airport-delays --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,martc03/faa-airport-delays"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/AZx5ogHO8f1iyykIZ/builds/1tHyssNCnrS4gwYIm/openapi.json
