Skip to content

Brief response shape

skywatch brief outputs a single JSON object. Every field maps to an AIM section 7-1-5 slot.

FieldTypeDescription
airportstring | nullICAO identifier of the departure (or single) airport
coordinates[float, float][lat, lon] of the airport or supplied coordinate
wfostringNWS Weather Forecast Office code responsible for the location
fetched_atISO8601 stringUTC timestamp when the brief was assembled
departing_atISO8601 string | nullSupplied ETD, or null if not provided
aim_sectionstringAlways "7-1-5"
notestring | nullPresent for coordinate briefs; explains the nearest airport used
destinationstring | nullPresent for route briefs; the --to airport ICAO ID
adverse_conditionsobjectAIM 7-1-5 slot 1
vfr_not_recommendedobjectAIM 7-1-5 slot 2
synopsisobjectAIM 7-1-5 slot 3 (currently unavailable)
current_conditionsobjectAIM 7-1-5 slot 4
enroute_forecastobjectAIM 7-1-5 slot 5 (only populated for route briefs)
destination_forecastobjectAIM 7-1-5 slot 6
winds_aloftobjectAIM 7-1-5 slot 7
notamsobjectAIM 7-1-5 slot 8 (currently unavailable)
atc_delaysobjectAIM 7-1-5 slot 9 (currently unavailable)
afdobjectAIM 7-1-5 slot 10 — Area Forecast Discussion
{
"items": [...],
"partial_failures": []
}

items is an array of hazard objects. Each item has a kind field (sigmet, airmet, pirep, convective_alert, storm_report, smoke) and source-specific fields.

{
"vfr_not_recommended": false,
"reason": null
}

vfr_not_recommended is true when the current METAR reports IFR or LIFR conditions. reason is a plain-English string when true (e.g., "ceiling 200 ft, vis 0.5 SM, IFR conditions reported").

Currently unavailable:

{
"available": false,
"reason": "no synopsis source in skywatch — see afd slot"
}
{
"metar": { ... },
"pireps": [ ... ]
}

metar is a decoded METAR object with fields: station_id, raw, time, wind_direction_deg, wind_speed_kt, wind_gust_kt, visibility_sm, sky_conditions, temperature_c, dewpoint_c, altimeter_inhg, flight_category.

pireps is an array of informational PIREPs near the airport (not already in adverse_conditions).

For single-airport briefs:

{
"available": false,
"reason": "single-point brief; route input deferred from MVP"
}

For route briefs:

{
"available": true,
"corridor": {
"from": "KCDW",
"to": "KACY",
"distance_nm": 52.3,
"bearing_deg": 132,
"waypoint_count": 4
},
"items": [...],
"partial_failures": []
}
{
"taf": { ... },
"note": null
}

taf contains the decoded TAF with station_id, raw, issue_time, and a groups array. Each group has from_time, to_time, wind_direction_deg, wind_speed_kt, wind_gust_kt, visibility_sm, sky_conditions, and weather.

note is non-null when the ETD falls outside the available TAF window.

{
"station_id": "JFK",
"forecasts": [
{
"altitude_ft": 3000,
"direction_deg": 270,
"speed_kt": 15,
"temperature_c": 8
}
]
}

Currently unavailable:

{
"available": false,
"reason": "NOTAMs not in skywatch yet — Sectional domain not yet built"
}

Currently unavailable:

{
"available": false,
"reason": "ATC delays not in skywatch yet — no source"
}
{
"wfo": "OKX",
"issue_time": "2026-05-01T12:35:00Z",
"text": "..."
}

text is the full raw AFD text from the NWS. The SYNOPSIS and SHORT TERM sections are most relevant for preflight planning.

{
"airport": "KCDW",
"coordinates": [40.875, -74.282],
"wfo": "OKX",
"fetched_at": "2026-05-01T18:00:00Z",
"departing_at": null,
"aim_section": "7-1-5",
"note": null,
"adverse_conditions": {
"items": [],
"partial_failures": []
},
"vfr_not_recommended": {
"vfr_not_recommended": false,
"reason": null
},
"synopsis": {
"available": false,
"reason": "no synopsis source in skywatch — see afd slot"
},
"current_conditions": {
"metar": {
"station_id": "KCDW",
"raw": "KCDW 011753Z 27012KT 10SM FEW060 22/10 A2992",
"wind_direction_deg": 270,
"wind_speed_kt": 12,
"wind_gust_kt": null,
"visibility_sm": 10.0,
"flight_category": "VFR"
},
"pireps": []
},
"enroute_forecast": {
"available": false,
"reason": "single-point brief; route input deferred from MVP"
},
"destination_forecast": {
"taf": { "station_id": "KCDW", "groups": [...] },
"note": null
},
"winds_aloft": {
"station_id": "JFK",
"forecasts": [
{ "altitude_ft": 3000, "direction_deg": 270, "speed_kt": 14, "temperature_c": 10 }
]
},
"notams": {
"available": false,
"reason": "NOTAMs not in skywatch yet — Sectional domain not yet built"
},
"atc_delays": {
"available": false,
"reason": "ATC delays not in skywatch yet — no source"
},
"afd": {
"wfo": "OKX",
"issue_time": "2026-05-01T12:35:00Z",
"text": "..."
}
}