FAA NASR Airports and Navaids avatar

FAA NASR Airports and Navaids

Pricing

from $11.41 / 1,000 item extracteds

Go to Apify Store
FAA NASR Airports and Navaids

FAA NASR Airports and Navaids

Export official current or archived FAA NASR airport and navigation-aid reference records by effective cycle, as-of date, identifier, state, or text filter.

Pricing

from $11.41 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Export FAA NASR airports and navaids from an official current, preview, or archived 28-day cycle. The Actor resolves the requested effective cycle, downloads the FAA's entity-specific CSV packages, and returns normalized airport and navigation-aid records with source-cycle attribution.

Use it to reproduce an aviation reference snapshot for an audit, simulation, data reconciliation, or longitudinal dataset. No FAA account, API key, browser, or proxy is required.

What this Actor does

The Actor can:

  • resolve the current or preview NASR cycle from the FAA index;
  • select an exact listed effective cycle;
  • resolve the latest cycle effective on or before an as-of date;
  • export airports, navigation aids, or both;
  • filter by FAA identifier, state, facility name, city, or ICAO identifier;
  • preserve effective date, official source URL, and source filename on every row;
  • return typed identity, location, status, and selected technical fields;
  • cap the combined dataset at a user-controlled maxItems limit.

It reads the official FAA National Airspace System Resources (NASR) subscription files. It does not infer old records from today's data.

Who is it for?

  • Aviation analysts reconstructing airport or navaid reference data for a historical period.
  • Simulation teams pinning inputs to a reproducible NASR cycle.
  • Auditors and compliance teams checking what facility data FAA supplied as of a date.
  • GIS and data engineers loading normalized coordinates and identifiers into a pipeline.
  • Researchers comparing scheduled snapshots produced from multiple Actor runs.

Why use cycle-attributed records?

Airport and navigation-aid identities, status values, technical attributes, and source coordinates can change. A record without its source cycle is difficult to reproduce later.

Every output row includes cycleDate, the record's effectiveDate, sourceUrl, sourceFile, and retrievedAt. Store these fields with downstream results to preserve provenance.

Data extracted

FieldMeaning
recordTypeairport or navaid
cycleDateFAA NASR effective cycle selected for the run
effectiveDateEffective date in the source CSV row
identifierFAA airport or navaid identifier
nameOfficial facility or navaid name
facilityTypeAirport site type or navaid type
statusFAA source status
city, stateCode, stateNameAssociated location
countryCodeFAA country code
latitude, longitudeDecimal source coordinates
elevationFtSource elevation in feet, when present
icaoIdICAO airport identifier, when present
ownershipType, facilityUseAirport classification codes
frequency, channelNavaid frequency/channel, when present
technicalEntity-specific operational and source fields
sourceUrl, sourceFileExact official package and CSV file
retrievedAtRetrieval timestamp

Airport technical fields include site number, region, county, chart, activation date, FAR 139 type, tower type, fuel types, magnetic variation, and position source when available.

Navaid technical fields include region, owner/operator, public/NAS use, operating hours, class, power, voice call, TACAN/DME status, and magnetic variation when available.

Getting started

  1. Open the Actor input page.
  2. Keep Named cycle set to current, or supply an exact/as-of date.
  3. Choose airports, navigation aids, or both.
  4. Add optional identifier, state, or text filters.
  5. Set the maximum combined number of records.
  6. Click Start.
  7. Open the default dataset and export JSON, CSV, Excel, XML, or another supported format.

A useful first run is:

{
"cycle": "current",
"entityTypes": ["airport", "navaid"],
"states": ["CA"],
"maxItems": 100
}

Input parameters

InputTypeDefaultDescription
cyclestringcurrentcurrent or preview; used when no date input is supplied
cycleDatestringExact FAA-listed effective date (YYYY-MM-DD)
asOfDatestringLatest listed cycle on or before this date
entityTypesarraybothairport, navaid, or both
airportIdsstring[]Exact FAA airport identifiers
navaidIdsstring[]Exact FAA navaid identifiers
statesstring[]Two-letter state/territory codes
searchstringCase-insensitive identifier/name/city/state/ICAO text
maxItemsinteger100Combined output limit, from 1 to 10,000

cycleDate and asOfDate are mutually exclusive. When one is present, it takes precedence over the named-cycle choice.

Real output example

This abbreviated record comes from the NASR cycle effective 2025-07-10:

{
"recordType": "navaid",
"cycleDate": "2025-07-10",
"effectiveDate": "2025-07-10",
"identifier": "LAX",
"name": "LOS ANGELES",
"facilityType": "VORTAC",
"status": "OPERATIONAL RESTRICTED",
"city": "LOS ANGELES",
"stateCode": "CA",
"countryCode": "US",
"latitude": 33.93314911,
"longitude": -118.43201277,
"elevationFt": 185,
"frequency": "113.6",
"channel": "83X",
"sourceFile": "NAV_BASE.csv"
}

Nullable fields are returned as null when the FAA source does not provide them.

Filtering behavior

Identifier filters are exact and case-insensitive. State filters are also exact and case-insensitive.

The search value is a case-insensitive substring checked against identifier, name, city, state name, and ICAO identifier. All supplied filters must match. Airport identifiers apply only to airport rows; navaid identifiers apply only to navaid rows.

When both record types are selected, matching airport and navaid rows are interleaved so a small combined limit can represent both families.

Historical and as-of cycle behavior

An exact cycleDate must appear on the FAA NASR subscription index. An asOfDate selects the most recent listed cycle whose effective date is not later than the requested date.

FAA controls how many archived cycles remain listed and downloadable. The Actor reports the available range when an exact date is absent, too old, or not an effective cycle. It does not manufacture a record for unlisted dates.

For longitudinal analysis, schedule or run the Actor once per desired cycle and retain cycleDate as the join dimension.

How much does it cost to export FAA NASR records?

Pricing uses one small start event and one item event per dataset row. Rows rejected by filters are not charged as items.

The exact six-tier item prices shown by Apify depend on your plan and are visible before starting a run. For estimation, multiply the applicable item price by the requested useful rows and add the one-time start fee. A 25-row identifier lookup costs far less than a 10,000-row cycle export.

Infrastructure usage, if shown separately by Apify, depends mainly on downloading and parsing one or two official CSV packages. The Actor deliberately avoids the much larger all-files NASR archive.

Reliability and failure behavior

Official FAA requests use a 60-second timeout and up to three attempts for network errors, HTTP 429, and temporary 5xx responses. Retries use bounded exponential backoff with jitter.

The Actor fails rather than silently returning an empty success when:

  • input dates or filters are malformed;
  • the exact cycle is not listed;
  • FAA returns a stable client error;
  • a response is not a ZIP package;
  • the expected base CSV is missing;
  • the FAA index no longer has recognizable cycle dates.

A valid query with no matching records succeeds with an empty dataset.

Performance and limits

The Actor downloads only the requested APT and/or NAV entity package. It parses the base CSV files and does not download runway, remark, or unrelated NASR tables.

Use exact identifiers and one entity type for the smallest run. Use maxItems to bound dataset volume; the hard maximum is 10,000 rows.

Selecting both entity types requires two package downloads. No proxy traffic or browser rendering is used.

Scheduling historical snapshots

Create a scheduled Task with cycle: current. Run it once per FAA publication interval and store each dataset with its cycle date.

A downstream workflow can compare stable keys such as:

recordType + identifier + stateCode + facilityType

Compare explicit fields rather than retrieval timestamps. Multiple navaids can share an identifier, so do not assume identifier alone is globally unique.

Export and integrations

Use the dataset API or Apify integrations to send rows to:

  • Google Sheets or Microsoft Excel;
  • Amazon S3, Google Cloud Storage, or another data lake;
  • PostgreSQL, BigQuery, Snowflake, or a GIS database;
  • Make, Zapier, or webhook-driven audit workflows;
  • Python/R notebooks and simulation pipelines.

Preserve the provenance fields when transforming results.

Run through the API with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~faa-nasr-historical-airports-navaids/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"cycleDate":"2025-07-10","entityTypes":["navaid"],"navaidIds":["LAX"],"maxItems":20}'

Fetch dataset items from the defaultDatasetId returned with the completed run.

Run with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/faa-nasr-historical-airports-navaids').call({
asOfDate: '2024-12-31',
entityTypes: ['airport', 'navaid'],
search: 'LOS ANGELES',
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Run with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/faa-nasr-historical-airports-navaids').call(run_input={
'cycle': 'current',
'entityTypes': ['airport'],
'states': ['TX'],
'maxItems': 25,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with Apify MCP

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/faa-nasr-historical-airports-navaids"

Claude Desktop, Cursor, and VS Code setup

Use this HTTP MCP configuration in Claude Desktop, Cursor, or VS Code:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/faa-nasr-historical-airports-navaids"
}
}
}

Example prompts:

  • “Export current public-use airport reference records in Texas from FAA NASR.”
  • “Retrieve LAX navigation aids from the cycle effective 2025-07-10.”
  • “Build an as-of 2024 year-end Los Angeles airport and navaid snapshot.”

Legality and responsible use

FAA NASR subscription data is official public aviation reference data. Confirm suitability for your use case and retain source attribution.

Do not treat this dataset as a substitute for current operational notices, NOTAMs, charts, flight planning, or safety-critical navigation systems. Validate safety-critical decisions against current authoritative FAA products and applicable regulations.

Troubleshooting

Why was my exact cycle rejected?

NASR effective dates follow a publication schedule and are not every calendar date. Use asOfDate when you mean “the cycle in effect on this date,” or choose an effective date listed by FAA.

Why did my identifier return multiple rows?

Navaid identifiers are not always globally unique, and one identifier can represent multiple facility types or locations. Add a state or search filter and use type/name/location fields when forming downstream keys.

Why did I get no records?

Check that the selected entityTypes includes the entity targeted by your ID filter. Remove filters one at a time, verify the state code, and remember that all supplied filters must match.

Does this include runways and remarks?

No. This release uses the airport and navaid base tables. It exposes selected base-table technical fields but does not join runway, checkpoint, or remark tables.

FAQ

Does the Actor support current data?

Yes. Use cycle: current (the default). preview selects the FAA preview cycle when published.

Does it support archived data?

Yes, for cycle packages currently listed and downloadable from the FAA NASR index. The available archive window is controlled by FAA.

Is a proxy or FAA login needed?

No. The Actor uses public official ZIP and CSV downloads directly.

Are airport and navaid rows charged separately?

No. Both are included under the same per-row item event. There is no extra event based on record type.

Can I compare two cycles in one run?

Not in this release. Run or schedule one input per cycle and compare the resulting cycle-attributed datasets downstream.

For live operational disruptions rather than reference data, use FAA Airport Delays Scraper. It covers delays, closures, ground stops, and advisories; this Actor covers airport and navaid reference records by NASR cycle.

Support

If a listed FAA cycle starts failing, include the input, effective date, run URL, and expected identifier in your report. Do not include API tokens or other secrets.