Raw schema
{
"type": "object",
"properties": {
"area": {
"description": "US state/territory code (e.g., \"WA\", \"OK\", \"PR\") or marine area code (e.g., \"GM\"). Mutually exclusive with point and zone.",
"type": "string"
},
"point": {
"description": "Coordinates as \"lat,lon\" (e.g., \"47.6,-122.3\"). Returns alerts whose geometry contains this point. Mutually exclusive with area and zone.",
"type": "string"
},
"zone": {
"description": "NWS forecast zone (e.g., \"WAZ558\") or county zone (e.g., \"WAC033\"). Mutually exclusive with area and point.",
"type": "string"
},
"region_type": {
"description": "Restrict to land-based or marine alerts. Mutually exclusive with area, point, zone, and region.",
"type": "string",
"enum": [
"Land",
"Marine"
]
},
"region": {
"description": "Restrict to NWS marine region groups: \"AL\" (Alaska waters), \"AT\" (Atlantic Ocean), \"GL\" (Great Lakes), \"GM\" (Gulf of Mexico), \"PA\" (Eastern Pacific and US West Coast), \"PI\" (Central and Western Pacific). Marine alerts only โ a land alert never matches. Mutually exclusive with area, point, zone, and region_type.",
"type": "array",
"items": {
"type": "string",
"enum": [
"AL",
"AT",
"GL",
"GM",
"PA",
"PI"
]
}
},
"event": {
"description": "Filter to specific event types (e.g., [\"Tornado Warning\"]). Matches are case-insensitive and partial, so \"tornado\" matches both \"Tornado Warning\" and \"Tornado Watch\". Use nws_list_alert_types to discover valid names.",
"type": "array",
"items": {
"type": "string"
}
},
"severity": {
"description": "Filter by severity level.",
"type": "array",
"items": {
"type": "string",
"enum": [
"Extreme",
"Severe",
"Moderate",
"Minor",
"Unknown"
]
}
},
"urgency": {
"description": "Filter by urgency level.",
"type": "array",
"items": {
"type": "string",
"enum": [
"Immediate",
"Expected",
"Future",
"Past"
]
}
},
"certainty": {
"description": "Filter by certainty level.",
"type": "array",
"items": {
"type": "string",
"enum": [
"Observed",
"Likely",
"Possible",
"Unlikely",
"Unknown"
]
}
},
"status": {
"description": "Alert status filter. Default \"Actual\". Use a different value only when you specifically need non-live alerts.",
"default": "Actual",
"type": "string",
"enum": [
"Actual",
"Exercise",
"System",
"Test",
"Draft"
]
},
"limit": {
"default": 25,
"description": "Maximum number of alerts to include in this page (1-25, default 25). totalCount still reports the full number of distinct matches, so a small limit returns a digest of broad or national searches without dropping the total; pass the returned nextCursor as cursor to reach the rest.",
"type": "integer",
"minimum": 1,
"maximum": 25
},
"cursor": {
"description": "Opaque continuation token from a previous response's nextCursor. Omit for the first page. The token carries its own page size, so limit applies to the first page only. Every call re-fetches the active-alert feed, so alerts are contiguous within one response but not across calls โ the active set changes continuously as alerts are issued and expire, so a continued page covers the collection as it stands at that moment.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}