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.
| Product | Sync Interval | Stale After |
|---|---|---|
| METARs | Every 10 min | 50 min |
| TAFs | Every 30 min | 120 min |
| PIREPs | Every 5 min | 30 min |
| SIGMETs | Every 30 min | 120 min |
| G-AIRMETs | Every 30 min | 120 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)
| Dataset | Source | Daily Check |
|---|---|---|
| Airports & Runways | FAA NASR | 10:00 UTC |
| Communication Frequencies | FAA NASR | 10:30 UTC |
| NAVAIDs | FAA NASR | 11:00 UTC |
| Terminal Procedures | FAA d-TPP | 12:30 UTC |
56-Day Cycle (Charting)
| Dataset | Source | Daily Check |
|---|---|---|
| Airspace | FAA ADDS | 11:00 UTC |
| Special Use Airspace | FAA ADDS | 11:30 UTC |
| Chart Supplements | FAA d-CS | 12:00 UTC |
Note
Obstacles
Sourced from the FAA Digital Obstacle File (DOF). A full load runs every 56-day cycle, with daily incremental changes in between.
| Job | Schedule | Stale After |
|---|---|---|
| Full Load | Every 56 days at 12:00 UTC | Cycle-based |
| Daily Changes | Daily at 10:30 UTC | 48 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.
| Job | Schedule | Stale After |
|---|---|---|
| Delta Sync | Every 3 minutes | 15 min |
| Full Reload | Daily 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 / Threshold | Severity | Meaning |
|---|---|---|
| < 1.0x | none | Fresh |
| 1.0x – 1.5x | info | Slightly stale |
| 1.5x – 2.0x | warning | Notably stale |
| >= 2.0x | critical | Critically 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 Cycle | Severity |
|---|---|
| < 1 day | info |
| 1 – 2 days | warning |
| >= 2 days | critical |
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| Header | Description |
|---|---|
X-Data-Currency | fresh or stale:<severity> (e.g., stale:warning) |
X-Data-Last-Updated | ISO 8601 UTC timestamp of the last successful sync |
X-Data-Sync-Age-Minutes | Minutes 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.