Outlook detail for a location and hazard family (SPC, WPC, CPC).
Returns everything the Storm Prediction Center says about one outlook day at a point for a hazard family: the risk band, any probabilistic hazards (severe only), whether the location falls in a hatched significant-severe area, and the forecaster's full written discussion. For hazard=temperature|precipitation it instead returns the Climate Prediction Center's extended-range outlooks at the point (see "Climate outlooks" below).
This is the drill-down behind a risk area on a map. GET /v1/weather?include=outlooks already reports the single worst-case risk level at a location; this endpoint expands that into the per-hazard breakdown and the reasoning behind it.
Hazard families
hazard=severe (default) returns the convective outlook: categorical risk plus tornado/wind/hail probabilities, with the SWO discussion (SWODY1/SWODY2/SWODY3, or SWOD48 for days 4-8). hazard=fire returns the fire-weather outlook band (ELEV/CRIT/EXTM) and the FWD discussion (FWDDY1/ FWDDY2, or FWDD38 for days 3-8), plus a separate dry_thunderstorm band (IDRT/SDRT) when SPC has drawn one -- the two fire criteria are independent, so either can be present without the other. Fire polygons exist for days 1-2 only, so a fire request for day 3+ may return a narrative with no band. hazard=rain returns the WPC Excessive Rainfall Outlook band (MRGL/SLGT/MDT/HIGH) for days 1-3 and the QPFERD discussion (one PIL; day is selected from properties.outlook_day).
Climate outlooks
hazard=temperature and hazard=precipitation return the CPC outlooks for the 6-10 day, 8-14 day, week 3-4, and monthly periods in periods, one entry per period, in that order. Each entry gives the tercile CPC favors (above, below, near, or equal_chances) and the probability bin it assigns to that tercile (probability_min/probability_max, fractional, so 0.4/0.5 is 40-50%). equal_chances means CPC favors no tercile and carries no bin; it is not the same as near.
period (610, 814, wk34, or monthly) narrows the answer to one period. day does not apply and is ignored. At a covered location, a period with no outlook polygon is omitted (an answer of "no outlook here", not equal chances. probabilities is always empty; day is always 1 and carries no meaning (each period has its own valid_start and valid_end). When a 6-10 or 8-14 day period is present, narrative carries CPC's prognostic discussion (PMDMRD) unless it is more than 72 hours old. This answer keeps one entry per period and leaves out the seasonal (3-month) outlooks; GET /v1/outlooks/climate serves every CPC outlook, seasonal leads included, without day or probabilities.
Probabilities
Days 1 and 2 are issued as separate tornado, wind, and hail products, so probabilities holds one entry per hazard. Day 3 and beyond issue a single combined probabilistic product and yield one entry. Values are fractional (0.15 = 15%). Fire and rain outlooks have no probabilistic products; probabilities is empty for those hazards.
SPC delineates significant severe as its own polygon rather than an attribute of the probability area. Where the two overlap they are reported as a single entry carrying both the probability and significant: true, so a 15% hail area with a hatched overlay reads as one hazard rather than two.
Narrative
narrative carries the discussion for the requested family and day. It is ingested separately from the outlook polygons, so it may be absent for a few minutes after a new issuance, and it is omitted rather than erroring when unavailable.
Empty results
A location outside every outlook polygon is a valid answer: 200 with an empty probabilities array and no categorical. Only an upstream failure produces an error.
Caching
Successful responses are cacheable for 5 minutes. SPC reissues the day 1 outlook a handful of times a day. Climate outlook responses are cacheable for 5 minutes as well, although CPC issues them at most daily.
Coverage
A point outside the 50 US states and DC returns 404 outside-coverage with next_steps.
Auth
Standard sw-api Bearer auth applies.
Request
- Base URL: https://api.smarterweather.com
- URL: https://api.smarterweather.com/v1/outlooks
- Auth: HTTP bearer
Query parameters
Latitude in decimal degrees.
Longitude in decimal degrees.
Outlook day to describe, where 1 is today. Defaults to 1. Ignored for hazard=temperature|precipitation.
Hazard family. severe (default) is the SPC convective outlook; fire is the SPC fire-weather outlook; rain is the WPC Excessive Rainfall Outlook; temperature and precipitation are the CPC 6-10 day, 8-14 day, week 3-4, and monthly outlooks. Matches the vocabulary used by sw-mcp's get_outlooks.
CPC outlook period for hazard=temperature|precipitation: 610 (6-10 day), 814 (8-14 day), wk34 (week 3-4), or monthly. Defaults to all four. Ignored for the other hazards.
Response
Outlook detail for the requested day and location.
Example response
{
"categorical": {
"product_id": "spc_otlk_day1",
"type": "severe",
"risk_label": "Slight"
},
"dry_thunderstorm": {
"product_id": "spc_otlk_day1",
"type": "severe",
"risk_label": "Slight"
},
"probabilities": [
{
"product_id": "spc_otlk_day1",
"type": "severe",
"risk_label": "Slight"
}
],
"periods": [
{
"product_id": "cpc_814_temp",
"period": "814",
"lead": 1,
"valid_label": "NDJ 2026-2027",
"probability_min": 0.4,
"probability_max": 0.5,
"label": "Above normal 40-50%"
}
],
"narrative": {
"awips_id": "SWODY1"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.