A NOTAM (Notice to Air Missions) is a time-bound text alert about anything that changes how a pilot or dispatcher should treat an airport, route, or piece of airspace — a closed runway, a downed navaid, a temporary flight restriction, a crane that just got erected off the approach end. They are short-lived, location-specific, and there are tens of thousands active worldwide at any given moment. That volume is exactly why a plain NOTAM search is harder than it should be.

What a NOTAM Actually Is, and Why NOTAM Search Is Hard

The core problem isn't that NOTAMs are scarce — it's that they're scattered and badly formatted. Every country issues its own through its own NOTAM office (NOF), there's no single global feed, and the wire format hasn't meaningfully changed since teletype days: dense, abbreviated, ICAO Q-code strings designed to be cheap to transmit, not easy to read. A runway closure and a GPS outage look almost identical at a glance unless you know what you're parsing.

Airport control tower at dusk where air traffic control issues and monitors active NOTAMs

That's the gap between the raw record and the "plain language" version some portals generate — the raw string is authoritative, the plain-language gloss is a convenience layer that can lag or oversimplify. If you're building anything that touches flight planning, you eventually need to read the raw format yourself, not just trust a summary. The other half of the problem is volume: a busy FIR can have hundreds of concurrent NOTAMs, most irrelevant to your specific flight, so a useful NOTAM search has to filter hard, not just list everything.

Where to Run a NOTAM Search Today

For US airports, the FAA's NOTAM Search (notams.aim.faa.gov) is the canonical source — query by ICAO/IATA identifier and it returns the SWIM feed for that airport. For international or en-route work, NOTAMs are issued by FIR rather than by airport, so you query EUROCONTROL's NOTAM service or the relevant national NOF (or your flight-planning provider, most of which aggregate several NOFs behind one search box).

The practical pattern is the same everywhere: search by airport when you care about a specific field (departure, arrival, alternate), and search by FIR when you care about a route — en-route NOTAMs like restricted airspace activations or GPS jamming notices won't show up under any single airport's list, only under the FIR they're filed against.

Filtering NOTAMs Effectively

A raw NOTAM dump for a major hub is unreadable without filters. Three that actually matter:

  • By airport/FIR — the baseline scope, narrows from "the world" to "the places on your route."
  • By category — runway/taxiway closures, obstacles, navaid outages, and airspace restrictions are different risk classes; a dispatcher checking runway length for performance calculations doesn't need to wade through navaid NOTAMs to find it.
  • By validity window — match B) start and C) end against your actual operating window. A NOTAM that expires before your ETD, or doesn't start until after your ETA, is noise you can drop immediately.

Airport control tower marked C/28 surrounded by trees, the kind of facility NOTAMs are issued from

Get the category filter wrong and you'll miss the one NOTAM that matters under a pile of low-relevance ones — get the validity filter wrong and you'll act on something that's already expired.

Decoding a Raw NOTAM, Field by Field

Here's a realistic ICAO-format NOTAM for a runway closure, decoded line by line:

A1234/26 NOTAMN
Q) KZNY/QMRLC/IV/NBO/A/000/999/4038N07346W005
A) KJFK
B) 2606142000
C) 2606152200
E) RWY 13L/31R CLSD
  • A1234/26 NOTAMN — NOTAM number 1234, issued in 2026, NOTAMN means this is a brand-new NOTAM (NOTAMR replaces a prior one, NOTAMC cancels one).
  • Q) KZNY/QMRLC/IV/NBO/A/000/999/4038N07346W005 — the Q-line. KZNY is the responsible FIR (New York Center). QMRLC is the five-letter Q-code: Q is the fixed prefix, MR means "runway," LC means "closed." IV means it affects both IFR and VFR traffic. NBO is the purpose code (immediate, briefing, flight-plan relevant). A is the scope (aerodrome). 000/999 is the lower/upper altitude limit, here meaning "not altitude-relevant." The trailing group is the reference coordinate and a 5 NM radius.
  • A) KJFK — the affected location, John F. Kennedy International.
  • B) 2606142000 — effective start, in YYMMDDHHMM UTC: 2026-06-14 20:00Z.
  • C) 2606152200 — effective end: 2026-06-15 22:00Z.
  • E) RWY 13L/31R CLSD — the plain text body: runway 13L/31R is closed.

Once you can read QMRLC as "runway closed" without looking it up, you can scan a Q-line and triage relevance before even reading the E) field — that's the whole skill of fast NOTAM search.

Getting NOTAMs Programmatically

Manually re-querying a portal for every airport on a route doesn't scale once you're building something — a dispatch tool, a flight-planning app, a briefing generator. You want NOTAMs as structured JSON you can filter, diff against the last poll, and join with other flight data in code, not scrape out of an HTML table.

SkyLink API's NOTAMs endpoint returns active NOTAMs for any ICAO airport — the full ICAO-format text in raw, laid out exactly as decoded above, plus each item split out as its own field (notam_id, type, effective/expiration, qline, schedule, body, lower_limit/upper_limit) — sourced in real time from FAA SWIM. The "by category" filtering above doesn't have to happen client-side either: exclude_qcode and exclude_scope query params drop Q-code subjects (like the checklist series, QK*) or entire scopes (FIR-wide notices) server-side, before the response reaches you. It pairs naturally with the flight operations endpoints if you're building dispatch or pre-flight tooling, and if you've already wired up live aircraft positions with our ADS-B tracker tutorial, adding a NOTAM check for the destination is a small extension of the same client. Building an AI agent instead of a traditional app? The MCP server exposes the same NOTAM data so an LLM can pull and reason over notices directly.

If you're tired of stitching together portal queries by hand, SkyLink API gives you structured NOTAM data alongside weather and ADS-B, behind one key, on RapidAPI. The free tier covers 1,000 requests/month, paid plans start at $18.59/mo, and you can get a key here and start querying in minutes.