Data Currency

PreflightAPI ingests aviation data from FAA and NOAA sources via background sync jobs and serves it from a local database. The API never calls external sources at request time.

Weather Data

Weather products are polled from the NOAA Aviation Weather Center on short intervals.

ProductSync IntervalStale After
METARsEvery 10 min50 min
TAFsEvery 30 min120 min
PIREPsEvery 5 min30 min
SIGMETsEvery 30 min120 min
G-AIRMETsEvery 30 min120 min

FAA Publication Data

Aeronautical data follows the FAA's fixed publication cycles. Sync jobs run daily at their scheduled time but only refresh data when a new cycle has started.

28-Day Cycle (AIRAC)

DatasetSourceDaily Check
Airports & RunwaysFAA NASR10:00 UTC
Communication FrequenciesFAA NASR10:30 UTC
NAVAIDsFAA NASR11:00 UTC
Terminal ProceduresFAA d-TPP12:30 UTC

56-Day Cycle (Charting)

DatasetSourceDaily Check
AirspaceFAA ADDS11:00 UTC
Special Use AirspaceFAA ADDS11:30 UTC
Chart SupplementsFAA d-CS12:00 UTC

Note

Cycle-based data is considered stale if it hasn't been synced since the current publication cycle started.

Obstacles

Sourced from the FAA Digital Obstacle File (DOF). A full load runs every 56-day cycle, with daily incremental changes in between.

JobScheduleStale After
Full LoadEvery 56 days at 12:00 UTCCycle-based
Daily ChangesDaily at 10:30 UTC48 hours

NOTAMs

Sourced from the FAA NOTAM Management System (NMS). NOTAMs are not tied to FAA publication cycles. A delta sync runs every 3 minutes to pick up new and updated NOTAMs, with a full reload daily to ensure completeness.

JobScheduleStale After
Delta SyncEvery 3 minutes15 min
Full ReloadDaily at 11:00 UTC

Staleness Detection

If a background sync fails, the system detects stale data and communicates it through response headers on every API response. Staleness is evaluated differently depending on the data type:

  • Time-based — age since last successful sync vs. a configured threshold
  • Cycle-based — whether data has been synced since the current FAA publication cycle started

Severity Levels

Time-based

Severity is the ratio of data age to its staleness threshold:

Age / ThresholdSeverityMeaning
< 1.0xnoneFresh
1.0x – 1.5xinfoSlightly stale
1.5x – 2.0xwarningNotably stale
>= 2.0xcriticalCritically stale

Example: METARs have a 50-minute threshold. A METAR 60 minutes old is 1.2x (info), 80 minutes is 1.6x (warning), 100+ minutes is 2.0x (critical).

Cycle-based

Days since the current FAA cycle started without a successful sync:

Days Past CycleSeverity
< 1 dayinfo
1 – 2 dayswarning
>= 2 dayscritical

Response Headers

Every 2xx response from a data endpoint includes currency headers automatically:

HTTP/1.1 200 OK
Content-Type: application/json
X-Data-Currency: fresh
X-Data-Last-Updated: 2026-02-24T14:55:00.0000000Z
X-Data-Sync-Age-Minutes: 5.0
HeaderDescription
X-Data-Currencyfresh or stale:<severity> (e.g., stale:warning)
X-Data-Last-UpdatedISO 8601 UTC timestamp of the last successful sync
X-Data-Sync-Age-MinutesMinutes since last sync (time-based data only)

When an endpoint maps to multiple data sources (e.g., airspaces), the worst severity across all sources is reported.

Live Status

Visit the system status page for a real-time dashboard showing the currency of all 15 data sources with auto-refresh.

Search Documentation

Search docs, endpoints, and schemas