Detroit Airport Flight Status Scraper
Pricing
from $0.48 / 1,000 flight extracteds
Detroit Airport Flight Status Scraper
Export current Detroit Metro Airport (DTW) arrivals and departures with airline, flight number, route, estimated time, status, gate, and observation timestamp.
Pricing
from $0.48 / 1,000 flight extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Export detroit airport flight status as structured arrival and departure rows from the current public Detroit Metropolitan Airport (DTW) flight board. Use the dataset to check flight identities, routes, estimated times, public statuses and gates during repeated airport operations monitoring.
The Actor reads the airport's browser-facing flight feed. It is a snapshot exporter, not a flight alerting or historical archive service. Run it again on an Apify schedule to collect later snapshots; compare them downstream when change detection matters.
Who is this for?
- Airport operations teams assembling a current inbound or outbound board in a spreadsheet.
- Ground transportation operators checking arrivals and gates before dispatch.
- Travel automation builders refreshing specific airline or status subsets.
Why use this Actor?
One run yields normalized rows instead of a screenshot or manually copied table. Choose arrivals, departures, or both, then narrow the current feed by airline, flight number, route city/code or public status. Output includes an observation timestamp and source URL for provenance. Missing source values stay null; the Actor never invents a scheduled time from an estimated time.
What data is exported?
| Field | Meaning |
|---|---|
direction, airline, airlineCode, flightNumber | Public flight identity and movement type. |
originAirportCode, originCity, destinationAirportCode, destinationCity | The public airport route labels. |
scheduledTime, estimatedTime | Source local date/time strings, without an implied timezone offset. Sentinel/missing times become null. |
status, gate | Airport public status and gate, nullable. |
observedAt, sourceUrl | UTC observation time and official board URL. observedAt is not the airport's last-update time. |
Get started
- Leave Flight direction at Both for the current board, or pick Arrivals/Departures.
- Optionally enter an airline, flight number, city/airport code or public status filter.
- Set a row limit and run. The default saves at most 100 matches.
- Download the dataset as JSON or CSV, or schedule another run for a later snapshot.
Input options
direction:both,arrivalsordepartures(defaultboth).airline: case-insensitive substring of airline name or code.flightNumber: case-insensitive substring of the flight identifier.city: case-insensitive substring of either route city or airport code.status: case-insensitive substring of the published public status.maxItems: 1–5000; defaults to 100. The limit is applied after filtering/deduplication.
The airport feed covers a rolling public window (normally six hours past and twelve hours ahead). There is no arbitrary date, archived history, custom URL, flight tracking map, alert delivery, or guaranteed full-day schedule mode. Filters search only the rows currently returned by the airport.
Example input
{"direction":"arrivals","maxItems":25}
For a focused operations feed: {"direction":"arrivals","status":"Arrived","maxItems":100}. Airlines and statuses can change with the source; a highly specific filter can legitimately return zero rows.
Example output
A representative local flight-board row (sampled from the public feed; live values change):
{"direction": "Arrival","airline": "WestJet","airlineCode": "WS","flightNumber": "WS8354","originAirportCode": "SEA","originCity": "Seattle WA","destinationAirportCode": "DTW","destinationCity": "Detroit MI","scheduledTime": null,"estimatedTime": "2026-09-24T12:54:00","status": "Arrived","gate": "A6","observedAt": "2026-09-24T20:09:22.037Z","sourceUrl": "https://www.metroairport.com/flights/flight-status"}
How much does it cost to export Detroit airport flight status?
Pay-per-event billing includes a one-time start event per run and a flight event per saved row. Runs with no matching flights emit no flight event; the start event can still be charged. See the Actor's live Pricing tab for the applicable current plan and exact tiered rate before scheduling a high-volume export. Platform compute charges and refunds are governed by Apify's terms.
Integrations and monitoring
Use an Apify Task to save an arrivals-only or airline-specific input. Schedule the Task at the interval your operation needs, then send dataset rows to a sheet, webhook consumer, or warehouse using Apify integrations. For change detection, key by direction, flight number and estimated time, retaining observedAt for snapshot provenance; the Actor does not itself send alerts or deduplicate across separate runs.
API with cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~detroit-dtw-flight-status/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"direction":"departures","maxItems":25}'
Keep API tokens in secrets, not in public code or shared reports.
API with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/detroit-dtw-flight-status').call({ direction: 'arrivals', maxItems: 25 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/detroit-dtw-flight-status').call(run_input={'direction': 'arrivals', 'maxItems': 25})print(client.dataset(run['defaultDatasetId']).list_items().items)
MCP use
Expose this Actor to an MCP client such as Claude Code:
$claude mcp add --transport http apify 'https://mcp.apify.com?tools=automation-lab/detroit-dtw-flight-status'
Claude Desktop, Cursor, and VS Code can each use an HTTP MCP server configuration (use the client's MCP settings location):
{"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=automation-lab/detroit-dtw-flight-status"}}}
Example prompts for MCP:
- “Run the Detroit DTW flight status Actor for arrivals, up to 20 rows, and summarize the public statuses.”
- “Export current DTW departures matching WestJet, then list their destination cities and gates.”
MCP calls run the same current-board workflow, not a historical flight lookup.
Reliability and limitations
The upstream feed can be delayed, omit fields, or temporarily fail. The Actor validates the JSON shape and retries transient network/429/server errors up to three requests per selected direction, then fails rather than returning a misleading empty success. It does not use a proxy or browser for the functioning public JSON endpoint. Gate and status are snapshots, not operational guarantees: confirm time-sensitive travel decisions with the airline and airport.
Legality and responsible use
Only collect publicly displayed flight status records at sensible schedule intervals. Follow the airport site's applicable terms and Apify's platform policies; do not treat this output as a safety-critical source of truth, a private passenger manifest, or a substitute for airline confirmation.
FAQ
Why is scheduledTime null? The sampled airport feed returned the year-0001 sentinel for that field. We explicitly convert this to null rather than invent a scheduled time.
Why did my airline or status filter return no rows? Only currently visible flights match; spelling and published status can change. Try a broad arrivals/departures run first.
Why does an error appear instead of an empty dataset? A failed, challenged, or structurally changed feed is treated as a source failure rather than as proof there are no flights.
Related automation-lab Actors
Phoenix Sky Harbor Flight Status Scraper exports a different airport's flight board; FAA NAS Status & Airport Delays Scraper tracks airport-level advisories, not individual DTW flights.