├── .gitignore ├── Gemfile ├── assets ├── images │ ├── bg.png │ ├── header.png │ ├── usa_gov.png │ └── header_doc.png ├── css │ └── style.scss └── openapi.yaml ├── _config.yml ├── planned-outages.md ├── _includes └── nav.html ├── README.md ├── reporting-issues.md ├── index.md ├── _sass └── reset.scss ├── _layouts └── default.html ├── gridpoints.md └── general-faqs.md /.gitignore: -------------------------------------------------------------------------------- 1 | /.bundle 2 | /_site 3 | /Gemfile.lock 4 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | gem 'github-pages', group: :jekyll_plugins 3 | -------------------------------------------------------------------------------- /assets/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weather-gov/api/HEAD/assets/images/bg.png -------------------------------------------------------------------------------- /assets/images/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weather-gov/api/HEAD/assets/images/header.png -------------------------------------------------------------------------------- /assets/images/usa_gov.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weather-gov/api/HEAD/assets/images/usa_gov.png -------------------------------------------------------------------------------- /assets/images/header_doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weather-gov/api/HEAD/assets/images/header_doc.png -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | baseurl: /api 2 | title: api.weather.gov 3 | defaults: 4 | - 5 | scope: 6 | path: "" 7 | values: 8 | show_nav: true 9 | -------------------------------------------------------------------------------- /planned-outages.md: -------------------------------------------------------------------------------- 1 | ## Planned Outages 2 | 3 | Planned outages affecting the API and other NWS services are announced via 4 | [NWS Public Information Statements](https://www.weather.gov/notification/). 5 | 6 | We will also attempt to list upcoming outages here; however, note that this page must be updated manually and is not 7 | guaranteed to include all upcoming planned outages. 8 | 9 | ### No upcoming planned outages. 10 | -------------------------------------------------------------------------------- /_includes/nav.html: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # api.weather.gov 2 | ### Community discussion and documentation for the US National Weather Service API 3 | Welcome! This repository is here to serve as a meeting place for developers in the general public to interface with 4 | each other and the NWS API development team. This will allow us to gather better feedback on user needs and respond 5 | more quickly to concerns. 6 | 7 | You can start reading our documentation at [https://weather-gov.github.io/api](https://weather-gov.github.io/api) 8 | -------------------------------------------------------------------------------- /reporting-issues.md: -------------------------------------------------------------------------------- 1 | ## Reporting Issues 2 | 3 | #### Note: This GitHub site/repo is **not** for outages or operational issues! 4 | Any outages or other technical operational issues with the live service (such as faulty or missing data, or HTTP 5XX 5 | errors) should be reported to NCO/OMB Tech Control by emailing nco.ops@noaa.gov or calling (301) 683-1518. 6 | 7 | If you have questions, comments, or other feedback regarding the API, you can direct them to the development team 8 | via [our GitHub Discussions forum](https://github.com/weather-gov/api/discussions). We look forward to hearing your 9 | feedback! 10 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | show_nav: false 3 | --- 4 | ## Community discussion and documentation for the US National Weather Service API 5 | Welcome! This GitHub Pages site is here to answer some of the most frequently asked questions about the National 6 | Weather Service public data API (api.weather.gov). 7 | 8 | Our GitHub repository also serves as a place to connect with other developers and the NWS API development team. 9 | 10 | You can browse our documentation here. 11 | 12 | {% include nav.html %} 13 | 14 | ### DISCLAIMER 15 | Any non-government resources, services, or service providers listed or linked in these pages are provided for your 16 | convenience and such listing or linking does not constitute any recommendation or endorsement of these resources by the 17 | National Weather Service, NOAA, or the US Department of Commerce. 18 | -------------------------------------------------------------------------------- /_sass/reset.scss: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v2.0 | 20110126 3 | License: none (public domain) 4 | */ 5 | 6 | html, body, div, span, applet, object, iframe, 7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 8 | a, abbr, acronym, address, big, cite, code, 9 | del, dfn, em, img, ins, kbd, q, s, samp, 10 | small, strike, strong, sub, sup, tt, var, 11 | b, u, i, center, 12 | dl, dt, dd, ol, ul, li, 13 | fieldset, form, label, legend, 14 | table, caption, tbody, tfoot, thead, tr, th, td, 15 | article, aside, canvas, details, embed, 16 | figure, figcaption, footer, header, hgroup, 17 | menu, nav, output, ruby, section, summary, 18 | time, mark, audio, video { 19 | margin: 0; 20 | padding: 0; 21 | border: 0; 22 | font-size: 100%; 23 | font: inherit; 24 | vertical-align: baseline; 25 | } 26 | /* HTML5 display-role reset for older browsers */ 27 | article, aside, details, figcaption, figure, 28 | footer, header, hgroup, menu, nav, section { 29 | display: block; 30 | } 31 | body { 32 | line-height: 1; 33 | } 34 | ol, ul { 35 | list-style: none; 36 | } 37 | blockquote, q { 38 | quotes: none; 39 | } 40 | blockquote:before, blockquote:after, 41 | q:before, q:after { 42 | content: ''; 43 | content: none; 44 | } 45 | table { 46 | border-collapse: collapse; 47 | border-spacing: 0; 48 | } 49 | -------------------------------------------------------------------------------- /assets/css/style.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | @import "reset"; 5 | 6 | body { 7 | background: #C5E5F5 url('../images/bg.png') repeat-y center; 8 | font: 12pt Arial, Helvetica, Geneva, sans-serif; 9 | } 10 | 11 | .header { 12 | width: 100%; 13 | margin: 0; 14 | height: 60px; 15 | } 16 | 17 | .header-content { 18 | width: 990px; 19 | margin: 0 auto; 20 | height: 60px; 21 | overflow: visible; 22 | } 23 | 24 | .header-noaa { 25 | float: left; 26 | margin-left: -636px; 27 | width: 60px; 28 | height: 60px; 29 | background: #fff; 30 | filter:alpha(opacity=0); 31 | opacity: 0.0; 32 | } 33 | 34 | .header-nws { 35 | float: left; 36 | margin-left: 10px; 37 | } 38 | 39 | .header-doc { 40 | float: right; 41 | } 42 | 43 | .header-shadow { 44 | width: 100%; 45 | height: 10px; 46 | overflow: visible; 47 | } 48 | 49 | .center { 50 | width: 100%; 51 | overflow: visible; 52 | } 53 | 54 | .center-content { 55 | width: 960px; 56 | margin-right: auto; 57 | margin-left: auto; 58 | overflow: hidden; 59 | } 60 | 61 | .footer { 62 | font-size: 70%; 63 | width: 100%; 64 | overflow: visible; 65 | 66 | a { 67 | text-decoration: none; 68 | 69 | &:hover { 70 | text-decoration: underline; 71 | } 72 | } 73 | } 74 | 75 | .footer-content { 76 | width: 960px; 77 | margin-right: auto; 78 | margin-left: auto; 79 | overflow: hidden; 80 | border-top: 1px solid #94C6EF; 81 | padding-top: 15px; 82 | padding-bottom: 20px; 83 | } 84 | 85 | .one-sixth-first { 86 | width: 140px; 87 | clear: none; 88 | margin-top: 0; 89 | margin-bottom: 0; 90 | margin: 0; 91 | padding-right: 10px; 92 | padding-left: 10px; 93 | float: left; 94 | } 95 | 96 | .one-half-first { 97 | width: 440px; 98 | clear: none; 99 | margin-top: 0; 100 | margin-bottom: 0; 101 | margin: 0; 102 | padding-right: 10px; 103 | padding-left: 10px; 104 | float: left; 105 | } 106 | 107 | .one-third-last { 108 | width: 300px; 109 | margin-top: 0; 110 | margin-bottom: 0; 111 | margin: 0; 112 | padding-right: 10px; 113 | padding-left: 10px; 114 | float: right; 115 | } 116 | 117 | .div-half { 118 | width: 50% !important; 119 | float: left; 120 | } 121 | 122 | h1, h2, h3, h4, h5, h6 { 123 | margin-bottom: 10px; 124 | line-height: 1.1em; 125 | font-weight: bold; 126 | } 127 | 128 | h1, h1 a:link, h1 a:visited { 129 | color: #135897; 130 | font-size: 190%; 131 | font-weight: bold; 132 | } 133 | 134 | h1 a:hover { 135 | color: #ED7A08; 136 | } 137 | 138 | h2, h2 a:link, h2 a:visited { 139 | color: #ED7A08; 140 | font-size: 120%; 141 | font-weight: bold; 142 | } 143 | 144 | h2 a:hover { 145 | color: #EFA905 146 | } 147 | 148 | h3, h3 a:link, h3 a:visited { 149 | color: #00A3E3; 150 | font-size: 110%; 151 | font-weight: normal; 152 | } 153 | 154 | h3 a:hover { 155 | color: #ED7A08; 156 | } 157 | 158 | h4, h4 a:link, h4 a:visited { 159 | font-size: 105%; 160 | } 161 | 162 | h4 a:hover { 163 | color: #888; 164 | } 165 | 166 | h5 { 167 | font-size: 105%; 168 | } 169 | 170 | p { 171 | margin-bottom: 10px; 172 | } 173 | 174 | a:link { 175 | color: #1763AB; 176 | } 177 | 178 | a:hover { 179 | color: #00A3E3; 180 | } 181 | 182 | ul, ol { 183 | margin: 1.5em; 184 | 185 | ul, ol { 186 | margin-top: 0; 187 | margin-bottom: 0; 188 | } 189 | 190 | li { 191 | padding: 2px; 192 | } 193 | } 194 | 195 | ul { 196 | list-style-type: square; 197 | } 198 | 199 | ol { 200 | list-style-type: decimal; 201 | } 202 | 203 | em { 204 | font-style: italic; 205 | } 206 | 207 | strong { 208 | font-weight: bolder; 209 | text-decoration: underline; 210 | } 211 | 212 | code { 213 | font-family: monospace; 214 | color: red; 215 | background: #EEEEEE; 216 | } 217 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ site.title }}: {{ page.title }} 5 | 6 | 7 | 8 |
9 |
10 | National Weather Service 11 | United States Department of Commerce 12 | 13 |
14 |
15 |
16 | 17 |
18 |
19 |
20 | 21 |
22 |
23 |

api.weather.gov

24 |
25 |
26 | 27 |
28 |
29 | {{ content }} 30 |
31 |
32 | 33 | {% if page.show_nav %} 34 |
35 |
36 | {% include nav.html %} 37 |
38 |
39 | {% endif %} 40 | 41 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /gridpoints.md: -------------------------------------------------------------------------------- 1 | ## Gridpoint Frequently Asked Questions 2 | 3 | ### What's a gridpoint? 4 | 5 | Each National Weather Service forecast office issues numerical forecasts on a 2.5-kilometer grid across their entire 6 | forecast area. Each gridpoint is one of these 2.5km squares. 7 | 8 | The `/gridpoints` endpoint in the API gives you access to this raw numerical data. 9 | 10 | --- 11 | 12 | ### How do I determine the gridpoint for my location? 13 | 14 | You can retrieve the metadata for a given latitude/longitude coordinate with the `/points` endpoint 15 | (`https://api.weather.gov/points/{lat},{lon}`). 16 | 17 | The `forecastGridData` property will provide a link to the correct gridpoint for that location. 18 | 19 | --- 20 | 21 | ### Can I search by city or airport instead? 22 | 23 | Please see [our FAQ about geocoding](general-faqs#geocoding). 24 | 25 | --- 26 | 27 | ### How is the gridpoint data formatted? 28 | 29 | * The data is presented as a JSON document. 30 | * The document will contain metadata about the forecast grid, along with multiple layers of data (such as temperature). 31 | * The layer data is presented as a time series. 32 | * Much of the data is calculated for each hour of the forecast period, but to conserve bandwidth the API will merge 33 | consecutive values that are equal. 34 | * Each data point will have the following properties: 35 | * validTime: This is the time interval that the value applies to. The interval is represented in 36 | [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. 37 | * For example, `2019-07-04T18:00:00+00:00/PT3H` represents an interval starting on July 4, 2019 at 1800 UTC and 38 | continuing for 3 hours (from 1800 to 2100). 39 | * value: This is the data that applies to that validTime interval. 40 | * For values that have a unit of measure, such as temperature, the layer will contain a `uom` property to 41 | indicate the unit of all the values in that time series. 42 | * The value may also be `null` to indicate there is no applicable data for that interval. 43 | 44 | --- 45 | 46 | ### What layer data is available? 47 | 48 | Below is a list of layers that the API exposes. 49 | 50 | ##### Commonly used layers 51 | 52 | * temperature: Air temperature 53 | * dewpoint: Dewpoint temperature 54 | * maxTemperature: High temperature 55 | * minTemperature: Low temperature 56 | * relativeHumidity: Relative humidity 57 | * apparentTemperature: Apparent temperature (heat index or wind chill) 58 | * heatIndex: Heat index. This is the apparentTemperature data with values filtered out that are below the threshold of 59 | the heat index calculation. 60 | * windChill: Wind chill. This is the apparentTemperature data with values filtered out that are above the threshold of 61 | the wind chill calculation. 62 | * skyCover: Percentage of sky with cloud cover 63 | * windDirection: Direction of prevailing wind 64 | * windSpeed: Maximum prevailing wind speed 65 | * windGust: Maximum wind gust 66 | * weather: Weather conditions 67 | * This data is not numeric, but an array. 68 | * Each array element is a JSON object representing a decoded 69 | [NDFD GRIB weather string](https://www.weather.gov/mdl/degrib_ndfdwx). 70 | * hazards: Long-duration area watches, warnings, and advisories in effect. 71 | * This data is not numeric, but an array. 72 | * Each array element is a JSON object with `phenomenon` and `significance` properties. These values correspond to 73 | [P-VTEC phenomenon and significance codes](https://www.weather.gov/media/vtec/VTEC_explanation4-18.pdf). For 74 | example, `FF` and `A` would indicate a Flash Flood Watch. 75 | * Optionally, the object may include an `event_number` property. This number will correspond to an issued watch, 76 | warning, or advisory product. For example, `TO`, `A`, and `267` would indicate Tornado Watch #267. 77 | * Note that not all forecast offices utilize this layer for all watch/warning/advisory products. It is most typically 78 | used for tropical storm and hurricane watches and warnings. 79 | * probabilityOfPrecipitation: Chance of precipitation 80 | * quantitativePrecipitation: Amount of liquid precipitation 81 | 82 | ##### Other layers 83 | 84 | * iceAccumulation: 85 | * snowfallAmount: 86 | * snowLevel: 87 | * ceilingHeight: 88 | * visibility: 89 | * transportWindSpeed: 90 | * transportWindDirection: 91 | * mixingHeight: 92 | * hainesIndex: 93 | * lightningActivityLevel: 94 | * twentyFootWindSpeed: 95 | * twentyFootWindDirection: 96 | * waveHeight: 97 | * wavePeriod: 98 | * waveDirection: 99 | * primarySwellHeight: 100 | * primarySwellDirection: 101 | * secondarySwellHeight: 102 | * secondarySwellDirection: 103 | * wavePeriod2: 104 | * windWaveHeight: 105 | * dispersionIndex: 106 | * pressure: 107 | * probabilityOfTropicalStormWinds: 108 | * probabilityOfHurricaneWinds: 109 | * potentialOf15mphWinds: 110 | * potentialOf25mphWinds: 111 | * potentialOf35mphWinds: 112 | * potentialOf45mphWinds: 113 | * potentialOf20mphWindGusts: 114 | * potentialOf30mphWindGusts: 115 | * potentialOf40mphWindGusts: 116 | * potentialOf50mphWindGusts: 117 | * potentialOf60mphWindGusts: 118 | * grasslandFireDangerIndex: 119 | * probabilityOfThunder: 120 | * davisStabilityIndex: 121 | * atmosphericDispersionIndex: 122 | * lowVisibilityOccurrenceRiskIndex: 123 | * stability: 124 | * redFlagThreatIndex: 125 | 126 | --- 127 | 128 | ### How can I tell if the grid data has been updated? 129 | 130 | The API supports [HTTP conditional requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Conditional_requests). 131 | All gridpoint endpoints will include a `Last-Modified` header showing the creation time of the grid data we received 132 | from the forecast office. You may include this time in the `If-Modified-Since` header on subsequent requests to 133 | determine if the data has been updated. If it has not, you will receive a 304 (Not Modified) response. 134 | 135 | If your HTTP client cannot support conditional requests for some reason, this information is also in the `updateTime` 136 | property of the gridpoint data. 137 | 138 | --- 139 | 140 | ### I see some really strange values (like temperatures in the thousands). 141 | 142 | [Please report this as an operational issue.](reporting-issues) 143 | -------------------------------------------------------------------------------- /general-faqs.md: -------------------------------------------------------------------------------- 1 | ## General FAQs 2 | 3 | ### What's the API? 4 | api.weather.gov represents the public face of the next generation of data services from the 5 | [National Weather Service](https://weather.gov). It offers public access to a wide range of essential weather data, in 6 | a way that modern web developers expect: a REST-style, JSON-based web service. 7 | 8 | The API is also being built to provide a powerful and modern platform for data dissemination for both internal and 9 | external customers. We're doing this to help eliminate some internal redundancies, giving you and our own forecasters 10 | and developers a one-stop shop for vital data. 11 | 12 | --- 13 | 14 | ### I'm new to this. How do I use the API? 15 | Our current documentation is located at . Over time we will 16 | also be offering this information here as well. 17 | 18 | We also provide a service definition in [OpenAPI v3.0](https://swagger.io/specification/) (previously known as Swagger) 19 | format. You can access this file at (in JSON format) 20 | or (in YAML format). 21 | 22 | Much of the data returned from the API is in [GeoJSON](http://geojson.org/) (RFC 7946) format. Certain endpoints also 23 | offer useful alternative formats, such as 24 | [OASIS Common Alerting Protocol (CAP) XML](http://docs.oasis-open.org/emergency/cap/v1.2/CAP-v1.2-os.html) for alerts 25 | data. 26 | 27 | --- 28 | 29 | 30 | ### How do I get a forecast for a location from the API? 31 | You'll need to know the latitude and longitude of the location in decimal degrees. (If you want to get really 32 | geospatially technical, your location should be a WGS 84 or EPSG 4326 coordinate.) 33 | 34 | * For our example here, we'll use the Washington Monument in Washington, D.C. It's located at 38.8894 latitude, 35 | -77.0352 longitude. 36 | * Please note that, for efficiency purposes, the API doesn't support more than four decimal places of precision in 37 | coordinates. If you send a more precise coordinate, you'll receive an error giving you the closest proper coordinate. 38 | Four decimal places is about 30 feet (10 meters) over most of the United States, so that should still be close 39 | enough! 40 | 41 | Once you know the latitude and longitude, it's an easy three-step process from there. You can follow along in your 42 | browser with the links below: 43 | 44 | 1. Retrieve the metadata for your location from `https://api.weather.gov/points/{lat},{lon}`. 45 | * For our example the URL will be 46 | 2. You'll get back a JSON document. Inside the document, find the `properties` object, and inside that, find the 47 | `forecast` property. You'll find another URL there. 48 | * For our example this gives us 49 | * You can also get the hour-by-hour forecast from the `forecastHourly` property. For our example it's 50 | 51 | 3. Retrieve that URL. You'll get a JSON document containing the forecast for that location. There you go! 52 | 53 | We're still working on documentation for the JSON that API returns, but we think it's pretty easy to understand if you 54 | just look at it. If you need more reference, the forecast JSON very closely aligns with the information you'd see on a 55 | web page on forecast.weather.gov. If you still have questions, please [see our Reporting Issues page](reporting-issues) 56 | for how to ask. 57 | 58 | --- 59 | 60 | 61 | ### I have an address, city name, or zip code location. Can I request data for this location via the API? 62 | Not directly. You'll need to turn that location into a latitude/longitude pair as described earlier. This is called 63 | _geocoding_. 64 | 65 | Our API does not offer a geocoding service. There are many free and paid API services available for this. Here are a 66 | few: 67 | 68 | * [Bing Maps Locations](https://docs.microsoft.com/en-us/bingmaps/rest-services/locations/) 69 | * [Esri ArcGIS World Geocoding Service](https://developers.arcgis.com/rest/geocode/api-reference/overview-world-geocoding-service.htm) 70 | * [Geocode.xyz](https://geocode.xyz/api) 71 | * [Google Maps Geocoding](https://developers.google.com/maps/documentation/geocoding/start) 72 | * [MapBox Geocoding](https://docs.mapbox.com/api/search/#geocoding) 73 | * [MapQuest Geocoding](https://developer.mapquest.com/documentation/geocoding-api/) 74 | * [US Census Bureau Geocoding Service](https://geocoding.geo.census.gov/geocoder/Geocoding_Services_API.html) 75 | 76 | --- 77 | 78 | ### Do I really have to do two requests? 79 | Yes. Part of the API's design is to improve efficiency and reduce data redundancy. National Weather Service forecasts 80 | are issued on a 2.5km grid. The /points request is to translate your position to the grid square that it's in. A lot of 81 | different points will resolve to the same grid, and we can share that same data with many different users in the same 82 | area. 83 | 84 | The point mappings don't change very often, so you can cache the result of the /points request to avoid doing it 85 | repeatedly. (Also see the next question.) 86 | 87 | --- 88 | 89 | ### How do I know I'm getting the latest data? Do I need to use "cache busting" methods? 90 | The API is designed from the ground up to always provide current data as well as properly support HTTP caching. We send 91 | back Cache-Control headers to advise how long to hold on to a response, and Last-Modified headers so you can validate 92 | if the data has changed later. Many clients will automatically make use of these headers with a bit of configuration. 93 | 94 | Please don't use cache busting techniques like random numbers in the query string. Requests like this with query 95 | parameters that aren't recognized by the API will return a 400 (Bad Request) response. 96 | 97 | If you do run into a case where you believe the API is not giving you the latest data, or advising you to cache it 98 | longer than it should, please [let us know](reporting-issues). 99 | 100 | --- 101 | 102 | ### I'm getting a 403 (Forbidden/Access Denied) error from the API. 103 | Make sure your program is including a `User-Agent` header in your request. We recommend setting the value to something 104 | that identifies your application and includes a contact email. This helps us contact you if we notice unusual behavior, 105 | such as your program consuming a high amount of resources. 106 | 107 | In the future we will replace the User-Agent requirement with a more typical API key system. 108 | 109 | If you're including the User-Agent header and are still having problems, please 110 | [let us know](reporting-issues). 111 | 112 | --- 113 | 114 | ### I already use some of the NWS web services on forecast.weather.gov. How can I switch my application to use the API? 115 | Depending on what service you're using, the data may already be available via the API. 116 | 117 | ##### I use the Digital Weather Markup Language service on forecast.weather.gov. 118 | You can follow [the directions from earlier](#how-to-get-forecast) on how to get a forecast. On the third 119 | step, you can request the DWML instead of the JSON forecast by adding an `Accept` header with the value 120 | `application/vnd.noaa.dwml+xml` to your request. (You'll need to consult the documentation for your program's HTTP 121 | library on how to add a request header.) 122 | 123 | We would encourage you to change your application to use the new JSON forecast format, as this will be our main focus 124 | for support going forward. 125 | 126 | ##### I use the JSON service on forecast.weather.gov. 127 | The API won't support the existing JSON format, but take a look at the new JSON format 128 | [as described earlier](#how-to-get-forecast). We think you'll agree that it's much simpler to use in your 129 | application. 130 | 131 | ##### I'm not able to switch to using the API just yet. 132 | You can continue to use the existing legacy services on `forecast.weather.gov`, but we encourage you to move to the API 133 | when you can. We have more resources dedicated to supporting the API and much of our future development will be focused 134 | here. 135 | 136 | ##### I'm using a service that isn't described here. 137 | Please [give us some feedback](reporting-issues) on what you're using, so we can evaluate it for future 138 | inclusion into the API, or point you to the best place to get the information. 139 | -------------------------------------------------------------------------------- /assets/openapi.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: weather.gov API 4 | description: weather.gov API 5 | version: 1.9.0 6 | servers: 7 | - 8 | url: https://api.weather.gov 9 | description: Production server 10 | externalDocs: 11 | description: Full API documentation 12 | url: https://www.weather.gov/documentation/services-web-api 13 | security: 14 | - userAgent: [] 15 | paths: 16 | /alerts: 17 | get: 18 | operationId: alerts_query 19 | x-symfony: 20 | controller: App\Controller\AlertController::alertQueryAction 21 | description: Returns all alerts 22 | parameters: 23 | - 24 | name: active 25 | in: query 26 | deprecated: true 27 | description: List only active alerts (use /alerts/active endpoints instead) 28 | schema: 29 | type: boolean 30 | - $ref: '#/components/parameters/QueryStartTime' 31 | - $ref: '#/components/parameters/QueryEndTime' 32 | - $ref: '#/components/parameters/AlertStatus' 33 | - $ref: '#/components/parameters/AlertMessageType' 34 | - $ref: '#/components/parameters/AlertEventName' 35 | - $ref: '#/components/parameters/AlertCode' 36 | - $ref: '#/components/parameters/AlertArea' 37 | - $ref: '#/components/parameters/AlertPoint' 38 | - $ref: '#/components/parameters/AlertRegion' 39 | - $ref: '#/components/parameters/AlertRegionType' 40 | - $ref: '#/components/parameters/AlertZone' 41 | - $ref: '#/components/parameters/AlertUrgency' 42 | - $ref: '#/components/parameters/AlertSeverity' 43 | - $ref: '#/components/parameters/AlertCertainty' 44 | - $ref: '#/components/parameters/Limit' 45 | - $ref: '#/components/parameters/PaginationCursor' 46 | responses: 47 | '200': 48 | $ref: '#/components/responses/AlertCollection' 49 | '301': 50 | description: Certain common queries may be redirected to discrete URLs 51 | default: 52 | $ref: '#/components/responses/Error' 53 | /alerts/active: 54 | get: 55 | operationId: alerts_active 56 | x-symfony: 57 | controller: App\Controller\AlertController::allActiveAlertsAction 58 | description: Returns all currently active alerts 59 | parameters: 60 | - $ref: '#/components/parameters/AlertStatus' 61 | - $ref: '#/components/parameters/AlertMessageType' 62 | - $ref: '#/components/parameters/AlertEventName' 63 | - $ref: '#/components/parameters/AlertCode' 64 | - $ref: '#/components/parameters/AlertArea' 65 | - $ref: '#/components/parameters/AlertPoint' 66 | - $ref: '#/components/parameters/AlertRegion' 67 | - $ref: '#/components/parameters/AlertRegionType' 68 | - $ref: '#/components/parameters/AlertZone' 69 | - $ref: '#/components/parameters/AlertUrgency' 70 | - $ref: '#/components/parameters/AlertSeverity' 71 | - $ref: '#/components/parameters/AlertCertainty' 72 | - $ref: '#/components/parameters/Limit' 73 | responses: 74 | '200': 75 | $ref: '#/components/responses/AlertCollection' 76 | '301': 77 | description: Certain common queries may be redirected to discrete URLs 78 | default: 79 | $ref: '#/components/responses/Error' 80 | /alerts/active/count: 81 | get: 82 | operationId: alerts_active_count 83 | x-symfony: 84 | controller: App\Controller\AlertController::allActiveAlertsCountAction 85 | description: Returns info on the number of active alerts 86 | responses: 87 | '200': 88 | description: A data structure showing the counts of active alerts broken down by various categories 89 | headers: 90 | X-Correlation-Id: 91 | $ref: '#/components/headers/CorrelationId' 92 | X-Request-Id: 93 | $ref: '#/components/headers/RequestId' 94 | X-Server-Id: 95 | $ref: '#/components/headers/ServerId' 96 | content: 97 | application/ld+json: 98 | schema: 99 | type: object 100 | properties: 101 | total: 102 | description: The total number of active alerts 103 | type: integer 104 | minimum: 0 105 | land: 106 | description: The total number of active alerts affecting land zones 107 | type: integer 108 | minimum: 0 109 | marine: 110 | description: The total number of active alerts affecting marine zones 111 | type: integer 112 | minimum: 0 113 | regions: 114 | description: Active alerts by marine region 115 | type: object 116 | additionalProperties: 117 | type: integer 118 | minimum: 1 119 | areas: 120 | description: Active alerts by area (state/territory) 121 | type: object 122 | additionalProperties: 123 | type: integer 124 | minimum: 1 125 | zones: 126 | description: Active alerts by NWS public zone or county code 127 | type: object 128 | additionalProperties: 129 | type: integer 130 | minimum: 1 131 | default: 132 | $ref: '#/components/responses/Error' 133 | /alerts/active/zone/{zoneId}: 134 | parameters: 135 | - $ref: '#/components/parameters/NWSZoneId' 136 | get: 137 | operationId: alerts_active_zone 138 | x-symfony: 139 | controller: App\Controller\AlertController::activeAlertsByZoneAction 140 | description: Returns active alerts for the given NWS public zone or county 141 | responses: 142 | '200': 143 | $ref: '#/components/responses/AlertCollection' 144 | default: 145 | $ref: '#/components/responses/Error' 146 | /alerts/active/area/{area}: 147 | parameters: 148 | - 149 | name: area 150 | in: path 151 | required: true 152 | description: State/area ID 153 | schema: 154 | $ref: '#/components/schemas/AreaCode' 155 | get: 156 | operationId: alerts_active_area 157 | x-symfony: 158 | controller: App\Controller\AlertController::activeAlertsByAreaAction 159 | description: Returns active alerts for the given area (state or marine area) 160 | responses: 161 | '200': 162 | $ref: '#/components/responses/AlertCollection' 163 | default: 164 | $ref: '#/components/responses/Error' 165 | /alerts/active/region/{region}: 166 | parameters: 167 | - 168 | name: region 169 | in: path 170 | required: true 171 | description: Marine region ID 172 | schema: 173 | $ref: '#/components/schemas/MarineRegionCode' 174 | get: 175 | operationId: alerts_active_region 176 | x-symfony: 177 | controller: App\Controller\AlertController::activeAlertsByRegionAction 178 | description: Returns active alerts for the given marine region 179 | responses: 180 | '200': 181 | $ref: '#/components/responses/AlertCollection' 182 | default: 183 | $ref: '#/components/responses/Error' 184 | /alerts/types: 185 | get: 186 | operationId: alerts_types 187 | x-symfony: 188 | controller: App\Controller\AlertController::alertTypesAction 189 | description: Returns a list of alert types 190 | responses: 191 | '200': 192 | description: A list of recognized event types 193 | headers: 194 | X-Correlation-Id: 195 | $ref: '#/components/headers/CorrelationId' 196 | X-Request-Id: 197 | $ref: '#/components/headers/RequestId' 198 | X-Server-Id: 199 | $ref: '#/components/headers/ServerId' 200 | content: 201 | application/ld+json: 202 | schema: 203 | type: object 204 | properties: 205 | eventTypes: 206 | description: A list of recognized event types 207 | type: array 208 | items: 209 | type: string 210 | default: 211 | $ref: '#/components/responses/Error' 212 | /alerts/{id}: 213 | parameters: 214 | - 215 | name: id 216 | in: path 217 | required: true 218 | description: Alert identifier 219 | schema: 220 | $ref: '#/components/schemas/AlertId' 221 | get: 222 | operationId: alerts_single 223 | x-symfony: 224 | controller: App\Controller\AlertController::singleAlertAction 225 | priority: -100 226 | description: Returns a specific alert 227 | responses: 228 | '200': 229 | description: An alert record 230 | headers: 231 | X-Correlation-Id: 232 | $ref: '#/components/headers/CorrelationId' 233 | X-Request-Id: 234 | $ref: '#/components/headers/RequestId' 235 | X-Server-Id: 236 | $ref: '#/components/headers/ServerId' 237 | content: 238 | application/geo+json: 239 | schema: 240 | $ref: '#/components/schemas/AlertGeoJson' 241 | application/ld+json: 242 | schema: 243 | $ref: '#/components/schemas/AlertJsonLd' 244 | application/cap+xml: 245 | schema: 246 | $ref: '#/components/schemas/AlertCap' 247 | default: 248 | $ref: '#/components/responses/Error' 249 | /aviation/cwsus/{cwsuId}: 250 | get: 251 | operationId: cwsu 252 | x-symfony: 253 | controller: App\Controller\AviationController::cwsuAction 254 | description: Returns metadata about a Center Weather Service Unit 255 | parameters: 256 | - $ref: '#/components/parameters/NWSCenterWeatherServiceUnitId' 257 | responses: 258 | '200': 259 | description: success 260 | content: 261 | application/ld+json: 262 | schema: 263 | $ref: '#/components/schemas/CenterWeatherServiceUnitJsonLd' 264 | default: 265 | $ref: '#/components/responses/Error' 266 | /aviation/cwsus/{cwsuId}/cwas: 267 | get: 268 | operationId: cwas 269 | x-symfony: 270 | controller: App\Controller\AviationController::cwasAction 271 | description: Returns a list of Center Weather Advisories from a CWSU 272 | parameters: 273 | - $ref: '#/components/parameters/NWSCenterWeatherServiceUnitId' 274 | responses: 275 | '200': 276 | description: success 277 | content: 278 | application/geo+json: 279 | schema: 280 | $ref: '#/components/schemas/CenterWeatherAdvisoryCollectionGeoJson' 281 | default: 282 | $ref: '#/components/responses/Error' 283 | /aviation/cwsus/{cwsuId}/cwas/{date}/{sequence}: 284 | get: 285 | operationId: cwa 286 | x-symfony: 287 | controller: App\Controller\AviationController::cwaAction 288 | description: Returns a list of Center Weather Advisories from a CWSU 289 | parameters: 290 | - $ref: '#/components/parameters/NWSCenterWeatherServiceUnitId' 291 | - $ref: '#/components/parameters/Date' 292 | - 293 | name: sequence 294 | in: path 295 | required: true 296 | description: Sequence number 297 | schema: 298 | type: integer 299 | minimum: 100 300 | responses: 301 | '200': 302 | description: success 303 | content: 304 | application/geo+json: 305 | schema: 306 | $ref: '#/components/schemas/CenterWeatherAdvisoryGeoJson' 307 | application/vnd.noaa.uswx+xml: 308 | schema: {} 309 | default: 310 | $ref: '#/components/responses/Error' 311 | /aviation/sigmets: 312 | get: 313 | operationId: sigmetQuery 314 | x-symfony: 315 | controller: App\Controller\AviationController::sigmetQueryAction 316 | description: Returns a list of SIGMET/AIRMETs 317 | parameters: 318 | - $ref: '#/components/parameters/QueryStartTime' 319 | - $ref: '#/components/parameters/QueryEndTime' 320 | - $ref: '#/components/parameters/QueryDate' 321 | - 322 | name: fir 323 | in: query 324 | description: FIR identifier 325 | schema: 326 | $ref: '#/components/schemas/FIRIdentifier' 327 | - 328 | name: sequence 329 | in: query 330 | description: SIGMET sequence number 331 | schema: 332 | $ref: '#/components/schemas/SigmetSequenceNumber' 333 | responses: 334 | '200': 335 | description: success 336 | content: 337 | application/geo+json: 338 | schema: 339 | $ref: '#/components/schemas/SigmetCollectionGeoJson' 340 | default: 341 | $ref: '#/components/responses/Error' 342 | /aviation/sigmets/{fir}: 343 | get: 344 | operationId: sigmetsByFIR 345 | x-symfony: 346 | controller: App\Controller\AviationController::sigmetQueryAction 347 | description: Returns a list of SIGMET/AIRMETs for the specified FIR 348 | parameters: 349 | - $ref: '#/components/parameters/FIRIdentifier' 350 | responses: 351 | '200': 352 | description: success 353 | content: 354 | application/geo+json: 355 | schema: 356 | $ref: '#/components/schemas/SigmetCollectionGeoJson' 357 | default: 358 | $ref: '#/components/responses/Error' 359 | /aviation/sigmets/{fir}/{date}: 360 | get: 361 | operationId: sigmetsByFIRByDate 362 | x-symfony: 363 | controller: App\Controller\AviationController::sigmetQueryAction 364 | description: Returns a list of SIGMET/AIRMETs for the specified FIR for the specified date 365 | parameters: 366 | - $ref: '#/components/parameters/FIRIdentifier' 367 | - $ref: '#/components/parameters/Date' 368 | responses: 369 | '200': 370 | description: success 371 | content: 372 | application/geo+json: 373 | schema: 374 | $ref: '#/components/schemas/SigmetCollectionGeoJson' 375 | default: 376 | $ref: '#/components/responses/Error' 377 | /aviation/sigmets/{fir}/{date}/{sequence}: 378 | get: 379 | operationId: sigmet 380 | x-symfony: 381 | controller: App\Controller\AviationController::sigmetAction 382 | description: Returns a specific SIGMET/AIRMET 383 | parameters: 384 | - $ref: '#/components/parameters/FIRIdentifier' 385 | - $ref: '#/components/parameters/Date' 386 | - $ref: '#/components/parameters/SigmetSequenceNumber' 387 | responses: 388 | '200': 389 | description: success 390 | content: 391 | application/geo+json: 392 | schema: 393 | $ref: '#/components/schemas/SigmetGeoJson' 394 | application/vnd.noaa.uswx+xml: 395 | schema: {} 396 | default: 397 | $ref: '#/components/responses/Error' 398 | /glossary: 399 | get: 400 | operationId: glossary 401 | x-symfony: 402 | controller: App\Controller\GlossaryController::glossaryAction 403 | description: Returns glossary terms 404 | responses: 405 | '200': 406 | description: A set of glossary terms 407 | headers: 408 | X-Correlation-Id: 409 | $ref: '#/components/headers/CorrelationId' 410 | X-Request-Id: 411 | $ref: '#/components/headers/RequestId' 412 | X-Server-Id: 413 | $ref: '#/components/headers/ServerId' 414 | content: 415 | application/ld+json: 416 | schema: 417 | type: object 418 | properties: 419 | '@context': 420 | $ref: '#/components/schemas/JsonLdContext' 421 | glossary: 422 | description: A list of glossary terms 423 | type: array 424 | items: 425 | type: object 426 | properties: 427 | term: 428 | description: The term being defined 429 | type: string 430 | definition: 431 | description: A definition for the term 432 | type: string 433 | default: 434 | $ref: '#/components/responses/Error' 435 | /gridpoints/{wfo}/{x},{y}: 436 | parameters: 437 | - $ref: '#/components/parameters/GridpointWFO' 438 | - $ref: '#/components/parameters/GridpointX' 439 | - $ref: '#/components/parameters/GridpointY' 440 | get: 441 | operationId: gridpoint 442 | x-symfony: 443 | controller: App\Controller\GridpointController::gridpointAction 444 | description: Returns raw numerical forecast data for a 2.5km grid area 445 | parameters: 446 | - $ref: '#/components/parameters/Debug' 447 | responses: 448 | '200': 449 | description: Gridpoint forecast data 450 | headers: 451 | X-Correlation-Id: 452 | $ref: '#/components/headers/CorrelationId' 453 | X-Request-Id: 454 | $ref: '#/components/headers/RequestId' 455 | X-Server-Id: 456 | $ref: '#/components/headers/ServerId' 457 | content: 458 | application/geo+json: 459 | schema: 460 | $ref: '#/components/schemas/GridpointGeoJson' 461 | application/ld+json: 462 | schema: 463 | $ref: '#/components/schemas/GridpointJsonLd' 464 | default: 465 | $ref: '#/components/responses/Error' 466 | /gridpoints/{wfo}/{x},{y}/forecast: 467 | parameters: 468 | - $ref: '#/components/parameters/GridpointWFO' 469 | - $ref: '#/components/parameters/GridpointX' 470 | - $ref: '#/components/parameters/GridpointY' 471 | get: 472 | operationId: gridpoint_forecast 473 | x-symfony: 474 | controller: App\Controller\GridpointController::gridpointForecastAction 475 | description: Returns a textual forecast for a 2.5km grid area 476 | parameters: 477 | - $ref: '#/components/parameters/Debug' 478 | - $ref: '#/components/parameters/GridpointForecastFeatureFlags' 479 | - $ref: '#/components/parameters/GridpointForecastUnits' 480 | responses: 481 | '200': 482 | $ref: '#/components/responses/GridpointForecast' 483 | default: 484 | $ref: '#/components/responses/Error' 485 | /gridpoints/{wfo}/{x},{y}/forecast/hourly: 486 | parameters: 487 | - $ref: '#/components/parameters/GridpointWFO' 488 | - $ref: '#/components/parameters/GridpointX' 489 | - $ref: '#/components/parameters/GridpointY' 490 | get: 491 | operationId: gridpoint_forecast_hourly 492 | x-symfony: 493 | controller: App\Controller\GridpointController::gridpointHourlyForecastAction 494 | description: Returns a textual hourly forecast for a 2.5km grid area 495 | parameters: 496 | - $ref: '#/components/parameters/Debug' 497 | - $ref: '#/components/parameters/GridpointForecastFeatureFlags' 498 | - $ref: '#/components/parameters/GridpointForecastUnits' 499 | responses: 500 | '200': 501 | $ref: '#/components/responses/GridpointForecast' 502 | default: 503 | $ref: '#/components/responses/Error' 504 | /gridpoints/{wfo}/{x},{y}/stations: 505 | parameters: 506 | - $ref: '#/components/parameters/GridpointWFO' 507 | - $ref: '#/components/parameters/GridpointX' 508 | - $ref: '#/components/parameters/GridpointY' 509 | get: 510 | operationId: gridpoint_stations 511 | x-symfony: 512 | controller: App\Controller\GridpointController::gridpointStationsAction 513 | description: Returns a list of observation stations usable for a given 2.5km grid area 514 | responses: 515 | '200': 516 | $ref: '#/components/responses/ObservationStationCollection' 517 | default: 518 | $ref: '#/components/responses/Error' 519 | /icons/{set}/{timeOfDay}/{first}: 520 | parameters: 521 | - 522 | name: set 523 | in: path 524 | required: true 525 | description: . 526 | schema: 527 | type: string 528 | - 529 | name: timeOfDay 530 | in: path 531 | required: true 532 | description: . 533 | schema: 534 | type: string 535 | - 536 | name: first 537 | in: path 538 | required: true 539 | description: . 540 | schema: 541 | type: string 542 | - 543 | name: size 544 | in: query 545 | description: Font size 546 | schema: 547 | anyOf: 548 | - 549 | type: string 550 | enum: 551 | - small 552 | - medium 553 | - large 554 | - 555 | type: integer 556 | minimum: 10 557 | maximum: 500 558 | - 559 | name: fontsize 560 | in: query 561 | description: Font size 562 | schema: 563 | type: integer 564 | minimum: 2 565 | maximum: 24 566 | get: 567 | operationId: icons 568 | x-symfony: 569 | controller: App\Controller\IconController::iconAction 570 | description: Returns a forecast icon. Icon services in API are deprecated. 571 | deprecated: true 572 | responses: 573 | '200': 574 | description: success 575 | headers: 576 | X-Correlation-Id: 577 | $ref: '#/components/headers/CorrelationId' 578 | X-Request-Id: 579 | $ref: '#/components/headers/RequestId' 580 | X-Server-Id: 581 | $ref: '#/components/headers/ServerId' 582 | content: 583 | image/png: 584 | schema: 585 | $ref: '#/components/schemas/BinaryFile' 586 | default: 587 | $ref: '#/components/responses/Error' 588 | /icons/{set}/{timeOfDay}/{first}/{second}: 589 | parameters: 590 | - 591 | name: set 592 | in: path 593 | required: true 594 | description: . 595 | schema: 596 | type: string 597 | - 598 | name: timeOfDay 599 | in: path 600 | required: true 601 | description: . 602 | schema: 603 | type: string 604 | - 605 | name: first 606 | in: path 607 | required: true 608 | description: . 609 | schema: 610 | type: string 611 | - 612 | name: second 613 | in: path 614 | required: true 615 | description: . 616 | schema: 617 | type: string 618 | - 619 | name: size 620 | in: query 621 | description: Font size 622 | schema: 623 | anyOf: 624 | - 625 | type: string 626 | enum: 627 | - small 628 | - medium 629 | - large 630 | - 631 | type: integer 632 | minimum: 10 633 | maximum: 500 634 | - 635 | name: fontsize 636 | in: query 637 | description: Font size 638 | schema: 639 | type: integer 640 | minimum: 2 641 | maximum: 24 642 | get: 643 | operationId: iconsDualCondition 644 | x-symfony: 645 | controller: App\Controller\IconController::iconAction 646 | description: Returns a forecast icon. Icon services in API are deprecated. 647 | deprecated: true 648 | responses: 649 | '200': 650 | description: success 651 | headers: 652 | X-Correlation-Id: 653 | $ref: '#/components/headers/CorrelationId' 654 | X-Request-Id: 655 | $ref: '#/components/headers/RequestId' 656 | X-Server-Id: 657 | $ref: '#/components/headers/ServerId' 658 | content: 659 | image/png: 660 | schema: 661 | $ref: '#/components/schemas/BinaryFile' 662 | default: 663 | $ref: '#/components/responses/Error' 664 | /icons: 665 | get: 666 | operationId: icons_summary 667 | x-symfony: 668 | controller: App\Controller\IconController::indexAction 669 | description: Returns a list of icon codes and textual descriptions. Icon services in API are deprecated. 670 | deprecated: true 671 | responses: 672 | '200': 673 | description: success 674 | headers: 675 | X-Correlation-Id: 676 | $ref: '#/components/headers/CorrelationId' 677 | X-Request-Id: 678 | $ref: '#/components/headers/RequestId' 679 | X-Server-Id: 680 | $ref: '#/components/headers/ServerId' 681 | content: 682 | application/ld+json: 683 | schema: 684 | type: object 685 | properties: 686 | '@context': 687 | $ref: '#/components/schemas/JsonLdContext' 688 | icons: 689 | type: object 690 | additionalProperties: 691 | type: object 692 | properties: 693 | description: 694 | type: string 695 | required: [description] 696 | additionalProperties: false 697 | required: [icons] 698 | additionalProperties: false 699 | default: 700 | $ref: '#/components/responses/Error' 701 | /thumbnails/satellite/{area}: 702 | parameters: 703 | - 704 | name: area 705 | in: path 706 | required: true 707 | description: . 708 | schema: 709 | type: string 710 | enum: 711 | - a 712 | - e 713 | - g 714 | - h 715 | - p 716 | - s 717 | - w 718 | get: 719 | operationId: satellite_thumbnails 720 | x-symfony: 721 | controller: App\Controller\ImageController::thumbnailSatelliteAction 722 | description: Returns a thumbnail image for a satellite region. Image services in API are deprecated. 723 | deprecated: true 724 | responses: 725 | '200': 726 | description: An image file 727 | headers: 728 | X-Correlation-Id: 729 | $ref: '#/components/headers/CorrelationId' 730 | X-Request-Id: 731 | $ref: '#/components/headers/RequestId' 732 | X-Server-Id: 733 | $ref: '#/components/headers/ServerId' 734 | content: 735 | image/jpeg: 736 | schema: 737 | $ref: '#/components/schemas/BinaryFile' 738 | default: 739 | $ref: '#/components/responses/Error' 740 | /stations/{stationId}/observations: 741 | parameters: 742 | - $ref: '#/components/parameters/ObservationStationId' 743 | get: 744 | operationId: station_observation_list 745 | x-symfony: 746 | controller: App\Controller\ObservationController::observationListAction 747 | description: Returns a list of observations for a given station 748 | parameters: 749 | - $ref: '#/components/parameters/QueryStartTime' 750 | - $ref: '#/components/parameters/QueryEndTime' 751 | - 752 | name: limit 753 | in: query 754 | description: Limit 755 | schema: 756 | type: integer 757 | minimum: 1 758 | maximum: 500 759 | responses: 760 | '200': 761 | $ref: '#/components/responses/ObservationCollection' 762 | default: 763 | $ref: '#/components/responses/Error' 764 | /stations/{stationId}/observations/latest: 765 | parameters: 766 | - $ref: '#/components/parameters/ObservationStationId' 767 | get: 768 | operationId: station_observation_latest 769 | x-symfony: 770 | controller: App\Controller\ObservationController::stationLatestObservationAction 771 | description: Returns the latest observation for a station 772 | parameters: 773 | - 774 | name: require_qc 775 | in: query 776 | description: Require QC 777 | schema: 778 | type: boolean 779 | responses: 780 | '200': 781 | $ref: '#/components/responses/Observation' 782 | default: 783 | $ref: '#/components/responses/Error' 784 | /stations/{stationId}/observations/{time}: 785 | parameters: 786 | - $ref: '#/components/parameters/ObservationStationId' 787 | get: 788 | operationId: station_observation_time 789 | x-symfony: 790 | controller: App\Controller\ObservationController::stationSingleObservationAction 791 | description: Returns a single observation. 792 | parameters: 793 | - 794 | name: time 795 | in: path 796 | required: true 797 | description: Timestamp of requested observation 798 | schema: 799 | type: string 800 | format: date-time 801 | responses: 802 | '200': 803 | $ref: '#/components/responses/Observation' 804 | default: 805 | $ref: '#/components/responses/Error' 806 | /stations/{stationId}/tafs: 807 | get: 808 | operationId: tafs 809 | x-symfony: 810 | controller: App\Controller\AviationController::tafsAction 811 | description: Returns Terminal Aerodrome Forecasts for the specified airport station. 812 | parameters: 813 | - $ref: '#/components/parameters/ObservationStationId' 814 | responses: 815 | '200': 816 | description: success 817 | content: 818 | application/ld+json: 819 | schema: {} 820 | default: 821 | $ref: '#/components/responses/Error' 822 | /stations/{stationId}/tafs/{date}/{time}: 823 | get: 824 | operationId: taf 825 | x-symfony: 826 | controller: App\Controller\AviationController::tafAction 827 | description: Returns a single Terminal Aerodrome Forecast. 828 | parameters: 829 | - $ref: '#/components/parameters/ObservationStationId' 830 | - $ref: '#/components/parameters/Date' 831 | - $ref: '#/components/parameters/Time' 832 | responses: 833 | '200': 834 | description: success 835 | content: 836 | application/vnd.wmo.iwxxm+xml: 837 | schema: {} 838 | default: 839 | $ref: '#/components/responses/Error' 840 | /stations: 841 | get: 842 | operationId: obs_stations 843 | x-symfony: 844 | controller: App\Controller\ObservationStationController::stationsAction 845 | description: Returns a list of observation stations. 846 | parameters: 847 | - 848 | name: id 849 | in: query 850 | description: Filter by observation station ID 851 | schema: 852 | type: array 853 | items: 854 | type: string 855 | style: form 856 | explode: false 857 | - 858 | name: state 859 | in: query 860 | description: Filter by state/marine area code 861 | schema: 862 | type: array 863 | items: 864 | $ref: '#/components/schemas/AreaCode' 865 | style: form 866 | explode: false 867 | - 868 | name: limit 869 | in: query 870 | description: Limit 871 | schema: 872 | type: integer 873 | minimum: 1 874 | maximum: 500 875 | responses: 876 | '200': 877 | $ref: '#/components/responses/ObservationStationCollection' 878 | default: 879 | $ref: '#/components/responses/Error' 880 | /stations/{stationId}: 881 | parameters: 882 | - $ref: '#/components/parameters/ObservationStationId' 883 | get: 884 | operationId: obs_station 885 | x-symfony: 886 | controller: App\Controller\ObservationStationController::stationAction 887 | description: Returns metadata about a given observation station 888 | responses: 889 | '200': 890 | description: success 891 | headers: 892 | X-Correlation-Id: 893 | $ref: '#/components/headers/CorrelationId' 894 | X-Request-Id: 895 | $ref: '#/components/headers/RequestId' 896 | X-Server-Id: 897 | $ref: '#/components/headers/ServerId' 898 | content: 899 | application/geo+json: 900 | schema: 901 | $ref: '#/components/schemas/ObservationStationGeoJson' 902 | application/ld+json: 903 | schema: 904 | $ref: '#/components/schemas/ObservationStationJsonLd' 905 | default: 906 | $ref: '#/components/responses/Error' 907 | /offices/{officeId}: 908 | parameters: 909 | - $ref: '#/components/parameters/NWSOfficeId' 910 | get: 911 | operationId: office 912 | x-symfony: 913 | controller: App\Controller\OfficeController::officeAction 914 | description: Returns metadata about a NWS forecast office 915 | responses: 916 | '200': 917 | description: success 918 | headers: 919 | X-Correlation-Id: 920 | $ref: '#/components/headers/CorrelationId' 921 | X-Request-Id: 922 | $ref: '#/components/headers/RequestId' 923 | X-Server-Id: 924 | $ref: '#/components/headers/ServerId' 925 | content: 926 | application/ld+json: 927 | schema: 928 | $ref: '#/components/schemas/Office' 929 | default: 930 | $ref: '#/components/responses/Error' 931 | /offices/{officeId}/headlines/{headlineId}: 932 | parameters: 933 | - $ref: '#/components/parameters/NWSOfficeId' 934 | - 935 | name: headlineId 936 | in: path 937 | required: true 938 | description: Headline record ID 939 | schema: 940 | type: string 941 | get: 942 | operationId: office_headline 943 | x-symfony: 944 | controller: App\Controller\OfficeController::officeHeadlineAction 945 | description: Returns a specific news headline for a given NWS office 946 | responses: 947 | '200': 948 | description: success 949 | headers: 950 | X-Correlation-Id: 951 | $ref: '#/components/headers/CorrelationId' 952 | X-Request-Id: 953 | $ref: '#/components/headers/RequestId' 954 | X-Server-Id: 955 | $ref: '#/components/headers/ServerId' 956 | content: 957 | application/ld+json: 958 | schema: 959 | $ref: '#/components/schemas/OfficeHeadline' 960 | default: 961 | $ref: '#/components/responses/Error' 962 | /offices/{officeId}/headlines: 963 | parameters: 964 | - $ref: '#/components/parameters/NWSOfficeId' 965 | get: 966 | operationId: office_headlines 967 | x-symfony: 968 | controller: App\Controller\OfficeController::officeHeadlinesAction 969 | description: Returns a list of news headlines for a given NWS office 970 | responses: 971 | '200': 972 | description: success 973 | headers: 974 | X-Correlation-Id: 975 | $ref: '#/components/headers/CorrelationId' 976 | X-Request-Id: 977 | $ref: '#/components/headers/RequestId' 978 | X-Server-Id: 979 | $ref: '#/components/headers/ServerId' 980 | content: 981 | application/ld+json: 982 | schema: 983 | $ref: '#/components/schemas/OfficeHeadlineCollection' 984 | default: 985 | $ref: '#/components/responses/Error' 986 | /offices/{officeId}/config: 987 | parameters: 988 | - $ref: '#/components/parameters/NWSOfficeId' 989 | get: 990 | operationId: office_config 991 | x-symfony: 992 | controller: App\Controller\OfficeController::configAction 993 | private: true 994 | description: Returns configuration data for an NWS office for use by other NWS web applications 995 | responses: 996 | '200': 997 | description: success 998 | headers: 999 | X-Correlation-Id: 1000 | $ref: '#/components/headers/CorrelationId' 1001 | X-Request-Id: 1002 | $ref: '#/components/headers/RequestId' 1003 | X-Server-Id: 1004 | $ref: '#/components/headers/ServerId' 1005 | content: 1006 | application/ld+json: 1007 | schema: 1008 | type: object 1009 | default: 1010 | $ref: '#/components/responses/Error' 1011 | /points/{point}: 1012 | parameters: 1013 | - $ref: '#/components/parameters/PathPoint' 1014 | get: 1015 | operationId: point 1016 | x-symfony: 1017 | controller: App\Controller\PointController::pointAction 1018 | description: Returns metadata about a given latitude/longitude point 1019 | responses: 1020 | '200': 1021 | description: success 1022 | headers: 1023 | X-Correlation-Id: 1024 | $ref: '#/components/headers/CorrelationId' 1025 | X-Request-Id: 1026 | $ref: '#/components/headers/RequestId' 1027 | X-Server-Id: 1028 | $ref: '#/components/headers/ServerId' 1029 | content: 1030 | application/geo+json: 1031 | schema: 1032 | $ref: '#/components/schemas/PointGeoJson' 1033 | application/ld+json: 1034 | schema: 1035 | $ref: '#/components/schemas/PointJsonLd' 1036 | default: 1037 | $ref: '#/components/responses/Error' 1038 | /points/{point}/stations: 1039 | parameters: 1040 | - $ref: '#/components/parameters/PathPoint' 1041 | get: 1042 | operationId: point_stations 1043 | x-symfony: 1044 | controller: App\Controller\PointController::pointStationsAction 1045 | deprecated: true 1046 | description: Returns a list of observation stations for a given point 1047 | responses: 1048 | '301': 1049 | description: redirect to gridpoint stations 1050 | default: 1051 | $ref: '#/components/responses/Error' 1052 | /radar/servers: 1053 | get: 1054 | operationId: radar_servers 1055 | x-symfony: 1056 | controller: App\Controller\RadarController::serversAction 1057 | description: Returns a list of radar servers 1058 | parameters: 1059 | - 1060 | name: reportingHost 1061 | in: query 1062 | description: Show records from specific reporting host 1063 | schema: 1064 | type: string 1065 | responses: 1066 | '200': 1067 | description: success 1068 | headers: 1069 | X-Correlation-Id: 1070 | $ref: '#/components/headers/CorrelationId' 1071 | X-Request-Id: 1072 | $ref: '#/components/headers/RequestId' 1073 | X-Server-Id: 1074 | $ref: '#/components/headers/ServerId' 1075 | content: 1076 | application/ld+json: 1077 | schema: {} 1078 | default: 1079 | $ref: '#/components/responses/Error' 1080 | /radar/servers/{id}: 1081 | parameters: 1082 | - 1083 | name: id 1084 | in: path 1085 | required: true 1086 | description: Server ID 1087 | schema: 1088 | type: string 1089 | get: 1090 | operationId: radar_server 1091 | x-symfony: 1092 | controller: App\Controller\RadarController::serverAction 1093 | description: Returns metadata about a given radar server 1094 | parameters: 1095 | - 1096 | name: reportingHost 1097 | in: query 1098 | description: Show records from specific reporting host 1099 | schema: 1100 | type: string 1101 | responses: 1102 | '200': 1103 | description: success 1104 | headers: 1105 | X-Correlation-Id: 1106 | $ref: '#/components/headers/CorrelationId' 1107 | X-Request-Id: 1108 | $ref: '#/components/headers/RequestId' 1109 | X-Server-Id: 1110 | $ref: '#/components/headers/ServerId' 1111 | content: 1112 | application/ld+json: 1113 | schema: {} 1114 | default: 1115 | $ref: '#/components/responses/Error' 1116 | /radar/stations: 1117 | get: 1118 | operationId: radar_stations 1119 | x-symfony: 1120 | controller: App\Controller\RadarController::stationsAction 1121 | description: Returns a list of radar stations 1122 | parameters: 1123 | - 1124 | name: stationType 1125 | in: query 1126 | description: Limit results to a specific station type or types 1127 | schema: 1128 | type: array 1129 | items: 1130 | type: string 1131 | pattern: '^[A-Za-z0-9-]+$' 1132 | style: form 1133 | explode: false 1134 | - 1135 | name: reportingHost 1136 | in: query 1137 | description: Show RDA and latency info from specific reporting host 1138 | schema: 1139 | type: string 1140 | - 1141 | name: host 1142 | in: query 1143 | description: Show latency info from specific LDM host 1144 | schema: 1145 | type: string 1146 | responses: 1147 | '200': 1148 | description: success 1149 | headers: 1150 | X-Correlation-Id: 1151 | $ref: '#/components/headers/CorrelationId' 1152 | X-Request-Id: 1153 | $ref: '#/components/headers/RequestId' 1154 | X-Server-Id: 1155 | $ref: '#/components/headers/ServerId' 1156 | content: 1157 | application/geo+json: 1158 | schema: {} 1159 | application/ld+json: 1160 | schema: {} 1161 | default: 1162 | $ref: '#/components/responses/Error' 1163 | /radar/stations/{stationId}: 1164 | parameters: 1165 | - 1166 | name: stationId 1167 | in: path 1168 | required: true 1169 | description: Radar station ID 1170 | schema: 1171 | type: string 1172 | get: 1173 | operationId: radar_station 1174 | x-symfony: 1175 | controller: App\Controller\RadarController::stationAction 1176 | description: Returns metadata about a given radar station 1177 | parameters: 1178 | - 1179 | name: reportingHost 1180 | in: query 1181 | description: Show RDA and latency info from specific reporting host 1182 | schema: 1183 | type: string 1184 | - 1185 | name: host 1186 | in: query 1187 | description: Show latency info from specific LDM host 1188 | schema: 1189 | type: string 1190 | responses: 1191 | '200': 1192 | description: success 1193 | headers: 1194 | X-Correlation-Id: 1195 | $ref: '#/components/headers/CorrelationId' 1196 | X-Request-Id: 1197 | $ref: '#/components/headers/RequestId' 1198 | X-Server-Id: 1199 | $ref: '#/components/headers/ServerId' 1200 | content: 1201 | application/geo+json: 1202 | schema: {} 1203 | application/ld+json: 1204 | schema: {} 1205 | default: 1206 | $ref: '#/components/responses/Error' 1207 | /radar/stations/{stationId}/alarms: 1208 | parameters: 1209 | - 1210 | name: stationId 1211 | in: path 1212 | required: true 1213 | description: Radar station ID 1214 | schema: 1215 | type: string 1216 | get: 1217 | operationId: radar_station_alarms 1218 | x-symfony: 1219 | controller: App\Controller\RadarController::stationAlarmsAction 1220 | description: Returns metadata about a given radar station alarms 1221 | responses: 1222 | '200': 1223 | description: success 1224 | headers: 1225 | X-Correlation-Id: 1226 | $ref: '#/components/headers/CorrelationId' 1227 | X-Request-Id: 1228 | $ref: '#/components/headers/RequestId' 1229 | X-Server-Id: 1230 | $ref: '#/components/headers/ServerId' 1231 | content: 1232 | application/ld+json: 1233 | schema: {} 1234 | default: 1235 | $ref: '#/components/responses/Error' 1236 | /radar/queues/{host}: 1237 | parameters: 1238 | - 1239 | name: host 1240 | in: path 1241 | required: true 1242 | description: LDM host 1243 | schema: 1244 | type: string 1245 | get: 1246 | operationId: radar_queue 1247 | x-symfony: 1248 | controller: App\Controller\RadarController::queueAction 1249 | description: Returns metadata about a given radar queue 1250 | parameters: 1251 | - 1252 | name: limit 1253 | in: query 1254 | description: Record limit 1255 | schema: 1256 | type: integer 1257 | minimum: 1 1258 | maximum: 500 1259 | - 1260 | name: arrived 1261 | in: query 1262 | description: Range for arrival time 1263 | schema: 1264 | $ref: '#/components/schemas/ISO8601Interval' 1265 | - 1266 | name: created 1267 | in: query 1268 | description: Range for creation time 1269 | schema: 1270 | $ref: '#/components/schemas/ISO8601Interval' 1271 | - 1272 | name: published 1273 | in: query 1274 | description: Range for publish time 1275 | schema: 1276 | $ref: '#/components/schemas/ISO8601Interval' 1277 | - 1278 | name: station 1279 | in: query 1280 | description: Station identifier 1281 | schema: 1282 | type: string 1283 | - 1284 | name: type 1285 | in: query 1286 | description: Record type 1287 | schema: 1288 | type: string 1289 | - 1290 | name: feed 1291 | in: query 1292 | description: Originating product feed 1293 | schema: 1294 | type: string 1295 | - 1296 | name: resolution 1297 | in: query 1298 | description: Resolution version 1299 | schema: 1300 | type: integer 1301 | minimum: 1 1302 | responses: 1303 | '200': 1304 | description: success 1305 | headers: 1306 | X-Correlation-Id: 1307 | $ref: '#/components/headers/CorrelationId' 1308 | X-Request-Id: 1309 | $ref: '#/components/headers/RequestId' 1310 | X-Server-Id: 1311 | $ref: '#/components/headers/ServerId' 1312 | content: 1313 | application/ld+json: 1314 | schema: {} 1315 | default: 1316 | $ref: '#/components/responses/Error' 1317 | /radar/profilers/{stationId}: 1318 | parameters: 1319 | - 1320 | name: stationId 1321 | in: path 1322 | required: true 1323 | description: Profiler station ID 1324 | schema: 1325 | type: string 1326 | get: 1327 | operationId: radar_profiler 1328 | x-symfony: 1329 | controller: App\Controller\RadarController::profilerAction 1330 | description: Returns metadata about a given radar wind profiler 1331 | parameters: 1332 | - 1333 | name: time 1334 | in: query 1335 | description: Time interval 1336 | schema: 1337 | $ref: '#/components/schemas/ISO8601Interval' 1338 | - 1339 | name: interval 1340 | in: query 1341 | description: Averaging interval 1342 | schema: 1343 | $ref: '#/components/schemas/ISO8601Duration' 1344 | responses: 1345 | '200': 1346 | description: success 1347 | headers: 1348 | X-Correlation-Id: 1349 | $ref: '#/components/headers/CorrelationId' 1350 | X-Request-Id: 1351 | $ref: '#/components/headers/RequestId' 1352 | X-Server-Id: 1353 | $ref: '#/components/headers/ServerId' 1354 | content: 1355 | application/ld+json: 1356 | schema: {} 1357 | default: 1358 | $ref: '#/components/responses/Error' 1359 | /products: 1360 | get: 1361 | operationId: products_query 1362 | x-symfony: 1363 | controller: App\Controller\TextProductController::productListAction 1364 | description: Returns a list of text products 1365 | parameters: 1366 | - 1367 | name: location 1368 | in: query 1369 | description: Location id 1370 | schema: 1371 | type: array 1372 | items: 1373 | type: string 1374 | style: form 1375 | explode: false 1376 | - 1377 | name: start 1378 | in: query 1379 | description: Start time 1380 | schema: 1381 | type: string 1382 | format: date-time 1383 | - 1384 | name: end 1385 | in: query 1386 | description: End time 1387 | schema: 1388 | type: string 1389 | format: date-time 1390 | - 1391 | name: office 1392 | in: query 1393 | description: Issuing office 1394 | schema: 1395 | type: array 1396 | items: 1397 | type: string 1398 | pattern: '^[A-Z]{4}$' 1399 | style: form 1400 | explode: false 1401 | - 1402 | name: wmoid 1403 | in: query 1404 | description: WMO id code 1405 | schema: 1406 | type: array 1407 | items: 1408 | type: string 1409 | pattern: '^[A-Z]{4}\d{2}$' 1410 | style: form 1411 | explode: false 1412 | - 1413 | name: type 1414 | in: query 1415 | description: Product code 1416 | schema: 1417 | type: array 1418 | items: 1419 | type: string 1420 | pattern: '^\w{3}$' 1421 | style: form 1422 | explode: false 1423 | - 1424 | name: limit 1425 | in: query 1426 | description: Limit 1427 | schema: 1428 | type: integer 1429 | minimum: 1 1430 | maximum: 500 1431 | responses: 1432 | '200': 1433 | description: success 1434 | headers: 1435 | X-Correlation-Id: 1436 | $ref: '#/components/headers/CorrelationId' 1437 | X-Request-Id: 1438 | $ref: '#/components/headers/RequestId' 1439 | X-Server-Id: 1440 | $ref: '#/components/headers/ServerId' 1441 | content: 1442 | application/ld+json: 1443 | schema: 1444 | $ref: '#/components/schemas/TextProductCollection' 1445 | default: 1446 | $ref: '#/components/responses/Error' 1447 | /products/locations: 1448 | get: 1449 | operationId: product_locations 1450 | x-symfony: 1451 | controller: App\Controller\TextProductController::productLocationsAction 1452 | description: Returns a list of valid text product issuance locations 1453 | responses: 1454 | '200': 1455 | description: success 1456 | headers: 1457 | X-Correlation-Id: 1458 | $ref: '#/components/headers/CorrelationId' 1459 | X-Request-Id: 1460 | $ref: '#/components/headers/RequestId' 1461 | X-Server-Id: 1462 | $ref: '#/components/headers/ServerId' 1463 | content: 1464 | application/ld+json: 1465 | schema: 1466 | $ref: '#/components/schemas/TextProductLocationCollection' 1467 | default: 1468 | $ref: '#/components/responses/Error' 1469 | /products/types: 1470 | get: 1471 | operationId: product_types 1472 | x-symfony: 1473 | controller: App\Controller\TextProductController::productTypesAction 1474 | description: Returns a list of valid text product types and codes 1475 | responses: 1476 | '200': 1477 | description: success 1478 | headers: 1479 | X-Correlation-Id: 1480 | $ref: '#/components/headers/CorrelationId' 1481 | X-Request-Id: 1482 | $ref: '#/components/headers/RequestId' 1483 | X-Server-Id: 1484 | $ref: '#/components/headers/ServerId' 1485 | content: 1486 | application/ld+json: 1487 | schema: 1488 | $ref: '#/components/schemas/TextProductTypeCollection' 1489 | default: 1490 | $ref: '#/components/responses/Error' 1491 | /products/{productId}: 1492 | parameters: 1493 | - 1494 | name: productId 1495 | in: path 1496 | required: true 1497 | description: . 1498 | schema: 1499 | type: string 1500 | get: 1501 | operationId: product 1502 | x-symfony: 1503 | controller: App\Controller\TextProductController::productAction 1504 | description: Returns a specific text product 1505 | responses: 1506 | '200': 1507 | description: success 1508 | headers: 1509 | X-Correlation-Id: 1510 | $ref: '#/components/headers/CorrelationId' 1511 | X-Request-Id: 1512 | $ref: '#/components/headers/RequestId' 1513 | X-Server-Id: 1514 | $ref: '#/components/headers/ServerId' 1515 | content: 1516 | application/ld+json: 1517 | schema: 1518 | $ref: '#/components/schemas/TextProduct' 1519 | default: 1520 | $ref: '#/components/responses/Error' 1521 | /products/types/{typeId}: 1522 | parameters: 1523 | - 1524 | name: typeId 1525 | in: path 1526 | required: true 1527 | description: . 1528 | schema: 1529 | type: string 1530 | get: 1531 | operationId: products_type 1532 | x-symfony: 1533 | controller: App\Controller\TextProductController::productsByTypeAction 1534 | description: Returns a list of text products of a given type 1535 | responses: 1536 | '200': 1537 | description: success 1538 | headers: 1539 | X-Correlation-Id: 1540 | $ref: '#/components/headers/CorrelationId' 1541 | X-Request-Id: 1542 | $ref: '#/components/headers/RequestId' 1543 | X-Server-Id: 1544 | $ref: '#/components/headers/ServerId' 1545 | content: 1546 | application/ld+json: 1547 | schema: 1548 | $ref: '#/components/schemas/TextProductCollection' 1549 | default: 1550 | $ref: '#/components/responses/Error' 1551 | /products/types/{typeId}/locations: 1552 | parameters: 1553 | - 1554 | name: typeId 1555 | in: path 1556 | required: true 1557 | description: . 1558 | schema: 1559 | type: string 1560 | get: 1561 | operationId: products_type_locations 1562 | x-symfony: 1563 | controller: App\Controller\TextProductController::locationsWithProductTypeAction 1564 | description: >- 1565 | Returns a list of valid text product issuance locations for a given 1566 | product type 1567 | responses: 1568 | '200': 1569 | description: success 1570 | headers: 1571 | X-Correlation-Id: 1572 | $ref: '#/components/headers/CorrelationId' 1573 | X-Request-Id: 1574 | $ref: '#/components/headers/RequestId' 1575 | X-Server-Id: 1576 | $ref: '#/components/headers/ServerId' 1577 | content: 1578 | application/ld+json: 1579 | schema: 1580 | $ref: '#/components/schemas/TextProductLocationCollection' 1581 | default: 1582 | $ref: '#/components/responses/Error' 1583 | /products/locations/{locationId}/types: 1584 | parameters: 1585 | - 1586 | name: locationId 1587 | in: path 1588 | required: true 1589 | description: . 1590 | schema: 1591 | type: string 1592 | get: 1593 | operationId: location_products 1594 | x-symfony: 1595 | controller: App\Controller\TextProductController::locationProductsAction 1596 | description: Returns a list of valid text product types for a given issuance location 1597 | responses: 1598 | '200': 1599 | description: success 1600 | headers: 1601 | X-Correlation-Id: 1602 | $ref: '#/components/headers/CorrelationId' 1603 | X-Request-Id: 1604 | $ref: '#/components/headers/RequestId' 1605 | X-Server-Id: 1606 | $ref: '#/components/headers/ServerId' 1607 | content: 1608 | application/ld+json: 1609 | schema: 1610 | $ref: '#/components/schemas/TextProductTypeCollection' 1611 | default: 1612 | $ref: '#/components/responses/Error' 1613 | /products/types/{typeId}/locations/{locationId}: 1614 | parameters: 1615 | - 1616 | name: typeId 1617 | in: path 1618 | required: true 1619 | description: . 1620 | schema: 1621 | type: string 1622 | - 1623 | name: locationId 1624 | in: path 1625 | required: true 1626 | description: . 1627 | schema: 1628 | type: string 1629 | get: 1630 | operationId: products_type_location 1631 | x-symfony: 1632 | controller: App\Controller\TextProductController::productsByTypeAndLocationAction 1633 | description: >- 1634 | Returns a list of text products of a given type for a given issuance 1635 | location 1636 | responses: 1637 | '200': 1638 | description: success 1639 | headers: 1640 | X-Correlation-Id: 1641 | $ref: '#/components/headers/CorrelationId' 1642 | X-Request-Id: 1643 | $ref: '#/components/headers/RequestId' 1644 | X-Server-Id: 1645 | $ref: '#/components/headers/ServerId' 1646 | content: 1647 | application/ld+json: 1648 | schema: 1649 | $ref: '#/components/schemas/TextProductCollection' 1650 | default: 1651 | $ref: '#/components/responses/Error' 1652 | /zones: 1653 | get: 1654 | operationId: zone_list 1655 | x-symfony: 1656 | controller: App\Controller\ZoneController::zoneListAction 1657 | description: Returns a list of zones 1658 | parameters: 1659 | - 1660 | name: id 1661 | in: query 1662 | description: Zone ID (forecast or county) 1663 | schema: 1664 | type: array 1665 | items: 1666 | $ref: '#/components/schemas/NWSZoneID' 1667 | style: form 1668 | explode: false 1669 | - 1670 | name: area 1671 | in: query 1672 | description: State/marine area code 1673 | schema: 1674 | type: array 1675 | items: 1676 | $ref: '#/components/schemas/AreaCode' 1677 | style: form 1678 | explode: false 1679 | - 1680 | name: region 1681 | in: query 1682 | description: Region code 1683 | schema: 1684 | type: array 1685 | items: 1686 | $ref: '#/components/schemas/RegionCode' 1687 | style: form 1688 | explode: false 1689 | - 1690 | name: type 1691 | in: query 1692 | description: Zone type 1693 | schema: 1694 | type: array 1695 | items: 1696 | $ref: '#/components/schemas/NWSZoneType' 1697 | style: form 1698 | explode: false 1699 | - 1700 | name: point 1701 | in: query 1702 | description: Point (latitude,longitude) 1703 | schema: 1704 | $ref: '#/components/schemas/PointString' 1705 | - 1706 | name: include_geometry 1707 | in: query 1708 | description: Include geometry in results (true/false) 1709 | schema: 1710 | type: boolean 1711 | - 1712 | name: limit 1713 | in: query 1714 | description: Limit 1715 | schema: 1716 | type: integer 1717 | minimum: 1 1718 | - 1719 | name: effective 1720 | in: query 1721 | description: Effective date/time 1722 | schema: 1723 | type: string 1724 | format: date-time 1725 | responses: 1726 | '200': 1727 | description: success 1728 | headers: 1729 | X-Correlation-Id: 1730 | $ref: '#/components/headers/CorrelationId' 1731 | X-Request-Id: 1732 | $ref: '#/components/headers/RequestId' 1733 | X-Server-Id: 1734 | $ref: '#/components/headers/ServerId' 1735 | content: 1736 | application/geo+json: 1737 | schema: 1738 | $ref: '#/components/schemas/ZoneCollectionGeoJson' 1739 | application/ld+json: 1740 | schema: 1741 | $ref: '#/components/schemas/ZoneCollectionJsonLd' 1742 | default: 1743 | $ref: '#/components/responses/Error' 1744 | /zones/{type}: 1745 | parameters: 1746 | - 1747 | name: type 1748 | in: path 1749 | required: true 1750 | description: Zone type 1751 | schema: 1752 | $ref: '#/components/schemas/NWSZoneType' 1753 | get: 1754 | operationId: zone_list_type 1755 | x-symfony: 1756 | controller: App\Controller\ZoneController::zoneListAction 1757 | description: Returns a list of zones of a given type 1758 | parameters: 1759 | - 1760 | name: id 1761 | in: query 1762 | description: Zone ID (forecast or county) 1763 | schema: 1764 | type: array 1765 | items: 1766 | $ref: '#/components/schemas/NWSZoneID' 1767 | style: form 1768 | explode: false 1769 | - 1770 | name: area 1771 | in: query 1772 | description: State/marine area code 1773 | schema: 1774 | type: array 1775 | items: 1776 | $ref: '#/components/schemas/AreaCode' 1777 | style: form 1778 | explode: false 1779 | - 1780 | name: region 1781 | in: query 1782 | description: Region code 1783 | schema: 1784 | type: array 1785 | items: 1786 | $ref: '#/components/schemas/RegionCode' 1787 | style: form 1788 | explode: false 1789 | - 1790 | name: type 1791 | in: query 1792 | description: Zone type 1793 | schema: 1794 | type: array 1795 | items: 1796 | $ref: '#/components/schemas/NWSZoneType' 1797 | style: form 1798 | explode: false 1799 | - 1800 | name: point 1801 | in: query 1802 | description: Point (latitude,longitude) 1803 | schema: 1804 | $ref: '#/components/schemas/PointString' 1805 | - 1806 | name: include_geometry 1807 | in: query 1808 | description: Include geometry in results (true/false) 1809 | schema: 1810 | type: boolean 1811 | - 1812 | name: limit 1813 | in: query 1814 | description: Limit 1815 | schema: 1816 | type: integer 1817 | minimum: 1 1818 | - 1819 | name: effective 1820 | in: query 1821 | description: Effective date/time 1822 | schema: 1823 | type: string 1824 | format: date-time 1825 | responses: 1826 | '200': 1827 | description: success 1828 | headers: 1829 | X-Correlation-Id: 1830 | $ref: '#/components/headers/CorrelationId' 1831 | X-Request-Id: 1832 | $ref: '#/components/headers/RequestId' 1833 | X-Server-Id: 1834 | $ref: '#/components/headers/ServerId' 1835 | content: 1836 | application/geo+json: 1837 | schema: 1838 | $ref: '#/components/schemas/ZoneCollectionGeoJson' 1839 | application/ld+json: 1840 | schema: 1841 | $ref: '#/components/schemas/ZoneCollectionJsonLd' 1842 | default: 1843 | $ref: '#/components/responses/Error' 1844 | /zones/{type}/{zoneId}: 1845 | parameters: 1846 | - 1847 | name: type 1848 | in: path 1849 | required: true 1850 | description: Zone type 1851 | schema: 1852 | $ref: '#/components/schemas/NWSZoneType' 1853 | - $ref: '#/components/parameters/NWSZoneId' 1854 | get: 1855 | operationId: zone 1856 | x-symfony: 1857 | controller: App\Controller\ZoneController::zoneAction 1858 | description: Returns metadata about a given zone 1859 | parameters: 1860 | - 1861 | name: effective 1862 | in: query 1863 | description: Effective date/time 1864 | schema: 1865 | type: string 1866 | format: date-time 1867 | responses: 1868 | '200': 1869 | description: success 1870 | headers: 1871 | X-Correlation-Id: 1872 | $ref: '#/components/headers/CorrelationId' 1873 | X-Request-Id: 1874 | $ref: '#/components/headers/RequestId' 1875 | X-Server-Id: 1876 | $ref: '#/components/headers/ServerId' 1877 | content: 1878 | application/geo+json: 1879 | schema: 1880 | $ref: '#/components/schemas/ZoneGeoJson' 1881 | application/ld+json: 1882 | schema: 1883 | $ref: '#/components/schemas/ZoneJsonLd' 1884 | default: 1885 | $ref: '#/components/responses/Error' 1886 | /zones/{type}/{zoneId}/forecast: 1887 | parameters: 1888 | - 1889 | name: type 1890 | in: path 1891 | required: true 1892 | description: Zone type 1893 | schema: 1894 | type: string 1895 | - $ref: '#/components/parameters/NWSZoneId' 1896 | get: 1897 | operationId: zone_forecast 1898 | x-symfony: 1899 | controller: App\Controller\ZoneController::zoneForecastAction 1900 | description: Returns the current zone forecast for a given zone 1901 | responses: 1902 | '200': 1903 | description: success 1904 | headers: 1905 | X-Correlation-Id: 1906 | $ref: '#/components/headers/CorrelationId' 1907 | X-Request-Id: 1908 | $ref: '#/components/headers/RequestId' 1909 | X-Server-Id: 1910 | $ref: '#/components/headers/ServerId' 1911 | content: 1912 | application/geo+json: 1913 | schema: 1914 | $ref: '#/components/schemas/ZoneForecastGeoJson' 1915 | application/ld+json: 1916 | schema: 1917 | $ref: '#/components/schemas/ZoneForecastJsonLd' 1918 | default: 1919 | $ref: '#/components/responses/Error' 1920 | /zones/forecast/{zoneId}/observations: 1921 | parameters: 1922 | - $ref: '#/components/parameters/NWSZoneId' 1923 | get: 1924 | operationId: zone_obs 1925 | x-symfony: 1926 | controller: App\Controller\ZoneController::zoneObservationsAction 1927 | description: Returns a list of observations for a given zone 1928 | parameters: 1929 | - 1930 | name: start 1931 | in: query 1932 | description: Start date/time 1933 | schema: 1934 | type: string 1935 | format: date-time 1936 | - 1937 | name: end 1938 | in: query 1939 | description: End date/time 1940 | schema: 1941 | type: string 1942 | format: date-time 1943 | - 1944 | name: limit 1945 | in: query 1946 | description: Limit 1947 | schema: 1948 | type: integer 1949 | minimum: 1 1950 | maximum: 500 1951 | responses: 1952 | '200': 1953 | description: success 1954 | headers: 1955 | X-Correlation-Id: 1956 | $ref: '#/components/headers/CorrelationId' 1957 | X-Request-Id: 1958 | $ref: '#/components/headers/RequestId' 1959 | X-Server-Id: 1960 | $ref: '#/components/headers/ServerId' 1961 | content: 1962 | application/geo+json: 1963 | schema: 1964 | $ref: '#/components/schemas/ObservationCollectionGeoJson' 1965 | application/ld+json: 1966 | schema: 1967 | $ref: '#/components/schemas/ObservationCollectionJsonLd' 1968 | default: 1969 | $ref: '#/components/responses/Error' 1970 | /zones/forecast/{zoneId}/stations: 1971 | parameters: 1972 | - $ref: '#/components/parameters/NWSZoneId' 1973 | get: 1974 | operationId: zone_stations 1975 | x-symfony: 1976 | controller: App\Controller\ZoneController::zoneStationsAction 1977 | description: Returns a list of observation stations for a given zone 1978 | responses: 1979 | '200': 1980 | $ref: '#/components/responses/ObservationStationCollection' 1981 | default: 1982 | $ref: '#/components/responses/Error' 1983 | components: 1984 | schemas: 1985 | Alert: 1986 | description: > 1987 | An object representing a public alert message. 1988 | 1989 | Unless otherwise noted, the fields in this object correspond to the National Weather Service CAP v1.2 1990 | specification, which extends the OASIS Common Alerting Protocol (CAP) v1.2 specification and USA 1991 | Integrated Public Alert and Warning System (IPAWS) Profile v1.0. Refer to this documentation for more 1992 | complete information. 1993 | 1994 | http://docs.oasis-open.org/emergency/cap/v1.2/CAP-v1.2-os.html 1995 | http://docs.oasis-open.org/emergency/cap/v1.2/ipaws-profile/v1.0/cs01/cap-v1.2-ipaws-profile-cs01.html 1996 | https://alerts.weather.gov/#technical-notes-v12 1997 | type: object 1998 | properties: 1999 | id: 2000 | $ref: '#/components/schemas/AlertId' 2001 | areaDesc: 2002 | description: A textual description of the area affected by the alert. 2003 | type: string 2004 | geocode: 2005 | description: Lists of codes for NWS public zones and counties affected by the alert. 2006 | type: object 2007 | properties: 2008 | UGC: 2009 | description: A list of NWS public zone or county identifiers. 2010 | type: array 2011 | items: 2012 | $ref: '#/components/schemas/NWSZoneID' 2013 | SAME: 2014 | description: A list of SAME (Specific Area Message Encoding) codes for affected counties. 2015 | type: array 2016 | items: 2017 | type: string 2018 | pattern: ^\d{6}$ 2019 | affectedZones: 2020 | description: > 2021 | An array of API links for zones affected by the alert. This is an API-specific extension field 2022 | and is not part of the CAP specification. 2023 | type: array 2024 | items: 2025 | type: string 2026 | format: uri 2027 | references: 2028 | description: A list of prior alerts that this alert updates or replaces. 2029 | type: array 2030 | items: 2031 | type: object 2032 | properties: 2033 | '@id': 2034 | description: An API link to the prior alert. 2035 | type: string 2036 | format: uri 2037 | identifier: 2038 | $ref: '#/components/schemas/AlertId' 2039 | sender: 2040 | description: The sender of the prior alert. 2041 | type: string 2042 | sent: 2043 | description: The time the prior alert was sent. 2044 | type: string 2045 | format: date-time 2046 | sent: 2047 | description: The time of the origination of the alert message. 2048 | type: string 2049 | format: date-time 2050 | effective: 2051 | description: The effective time of the information of the alert message. 2052 | type: string 2053 | format: date-time 2054 | onset: 2055 | description: The expected time of the beginning of the subject event of the alert message. 2056 | type: string 2057 | format: date-time 2058 | nullable: true 2059 | expires: 2060 | description: The expiry time of the information of the alert message. 2061 | type: string 2062 | format: date-time 2063 | ends: 2064 | description: The expected end time of the subject event of the alert message. 2065 | type: string 2066 | format: date-time 2067 | nullable: true 2068 | status: 2069 | $ref: '#/components/schemas/AlertStatus' 2070 | messageType: 2071 | $ref: '#/components/schemas/AlertMessageType' 2072 | category: 2073 | description: The code denoting the category of the subject event of the alert message. 2074 | type: string 2075 | enum: 2076 | - Met 2077 | - Geo 2078 | - Safety 2079 | - Security 2080 | - Rescue 2081 | - Fire 2082 | - Health 2083 | - Env 2084 | - Transport 2085 | - Infra 2086 | - CBRNE 2087 | - Other 2088 | severity: 2089 | $ref: '#/components/schemas/AlertSeverity' 2090 | certainty: 2091 | $ref: '#/components/schemas/AlertCertainty' 2092 | urgency: 2093 | $ref: '#/components/schemas/AlertUrgency' 2094 | event: 2095 | description: The text denoting the type of the subject event of the alert message. 2096 | type: string 2097 | sender: 2098 | description: Email address of the NWS webmaster. 2099 | type: string 2100 | senderName: 2101 | description: The text naming the originator of the alert message. 2102 | type: string 2103 | headline: 2104 | description: The text headline of the alert message. 2105 | type: string 2106 | nullable: true 2107 | description: 2108 | description: The text describing the subject event of the alert message. 2109 | type: string 2110 | instruction: 2111 | description: > 2112 | The text describing the recommended action to be taken by recipients of the alert message. 2113 | type: string 2114 | nullable: true 2115 | response: 2116 | description: > 2117 | The code denoting the type of action recommended for the target audience. 2118 | 2119 | This corresponds to responseType in the CAP specification. 2120 | type: string 2121 | enum: 2122 | - Shelter 2123 | - Evacuate 2124 | - Prepare 2125 | - Execute 2126 | - Avoid 2127 | - Monitor 2128 | - Assess 2129 | - AllClear 2130 | - None 2131 | parameters: 2132 | description: > 2133 | System-specific additional parameters associated with the alert message. 2134 | 2135 | The keys in this object correspond to parameter definitions in the NWS CAP specification. 2136 | type: object 2137 | additionalProperties: 2138 | type: array 2139 | items: {} 2140 | AlertCollection: 2141 | type: object 2142 | properties: 2143 | title: 2144 | description: A title describing the alert collection 2145 | type: string 2146 | updated: 2147 | description: The last time a change occurred to this collection 2148 | type: string 2149 | format: date-time 2150 | pagination: 2151 | description: Links for retrieving more data 2152 | type: object 2153 | properties: 2154 | next: 2155 | description: A link to the next set of alerts 2156 | type: string 2157 | format: uri 2158 | required: [next] 2159 | additionalProperties: false 2160 | AlertCollectionGeoJson: 2161 | allOf: 2162 | - $ref: '#/components/schemas/GeoJsonFeatureCollection' 2163 | - 2164 | type: object 2165 | properties: 2166 | features: 2167 | type: array 2168 | items: 2169 | type: object 2170 | properties: 2171 | properties: 2172 | $ref: '#/components/schemas/Alert' 2173 | - $ref: '#/components/schemas/AlertCollection' 2174 | AlertCollectionJsonLd: 2175 | allOf: 2176 | - $ref: '#/components/schemas/AlertCollection' 2177 | - 2178 | type: object 2179 | properties: 2180 | '@context': 2181 | $ref: '#/components/schemas/JsonLdContext' 2182 | '@graph': 2183 | type: array 2184 | items: 2185 | $ref: '#/components/schemas/Alert' 2186 | AlertCap: 2187 | type: object 2188 | AlertGeoJson: 2189 | allOf: 2190 | - $ref: '#/components/schemas/GeoJsonFeature' 2191 | - 2192 | type: object 2193 | properties: 2194 | properties: 2195 | $ref: '#/components/schemas/Alert' 2196 | AlertJsonLd: 2197 | type: object 2198 | properties: 2199 | '@graph': 2200 | type: array 2201 | items: 2202 | $ref: '#/components/schemas/Alert' 2203 | AlertId: 2204 | description: The identifier of the alert message. 2205 | type: string 2206 | AlertCertainty: 2207 | type: string 2208 | enum: 2209 | - Observed 2210 | - Likely 2211 | - Possible 2212 | - Unlikely 2213 | - Unknown 2214 | AlertMessageType: 2215 | type: string 2216 | enum: 2217 | - Alert 2218 | - Update 2219 | - Cancel 2220 | - Ack 2221 | - Error 2222 | AlertSeverity: 2223 | type: string 2224 | enum: 2225 | - Extreme 2226 | - Severe 2227 | - Moderate 2228 | - Minor 2229 | - Unknown 2230 | AlertStatus: 2231 | type: string 2232 | enum: 2233 | - Actual 2234 | - Exercise 2235 | - System 2236 | - Test 2237 | - Draft 2238 | AlertUrgency: 2239 | type: string 2240 | enum: 2241 | - Immediate 2242 | - Expected 2243 | - Future 2244 | - Past 2245 | - Unknown 2246 | AlertAtomEntry: 2247 | description: An alert entry in an Atom feed 2248 | type: object 2249 | xml: 2250 | name: entry 2251 | namespace: http://www.w3.org/2005/Atom 2252 | properties: 2253 | id: 2254 | type: string 2255 | xml: 2256 | namespace: http://www.w3.org/2005/Atom 2257 | updated: 2258 | type: string 2259 | xml: 2260 | namespace: http://www.w3.org/2005/Atom 2261 | published: 2262 | type: string 2263 | xml: 2264 | namespace: http://www.w3.org/2005/Atom 2265 | author: 2266 | type: object 2267 | xml: 2268 | namespace: http://www.w3.org/2005/Atom 2269 | properties: 2270 | name: 2271 | type: string 2272 | summary: 2273 | type: string 2274 | xml: 2275 | namespace: http://www.w3.org/2005/Atom 2276 | event: 2277 | type: string 2278 | xml: 2279 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2280 | sent: 2281 | type: string 2282 | xml: 2283 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2284 | effective: 2285 | type: string 2286 | xml: 2287 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2288 | expires: 2289 | type: string 2290 | xml: 2291 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2292 | status: 2293 | type: string 2294 | xml: 2295 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2296 | msgType: 2297 | type: string 2298 | xml: 2299 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2300 | category: 2301 | type: string 2302 | xml: 2303 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2304 | urgency: 2305 | type: string 2306 | xml: 2307 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2308 | severity: 2309 | type: string 2310 | xml: 2311 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2312 | certainty: 2313 | type: string 2314 | xml: 2315 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2316 | areaDesc: 2317 | type: string 2318 | xml: 2319 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2320 | polygon: 2321 | type: string 2322 | xml: 2323 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2324 | geocode: 2325 | type: array 2326 | xml: 2327 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2328 | items: 2329 | $ref: '#/components/schemas/AlertXMLParameter' 2330 | parameter: 2331 | type: array 2332 | xml: 2333 | namespace: urn:oasis:names:tc:emergency:cap:1.2 2334 | items: 2335 | $ref: '#/components/schemas/AlertXMLParameter' 2336 | AlertXMLParameter: 2337 | type: object 2338 | properties: 2339 | valueName: 2340 | type: string 2341 | value: 2342 | type: string 2343 | AlertAtomFeed: 2344 | description: An alert feed in Atom format 2345 | type: object 2346 | xml: 2347 | name: feed 2348 | namespace: http://www.w3.org/2005/Atom 2349 | properties: 2350 | id: 2351 | type: string 2352 | xml: 2353 | namespace: http://www.w3.org/2005/Atom 2354 | generator: 2355 | type: string 2356 | xml: 2357 | namespace: http://www.w3.org/2005/Atom 2358 | updated: 2359 | type: string 2360 | xml: 2361 | namespace: http://www.w3.org/2005/Atom 2362 | author: 2363 | type: object 2364 | xml: 2365 | namespace: http://www.w3.org/2005/Atom 2366 | properties: 2367 | name: 2368 | type: string 2369 | xml: 2370 | namespace: http://www.w3.org/2005/Atom 2371 | title: 2372 | type: string 2373 | xml: 2374 | namespace: http://www.w3.org/2005/Atom 2375 | entry: 2376 | type: array 2377 | xml: 2378 | namespace: http://www.w3.org/2005/Atom 2379 | items: 2380 | $ref: '#/components/schemas/AlertAtomEntry' 2381 | AreaCode: 2382 | description: State/territory codes and marine area codes 2383 | oneOf: 2384 | - $ref: '#/components/schemas/StateTerritoryCode' 2385 | - $ref: '#/components/schemas/MarineAreaCode' 2386 | BinaryFile: 2387 | type: string 2388 | format: binary 2389 | CenterWeatherAdvisoryCollectionGeoJson: 2390 | allOf: 2391 | - $ref: '#/components/schemas/GeoJsonFeatureCollection' 2392 | - 2393 | type: object 2394 | properties: 2395 | features: 2396 | type: array 2397 | items: 2398 | type: object 2399 | properties: 2400 | properties: 2401 | $ref: '#/components/schemas/CenterWeatherAdvisory' 2402 | CenterWeatherAdvisoryGeoJson: 2403 | allOf: 2404 | - $ref: '#/components/schemas/GeoJsonFeature' 2405 | - 2406 | type: object 2407 | properties: 2408 | properties: 2409 | $ref: '#/components/schemas/CenterWeatherAdvisory' 2410 | CenterWeatherAdvisory: 2411 | type: object 2412 | properties: 2413 | id: 2414 | type: string 2415 | issueTime: 2416 | type: string 2417 | format: date-time 2418 | cwsu: 2419 | $ref: '#/components/schemas/NWSCenterWeatherServiceUnitId' 2420 | sequence: 2421 | type: integer 2422 | minimum: 101 2423 | start: 2424 | type: string 2425 | format: date-time 2426 | end: 2427 | type: string 2428 | format: date-time 2429 | observedProperty: 2430 | type: string 2431 | text: 2432 | type: string 2433 | additionalProperties: false 2434 | CenterWeatherServiceUnitJsonLd: 2435 | - $ref: '#/components/schemas/Office' 2436 | Date: 2437 | description: Date (in YYYY-MM-DD format). 2438 | type: string 2439 | format: date 2440 | FIRIdentifier: 2441 | description: FIR Identifier 2442 | type: string 2443 | pattern: '^[A-Z]{4}$' 2444 | GeometryString: 2445 | description: A geometry represented in Well-Known Text (WKT) format. 2446 | type: string 2447 | format: wkt 2448 | nullable: true 2449 | GeoJsonBoundingBox: 2450 | description: A GeoJSON bounding box. Please refer to IETF RFC 7946 for information on the GeoJSON format. 2451 | type: array 2452 | minItems: 4 2453 | items: 2454 | type: number 2455 | GeoJsonCoordinate: 2456 | description: A GeoJSON coordinate. Please refer to IETF RFC 7946 for information on the GeoJSON format. 2457 | type: array 2458 | minItems: 2 2459 | items: 2460 | type: number 2461 | GeoJsonGeometry: 2462 | description: A GeoJSON geometry object. Please refer to IETF RFC 7946 for information on the GeoJSON format. 2463 | nullable: true 2464 | oneOf: 2465 | - 2466 | title: GeoJSON Point 2467 | type: object 2468 | required: [type, coordinates] 2469 | properties: 2470 | type: 2471 | type: string 2472 | enum: [Point] 2473 | coordinates: 2474 | $ref: '#/components/schemas/GeoJsonCoordinate' 2475 | bbox: 2476 | $ref: '#/components/schemas/GeoJsonBoundingBox' 2477 | - 2478 | title: GeoJSON LineString 2479 | type: object 2480 | required: [type, coordinates] 2481 | properties: 2482 | type: 2483 | type: string 2484 | enum: [LineString] 2485 | coordinates: 2486 | $ref: '#/components/schemas/GeoJsonLineString' 2487 | bbox: 2488 | $ref: '#/components/schemas/GeoJsonBoundingBox' 2489 | - 2490 | title: GeoJSON Polygon 2491 | type: object 2492 | required: [type, coordinates] 2493 | properties: 2494 | type: 2495 | type: string 2496 | enum: [Polygon] 2497 | coordinates: 2498 | $ref: '#/components/schemas/GeoJsonPolygon' 2499 | bbox: 2500 | $ref: '#/components/schemas/GeoJsonBoundingBox' 2501 | - 2502 | title: GeoJSON MultiPoint 2503 | type: object 2504 | required: [type, coordinates] 2505 | properties: 2506 | type: 2507 | type: string 2508 | enum: [MultiPoint] 2509 | coordinates: 2510 | type: array 2511 | items: 2512 | $ref: '#/components/schemas/GeoJsonCoordinate' 2513 | bbox: 2514 | $ref: '#/components/schemas/GeoJsonBoundingBox' 2515 | - 2516 | title: GeoJSON MultiLineString 2517 | type: object 2518 | required: [type, coordinates] 2519 | properties: 2520 | type: 2521 | type: string 2522 | enum: [MultiLineString] 2523 | coordinates: 2524 | type: array 2525 | items: 2526 | $ref: '#/components/schemas/GeoJsonLineString' 2527 | bbox: 2528 | $ref: '#/components/schemas/GeoJsonBoundingBox' 2529 | - 2530 | title: GeoJSON MultiPolygon 2531 | type: object 2532 | required: [type, coordinates] 2533 | properties: 2534 | type: 2535 | type: string 2536 | enum: [MultiPolygon] 2537 | coordinates: 2538 | type: array 2539 | items: 2540 | $ref: '#/components/schemas/GeoJsonPolygon' 2541 | bbox: 2542 | $ref: '#/components/schemas/GeoJsonBoundingBox' 2543 | GeoJsonFeature: 2544 | description: A GeoJSON feature. Please refer to IETF RFC 7946 for information on the GeoJSON format. 2545 | type: object 2546 | properties: 2547 | '@context': 2548 | $ref: '#/components/schemas/JsonLdContext' 2549 | 'id': 2550 | type: string 2551 | format: uri 2552 | type: 2553 | type: string 2554 | enum: [Feature] 2555 | geometry: 2556 | $ref: '#/components/schemas/GeoJsonGeometry' 2557 | properties: 2558 | type: object 2559 | required: [type, geometry, properties] 2560 | additionalProperties: false 2561 | GeoJsonFeatureCollection: 2562 | description: A GeoJSON feature collection. Please refer to IETF RFC 7946 for information on the GeoJSON format. 2563 | type: object 2564 | properties: 2565 | '@context': 2566 | $ref: '#/components/schemas/JsonLdContext' 2567 | type: 2568 | type: string 2569 | enum: [FeatureCollection] 2570 | features: 2571 | type: array 2572 | items: 2573 | $ref: '#/components/schemas/GeoJsonFeature' 2574 | required: [type, features] 2575 | GeoJsonLineString: 2576 | description: A GeoJSON line string. Please refer to IETF RFC 7946 for information on the GeoJSON format. 2577 | type: array 2578 | minItems: 2 2579 | items: 2580 | $ref: '#/components/schemas/GeoJsonCoordinate' 2581 | GeoJsonPolygon: 2582 | description: A GeoJSON polygon. Please refer to IETF RFC 7946 for information on the GeoJSON format. 2583 | type: array 2584 | items: 2585 | type: array 2586 | minItems: 4 2587 | items: 2588 | $ref: '#/components/schemas/GeoJsonCoordinate' 2589 | Gridpoint: 2590 | description: > 2591 | Raw forecast data for a 2.5km grid square. 2592 | 2593 | This is a list of all potential data layers that may appear. Some layers may not be present in all 2594 | areas. 2595 | 2596 | * temperature 2597 | 2598 | * dewpoint 2599 | 2600 | * maxTemperature 2601 | 2602 | * minTemperature 2603 | 2604 | * relativeHumidity 2605 | 2606 | * apparentTemperature 2607 | 2608 | * heatIndex 2609 | 2610 | * windChill 2611 | 2612 | * skyCover 2613 | 2614 | * windDirection 2615 | 2616 | * windSpeed 2617 | 2618 | * windGust 2619 | 2620 | * weather 2621 | 2622 | * hazards: Watch and advisory products in effect 2623 | 2624 | * probabilityOfPrecipitation 2625 | 2626 | * quantitativePrecipitation 2627 | 2628 | * iceAccumulation 2629 | 2630 | * snowfallAmount 2631 | 2632 | * snowLevel 2633 | 2634 | * ceilingHeight 2635 | 2636 | * visibility 2637 | 2638 | * transportWindSpeed 2639 | 2640 | * transportWindDirection 2641 | 2642 | * mixingHeight 2643 | 2644 | * hainesIndex 2645 | 2646 | * lightningActivityLevel 2647 | 2648 | * twentyFootWindSpeed 2649 | 2650 | * twentyFootWindDirection 2651 | 2652 | * waveHeight 2653 | 2654 | * wavePeriod 2655 | 2656 | * waveDirection 2657 | 2658 | * primarySwellHeight 2659 | 2660 | * primarySwellDirection 2661 | 2662 | * secondarySwellHeight 2663 | 2664 | * secondarySwellDirection 2665 | 2666 | * wavePeriod2 2667 | 2668 | * windWaveHeight 2669 | 2670 | * dispersionIndex 2671 | 2672 | * pressure: Barometric pressure 2673 | 2674 | * probabilityOfTropicalStormWinds 2675 | 2676 | * probabilityOfHurricaneWinds 2677 | 2678 | * potentialOf15mphWinds 2679 | 2680 | * potentialOf25mphWinds 2681 | 2682 | * potentialOf35mphWinds 2683 | 2684 | * potentialOf45mphWinds 2685 | 2686 | * potentialOf20mphWindGusts 2687 | 2688 | * potentialOf30mphWindGusts 2689 | 2690 | * potentialOf40mphWindGusts 2691 | 2692 | * potentialOf50mphWindGusts 2693 | 2694 | * potentialOf60mphWindGusts 2695 | 2696 | * grasslandFireDangerIndex 2697 | 2698 | * probabilityOfThunder 2699 | 2700 | * davisStabilityIndex 2701 | 2702 | * atmosphericDispersionIndex 2703 | 2704 | * lowVisibilityOccurrenceRiskIndex 2705 | 2706 | * stability 2707 | 2708 | * redFlagThreatIndex 2709 | type: object 2710 | properties: 2711 | '@context': 2712 | $ref: '#/components/schemas/JsonLdContext' 2713 | geometry: 2714 | $ref: '#/components/schemas/GeometryString' 2715 | '@id': 2716 | type: string 2717 | format: uri 2718 | '@type': 2719 | type: string 2720 | enum: ['wx:Gridpoint'] 2721 | updateTime: 2722 | type: string 2723 | format: date-time 2724 | validTimes: 2725 | $ref: '#/components/schemas/ISO8601Interval' 2726 | elevation: 2727 | $ref: '#/components/schemas/QuantitativeValue' 2728 | forecastOffice: 2729 | type: string 2730 | format: uri 2731 | gridId: 2732 | type: string 2733 | gridX: 2734 | type: integer 2735 | minimum: 0 2736 | gridY: 2737 | type: integer 2738 | minimum: 0 2739 | weather: 2740 | type: object 2741 | properties: 2742 | values: 2743 | type: array 2744 | items: 2745 | type: object 2746 | properties: 2747 | validTime: 2748 | $ref: '#/components/schemas/ISO8601Interval' 2749 | value: 2750 | type: array 2751 | items: 2752 | description: A value object representing expected weather phenomena. 2753 | type: object 2754 | properties: 2755 | coverage: 2756 | type: string 2757 | enum: 2758 | - areas 2759 | - brief 2760 | - chance 2761 | - definite 2762 | - few 2763 | - frequent 2764 | - intermittent 2765 | - isolated 2766 | - likely 2767 | - numerous 2768 | - occasional 2769 | - patchy 2770 | - periods 2771 | - scattered 2772 | - slight_chance 2773 | - widespread 2774 | nullable: true 2775 | weather: 2776 | type: string 2777 | enum: 2778 | - blowing_dust 2779 | - blowing_sand 2780 | - blowing_snow 2781 | - drizzle 2782 | - fog 2783 | - freezing_fog 2784 | - freezing_drizzle 2785 | - freezing_rain 2786 | - freezing_spray 2787 | - frost 2788 | - hail 2789 | - haze 2790 | - ice_crystals 2791 | - ice_fog 2792 | - rain 2793 | - rain_showers 2794 | - sleet 2795 | - smoke 2796 | - snow 2797 | - snow_showers 2798 | - thunderstorms 2799 | - volcanic_ash 2800 | - water_spouts 2801 | nullable: true 2802 | intensity: 2803 | type: string 2804 | enum: 2805 | - very_light 2806 | - light 2807 | - moderate 2808 | - heavy 2809 | nullable: true 2810 | visibility: 2811 | $ref: '#/components/schemas/QuantitativeValue' 2812 | attributes: 2813 | type: array 2814 | items: 2815 | type: string 2816 | enum: 2817 | - damaging_wind 2818 | - dry_thunderstorms 2819 | - flooding 2820 | - gusty_wind 2821 | - heavy_rain 2822 | - large_hail 2823 | - small_hail 2824 | - tornadoes 2825 | required: [coverage, weather, intensity, visibility, attributes] 2826 | additionalProperties: false 2827 | required: [validTime, value] 2828 | additionalProperties: false 2829 | required: [values] 2830 | hazards: 2831 | type: object 2832 | properties: 2833 | values: 2834 | type: array 2835 | items: 2836 | type: object 2837 | properties: 2838 | validTime: 2839 | $ref: '#/components/schemas/ISO8601Interval' 2840 | value: 2841 | type: array 2842 | items: 2843 | description: A value object representing an expected hazard. 2844 | type: object 2845 | properties: 2846 | phenomenon: 2847 | description: > 2848 | Hazard code. This value will correspond to a P-VTEC phenomenon 2849 | code as defined in NWS Directive 10-1703. 2850 | type: string 2851 | pattern: ^\w{2}$ 2852 | significance: 2853 | description: > 2854 | Significance code. This value will correspond to a P-VTEC 2855 | significance code as defined in NWS Directive 10-1703. 2856 | 2857 | This will most frequently be "A" for a watch or "Y" for an 2858 | advisory. 2859 | type: string 2860 | pattern: ^\w$ 2861 | event_number: 2862 | description: > 2863 | Event number. If this hazard refers to a national or regional 2864 | center product (such as a Storm Prediction Center convective 2865 | watch), this value will be the sequence number of that product. 2866 | type: integer 2867 | nullable: true 2868 | required: [phenomenon, significance, event_number] 2869 | required: [validTime, value] 2870 | additionalProperties: false 2871 | required: [values] 2872 | additionalProperties: 2873 | $ref: '#/components/schemas/GridpointQuantitativeValueLayer' 2874 | GridpointQuantitativeValueLayer: 2875 | description: > 2876 | A gridpoint layer consisting of quantitative values (numeric values with associated units of measure). 2877 | type: object 2878 | properties: 2879 | uom: 2880 | $ref: '#/components/schemas/UnitOfMeasure' 2881 | values: 2882 | type: array 2883 | items: 2884 | type: object 2885 | properties: 2886 | validTime: 2887 | $ref: '#/components/schemas/ISO8601Interval' 2888 | value: 2889 | type: number 2890 | nullable: true 2891 | required: [validTime, value] 2892 | additionalProperties: false 2893 | required: [values] 2894 | GridpointGeoJson: 2895 | allOf: 2896 | - $ref: '#/components/schemas/GeoJsonFeature' 2897 | - 2898 | type: object 2899 | properties: 2900 | properties: 2901 | $ref: '#/components/schemas/Gridpoint' 2902 | GridpointJsonLd: 2903 | $ref: '#/components/schemas/Gridpoint' 2904 | GridpointForecast: 2905 | description: A multi-day forecast for a 2.5km grid square. 2906 | type: object 2907 | properties: 2908 | '@context': 2909 | $ref: '#/components/schemas/JsonLdContext' 2910 | geometry: 2911 | $ref: '#/components/schemas/GeometryString' 2912 | units: 2913 | $ref: '#/components/schemas/GridpointForecastUnits' 2914 | forecastGenerator: 2915 | description: The internal generator class used to create the forecast text (used for NWS debugging). 2916 | type: string 2917 | generatedAt: 2918 | description: The time this forecast data was generated. 2919 | type: string 2920 | format: date-time 2921 | updateTime: 2922 | description: The last update time of the data this forecast was generated from. 2923 | type: string 2924 | format: date-time 2925 | updated: 2926 | description: This property is deprecated (use updateTime instead). 2927 | deprecated: true 2928 | type: string 2929 | format: date-time 2930 | validTimes: 2931 | $ref: '#/components/schemas/ISO8601Interval' 2932 | elevation: 2933 | $ref: '#/components/schemas/QuantitativeValue' 2934 | periods: 2935 | description: An array of forecast periods. 2936 | type: array 2937 | items: 2938 | $ref: '#/components/schemas/GridpointForecastPeriod' 2939 | additionalProperties: false 2940 | GridpointForecastPeriod: 2941 | description: > 2942 | An object containing forecast information for a specific time period (generally 12-hour or 1-hour). 2943 | type: object 2944 | properties: 2945 | number: 2946 | description: Sequential period number. 2947 | type: integer 2948 | minimum: 1 2949 | name: 2950 | description: > 2951 | A textual identifier for the period. This value will not be present for hourly forecasts. 2952 | type: string 2953 | example: Tuesday Night 2954 | startTime: 2955 | description: The starting time that this forecast period is valid for. 2956 | type: string 2957 | format: date-time 2958 | endTime: 2959 | description: The ending time that this forecast period is valid for. 2960 | type: string 2961 | format: date-time 2962 | isDaytime: 2963 | description: Indicates whether this period is daytime or nighttime. 2964 | type: boolean 2965 | temperature: 2966 | description: > 2967 | High/low temperature for the period, depending on whether the period is day or night. 2968 | 2969 | This property as an integer value is deprecated. Future versions will express this value as a 2970 | quantitative value object. To make use of the future standard format now, set the 2971 | "forecast_temperature_qv" feature flag on the request. 2972 | oneOf: 2973 | - $ref: '#/components/schemas/QuantitativeValue' 2974 | - type: integer 2975 | temperatureUnit: 2976 | description: > 2977 | The unit of the temperature value (Fahrenheit or Celsius). 2978 | 2979 | This property is deprecated. Future versions will indicate the unit within the quantitative 2980 | value object for the temperature property. To make use of the future standard format now, set 2981 | the "forecast_temperature_qv" feature flag on the request. 2982 | type: string 2983 | deprecated: true 2984 | enum: 2985 | - F 2986 | - C 2987 | temperatureTrend: 2988 | description: > 2989 | If not null, indicates a non-diurnal temperature trend for the period (either rising 2990 | temperature overnight, or falling temperature during the day) 2991 | type: string 2992 | enum: 2993 | - rising 2994 | - falling 2995 | nullable: true 2996 | windSpeed: 2997 | description: > 2998 | Wind speed for the period. 2999 | 3000 | This property as an string value is deprecated. Future versions will express this value as a 3001 | quantitative value object. To make use of the future standard format now, set the 3002 | "forecast_wind_speed_qv" feature flag on the request. 3003 | oneOf: 3004 | - $ref: '#/components/schemas/QuantitativeValue' 3005 | - type: string 3006 | windGust: 3007 | description: > 3008 | Peak wind gust for the period. 3009 | 3010 | This property as an string value is deprecated. Future versions will express this value as a 3011 | quantitative value object. To make use of the future standard format now, set the 3012 | "forecast_wind_speed_qv" feature flag on the request. 3013 | oneOf: 3014 | - $ref: '#/components/schemas/QuantitativeValue' 3015 | - type: string 3016 | nullable: true 3017 | windDirection: 3018 | description: The prevailing direction of the wind for the period, using a 16-point compass. 3019 | type: string 3020 | enum: [N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW] 3021 | icon: 3022 | description: A link to an icon representing the forecast summary. 3023 | deprecated: true 3024 | type: string 3025 | format: uri 3026 | shortForecast: 3027 | description: A brief textual forecast summary for the period. 3028 | type: string 3029 | detailedForecast: 3030 | description: A detailed textual forecast for the period. 3031 | type: string 3032 | additionalProperties: false 3033 | GridpointForecastUnits: 3034 | description: Denotes the units used in the textual portions of the forecast. 3035 | type: string 3036 | enum: 3037 | - us 3038 | - si 3039 | default: us 3040 | GridpointForecastGeoJson: 3041 | allOf: 3042 | - $ref: '#/components/schemas/GeoJsonFeature' 3043 | - 3044 | type: object 3045 | properties: 3046 | properties: 3047 | $ref: '#/components/schemas/GridpointForecast' 3048 | GridpointForecastJsonLd: 3049 | allOf: 3050 | - $ref: '#/components/schemas/GridpointForecast' 3051 | - 3052 | type: object 3053 | properties: 3054 | '@context': 3055 | $ref: '#/components/schemas/JsonLdContext' 3056 | geometry: 3057 | $ref: '#/components/schemas/GeometryString' 3058 | required: ['@context', geometry] 3059 | ISO8601Duration: 3060 | description: A time duration in ISO 8601 format. 3061 | type: string 3062 | pattern: ^P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$ 3063 | example: P2DT12H 3064 | ISO8601Interval: 3065 | description: > 3066 | A time interval in ISO 8601 format. This can be one of: 3067 | 3068 | 1. Start and end time 3069 | 2. Start time and duration 3070 | 3. Duration and end time 3071 | 3072 | The string "NOW" can also be used in place of a start/end time. 3073 | oneOf: 3074 | - 3075 | type: string 3076 | pattern: ^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|[+-]\d{2}:?\d{2}?)|NOW)\/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|[+-]\d{2}:?\d{2}?)|NOW)$ 3077 | example: 2007-03-01T13:00:00Z/2008-05-11T15:30:00Z 3078 | - 3079 | type: string 3080 | pattern: ^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|[+-]\d{2}:?\d{2}?)|NOW)\/P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$ 3081 | example: 2007-03-01T13:00:00Z/P1Y2M10DT2H30M 3082 | - 3083 | type: string 3084 | pattern: ^P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?\/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|[+-]\d{2}:?\d{2}?)|NOW)$ 3085 | example: P1Y2M10DT2H30M/2008-05-11T15:30:00Z 3086 | JsonLdContext: 3087 | anyOf: 3088 | - type: array 3089 | - type: object 3090 | LandRegionCode: 3091 | description: > 3092 | Land region code. These correspond to the six NWS regional headquarters: 3093 | 3094 | * AR: Alaska Region 3095 | 3096 | * CR: Central Region 3097 | 3098 | * ER: Eastern Region 3099 | 3100 | * PR: Pacific Region 3101 | 3102 | * SR: Southern Region 3103 | 3104 | * WR: Western Region 3105 | type: string 3106 | enum: 3107 | - AR 3108 | - CR 3109 | - ER 3110 | - PR 3111 | - SR 3112 | - WR 3113 | MarineAreaCode: 3114 | description: > 3115 | Marine area code as defined in NWS Directive 10-302: 3116 | 3117 | * AM: Western North Atlantic Ocean and along U.S. East Coast south of Currituck Beach Light NC following the coastline into Gulf of Mexico to Ocean Reef FL including the Caribbean 3118 | 3119 | * AN: Western North Atlantic Ocean and along U.S. East Coast from Canadian border south to Currituck Beach Light NC 3120 | 3121 | * GM: Gulf of Mexico and along the U.S. Gulf Coast from the Mexican border to Ocean Reef FL 3122 | 3123 | * LC: Lake St. Clair 3124 | 3125 | * LE: Lake Erie 3126 | 3127 | * LH: Lake Huron 3128 | 3129 | * LM: Lake Michigan 3130 | 3131 | * LO: Lake Ontario 3132 | 3133 | * LS: Lake Superior 3134 | 3135 | * PH: Central Pacific Ocean including Hawaiian waters 3136 | 3137 | * PK: North Pacific Ocean near Alaska and along Alaska coastline including the Bering Sea and the Gulf of Alaska 3138 | 3139 | * PM: Western Pacific Ocean including Mariana Island waters 3140 | 3141 | * PS: South Central Pacific Ocean including American Samoa waters 3142 | 3143 | * PZ: Eastern North Pacific Ocean and along U.S. West Coast from Canadian border to Mexican border 3144 | 3145 | * SL: St. Lawrence River above St. Regis 3146 | type: string 3147 | enum: 3148 | - AM 3149 | - AN 3150 | - GM 3151 | - LC 3152 | - LE 3153 | - LH 3154 | - LM 3155 | - LO 3156 | - LS 3157 | - PH 3158 | - PK 3159 | - PM 3160 | - PS 3161 | - PZ 3162 | - SL 3163 | MarineRegionCode: 3164 | description: > 3165 | Marine region code. These are groups of marine areas combined. 3166 | 3167 | * AL: Alaska waters (PK) 3168 | 3169 | * AT: Atlantic Ocean (AM, AN) 3170 | 3171 | * GL: Great Lakes (LC, LE, LH, LM, LO, LS, SL) 3172 | 3173 | * GM: Gulf of Mexico (GM) 3174 | 3175 | * PA: Eastern Pacific Ocean and U.S. West Coast (PZ) 3176 | 3177 | * PI: Central and Western Pacific (PH, PM, PS) 3178 | type: string 3179 | enum: 3180 | - AL 3181 | - AT 3182 | - GL 3183 | - GM 3184 | - PA 3185 | - PI 3186 | MetarPhenomenon: 3187 | description: An object representing a decoded METAR phenomenon string. 3188 | type: object 3189 | properties: 3190 | intensity: 3191 | type: string 3192 | enum: 3193 | - light 3194 | - heavy 3195 | nullable: true 3196 | modifier: 3197 | type: string 3198 | enum: 3199 | - patches 3200 | - blowing 3201 | - low_drifting 3202 | - freezing 3203 | - shallow 3204 | - partial 3205 | - showers 3206 | nullable: true 3207 | weather: 3208 | type: string 3209 | enum: 3210 | - fog_mist 3211 | - dust_storm 3212 | - dust 3213 | - drizzle 3214 | - funnel_cloud 3215 | - fog 3216 | - smoke 3217 | - hail 3218 | - snow_pellets 3219 | - haze 3220 | - ice_crystals 3221 | - ice_pellets 3222 | - dust_whirls 3223 | - spray 3224 | - rain 3225 | - sand 3226 | - snow_grains 3227 | - snow 3228 | - squalls 3229 | - sand_storm 3230 | - thunderstorms 3231 | - unknown 3232 | - volcanic_ash 3233 | rawString: 3234 | type: string 3235 | inVicinity: 3236 | type: boolean 3237 | required: [intensity, modifier, weather, rawString] 3238 | additionalProperties: false 3239 | MetarSkyCoverage: 3240 | type: string 3241 | enum: 3242 | - OVC 3243 | - BKN 3244 | - SCT 3245 | - FEW 3246 | - SKC 3247 | - CLR 3248 | - VV 3249 | NWSCenterWeatherServiceUnitId: 3250 | description: Three-letter identifier for a Center Weather Service Unit (CWSU). 3251 | type: string 3252 | enum: 3253 | - ZAB 3254 | - ZAN 3255 | - ZAU 3256 | - ZBW 3257 | - ZDC 3258 | - ZDV 3259 | - ZFA 3260 | - ZFW 3261 | - ZHU 3262 | - ZID 3263 | - ZJX 3264 | - ZKC 3265 | - ZLA 3266 | - ZLC 3267 | - ZMA 3268 | - ZME 3269 | - ZMP 3270 | - ZNY 3271 | - ZOA 3272 | - ZOB 3273 | - ZSE 3274 | - ZTL 3275 | NWSForecastOfficeId: 3276 | description: Three-letter identifier for a NWS office. 3277 | type: string 3278 | enum: 3279 | # Eastern Region 3280 | - AKQ 3281 | - ALY 3282 | - BGM 3283 | - BOX 3284 | - BTV 3285 | - BUF 3286 | - CAE 3287 | - CAR 3288 | - CHS 3289 | - CLE 3290 | - CTP 3291 | - GSP 3292 | - GYX 3293 | - ILM 3294 | - ILN 3295 | - LWX 3296 | - MHX 3297 | - OKX 3298 | - PBZ 3299 | - PHI 3300 | - RAH 3301 | - RLX 3302 | - RNK 3303 | # Southern Region 3304 | - ABQ 3305 | - AMA 3306 | - BMX 3307 | - BRO 3308 | - CRP 3309 | - EPZ 3310 | - EWX 3311 | - FFC 3312 | - FWD 3313 | - HGX 3314 | - HUN 3315 | - JAN 3316 | - JAX 3317 | - KEY 3318 | - LCH 3319 | - LIX 3320 | - LUB 3321 | - LZK 3322 | - MAF 3323 | - MEG 3324 | - MFL 3325 | - MLB 3326 | - MOB 3327 | - MRX 3328 | - OHX 3329 | - OUN 3330 | - SHV 3331 | - SJT 3332 | - SJU 3333 | - TAE 3334 | - TBW 3335 | - TSA 3336 | # Central Region 3337 | - ABR 3338 | - APX 3339 | - ARX 3340 | - BIS 3341 | - BOU 3342 | - CYS 3343 | - DDC 3344 | - DLH 3345 | - DMX 3346 | - DTX 3347 | - DVN 3348 | - EAX 3349 | - FGF 3350 | - FSD 3351 | - GID 3352 | - GJT 3353 | - GLD 3354 | - GRB 3355 | - GRR 3356 | - ICT 3357 | - ILX 3358 | - IND 3359 | - IWX 3360 | - JKL 3361 | - LBF 3362 | - LMK 3363 | - LOT 3364 | - LSX 3365 | - MKX 3366 | - MPX 3367 | - MQT 3368 | - OAX 3369 | - PAH 3370 | - PUB 3371 | - RIW 3372 | - SGF 3373 | - TOP 3374 | - UNR 3375 | # Western Region 3376 | - BOI 3377 | - BYZ 3378 | - EKA 3379 | - FGZ 3380 | - GGW 3381 | - HNX 3382 | - LKN 3383 | - LOX 3384 | - MFR 3385 | - MSO 3386 | - MTR 3387 | - OTX 3388 | - PDT 3389 | - PIH 3390 | - PQR 3391 | - PSR 3392 | - REV 3393 | - SEW 3394 | - SGX 3395 | - SLC 3396 | - STO 3397 | - TFX 3398 | - TWC 3399 | - VEF 3400 | # Alaska Region 3401 | - AER 3402 | - AFC 3403 | - AFG 3404 | - AJK 3405 | - ALU 3406 | # Pacific Region 3407 | - GUM 3408 | - HPA 3409 | - HFO 3410 | - PPG 3411 | - STU 3412 | # National Line Offices 3413 | - NH1 3414 | - NH2 3415 | - ONA 3416 | - ONP 3417 | NWSNationalHQId: 3418 | description: Three-letter identifier for NWS National HQ. 3419 | type: string 3420 | enum: 3421 | - NWS 3422 | NWSOfficeId: 3423 | oneOf: 3424 | - $ref: '#/components/schemas/NWSForecastOfficeId' 3425 | - $ref: '#/components/schemas/NWSRegionalHQId' 3426 | - $ref: '#/components/schemas/NWSNationalHQId' 3427 | NWSRegionalHQId: 3428 | description: Three-letter identifier for a NWS Regional HQ. 3429 | type: string 3430 | enum: 3431 | - ARH 3432 | - CRH 3433 | - ERH 3434 | - PRH 3435 | - SRH 3436 | - WRH 3437 | NWSZoneID: 3438 | description: > 3439 | UGC identifier for a NWS forecast zone or county. 3440 | 3441 | The first two letters will correspond to either a state code or marine area code (see 3442 | #/components/schemas/StateTerritoryCode and #/components/schemas/MarineAreaCode for lists of valid 3443 | letter combinations). 3444 | 3445 | The third letter will be Z for public/fire zone or C for county. 3446 | type: string 3447 | pattern: ^(A[KLMNRSZ]|C[AOT]|D[CE]|FL|G[AMU]|I[ADLN]|K[SY]|L[ACEHMOS]|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|P[AHKMRSZ]|S[CDL]|T[NX]|UT|V[AIT]|W[AIVY]|[HR]I)[CZ]\d{3}$ 3448 | NWSZoneType: 3449 | type: string 3450 | enum: 3451 | - land 3452 | - marine 3453 | - forecast 3454 | - public 3455 | - coastal 3456 | - offshore 3457 | - fire 3458 | - county 3459 | Observation: 3460 | type: object 3461 | properties: 3462 | '@context': 3463 | $ref: '#/components/schemas/JsonLdContext' 3464 | geometry: 3465 | $ref: '#/components/schemas/GeometryString' 3466 | '@id': 3467 | type: string 3468 | format: uri 3469 | '@type': 3470 | type: string 3471 | enum: ['wx:ObservationStation'] 3472 | elevation: 3473 | $ref: '#/components/schemas/QuantitativeValue' 3474 | station: 3475 | type: string 3476 | format: uri 3477 | timestamp: 3478 | type: string 3479 | format: date-time 3480 | rawMessage: 3481 | type: string 3482 | textDescription: 3483 | type: string 3484 | icon: 3485 | type: string 3486 | format: uri 3487 | deprecated: true 3488 | presentWeather: 3489 | type: array 3490 | items: 3491 | $ref: '#/components/schemas/MetarPhenomenon' 3492 | temperature: 3493 | $ref: '#/components/schemas/QuantitativeValue' 3494 | dewpoint: 3495 | $ref: '#/components/schemas/QuantitativeValue' 3496 | windDirection: 3497 | $ref: '#/components/schemas/QuantitativeValue' 3498 | windSpeed: 3499 | $ref: '#/components/schemas/QuantitativeValue' 3500 | windGust: 3501 | $ref: '#/components/schemas/QuantitativeValue' 3502 | barometricPressure: 3503 | $ref: '#/components/schemas/QuantitativeValue' 3504 | seaLevelPressure: 3505 | $ref: '#/components/schemas/QuantitativeValue' 3506 | visibility: 3507 | $ref: '#/components/schemas/QuantitativeValue' 3508 | maxTemperatureLast24Hours: 3509 | $ref: '#/components/schemas/QuantitativeValue' 3510 | minTemperatureLast24Hours: 3511 | $ref: '#/components/schemas/QuantitativeValue' 3512 | precipitationLastHour: 3513 | $ref: '#/components/schemas/QuantitativeValue' 3514 | precipitationLast3Hours: 3515 | $ref: '#/components/schemas/QuantitativeValue' 3516 | precipitationLast6Hours: 3517 | $ref: '#/components/schemas/QuantitativeValue' 3518 | relativeHumidity: 3519 | $ref: '#/components/schemas/QuantitativeValue' 3520 | windChill: 3521 | $ref: '#/components/schemas/QuantitativeValue' 3522 | heatIndex: 3523 | $ref: '#/components/schemas/QuantitativeValue' 3524 | cloudLayers: 3525 | type: array 3526 | items: 3527 | type: object 3528 | properties: 3529 | base: 3530 | $ref: '#/components/schemas/QuantitativeValue' 3531 | amount: 3532 | $ref: '#/components/schemas/MetarSkyCoverage' 3533 | required: [base, amount] 3534 | additionalProperties: false 3535 | additionalProperties: false 3536 | ObservationGeoJson: 3537 | allOf: 3538 | - $ref: '#/components/schemas/GeoJsonFeature' 3539 | - 3540 | type: object 3541 | properties: 3542 | properties: 3543 | $ref: '#/components/schemas/Observation' 3544 | ObservationJsonLd: 3545 | $ref: '#/components/schemas/Observation' 3546 | ObservationCollectionGeoJson: 3547 | allOf: 3548 | - $ref: '#/components/schemas/GeoJsonFeatureCollection' 3549 | - 3550 | type: object 3551 | properties: 3552 | features: 3553 | type: array 3554 | items: 3555 | type: object 3556 | properties: 3557 | properties: 3558 | $ref: '#/components/schemas/Observation' 3559 | ObservationCollectionJsonLd: 3560 | type: object 3561 | properties: 3562 | '@context': 3563 | $ref: '#/components/schemas/JsonLdContext' 3564 | '@graph': 3565 | type: array 3566 | items: 3567 | $ref: '#/components/schemas/Observation' 3568 | additionalProperties: false 3569 | ObservationStation: 3570 | type: object 3571 | properties: 3572 | '@context': 3573 | $ref: '#/components/schemas/JsonLdContext' 3574 | geometry: 3575 | $ref: '#/components/schemas/GeometryString' 3576 | '@id': 3577 | type: string 3578 | format: uri 3579 | '@type': 3580 | type: string 3581 | enum: ['wx:ObservationStation'] 3582 | elevation: 3583 | $ref: '#/components/schemas/QuantitativeValue' 3584 | stationIdentifier: 3585 | type: string 3586 | name: 3587 | type: string 3588 | timeZone: 3589 | type: string 3590 | format: iana-time-zone-identifier 3591 | forecast: 3592 | description: A link to the NWS public forecast zone containing this station. 3593 | type: string 3594 | format: uri 3595 | county: 3596 | description: A link to the NWS county zone containing this station. 3597 | type: string 3598 | format: uri 3599 | fireWeatherZone: 3600 | description: A link to the NWS fire weather forecast zone containing this station. 3601 | type: string 3602 | format: uri 3603 | additionalProperties: false 3604 | ObservationStationGeoJson: 3605 | allOf: 3606 | - $ref: '#/components/schemas/GeoJsonFeature' 3607 | - 3608 | type: object 3609 | properties: 3610 | properties: 3611 | $ref: '#/components/schemas/ObservationStation' 3612 | ObservationStationJsonLd: 3613 | allOf: 3614 | - $ref: '#/components/schemas/ObservationStation' 3615 | - 3616 | type: object 3617 | properties: 3618 | '@context': 3619 | $ref: '#/components/schemas/JsonLdContext' 3620 | geometry: 3621 | $ref: '#/components/schemas/GeometryString' 3622 | required: ['@context', geometry] 3623 | ObservationStationCollectionGeoJson: 3624 | allOf: 3625 | - $ref: '#/components/schemas/GeoJsonFeatureCollection' 3626 | - 3627 | type: object 3628 | properties: 3629 | features: 3630 | type: array 3631 | items: 3632 | type: object 3633 | properties: 3634 | properties: 3635 | $ref: '#/components/schemas/ObservationStation' 3636 | observationStations: 3637 | type: array 3638 | items: 3639 | type: string 3640 | format: uri 3641 | ObservationStationCollectionJsonLd: 3642 | type: object 3643 | properties: 3644 | '@context': 3645 | $ref: '#/components/schemas/JsonLdContext' 3646 | '@graph': 3647 | type: array 3648 | items: 3649 | $ref: '#/components/schemas/ObservationStation' 3650 | observationStations: 3651 | type: array 3652 | items: 3653 | type: string 3654 | format: uri 3655 | additionalProperties: false 3656 | Office: 3657 | type: object 3658 | properties: 3659 | '@context': 3660 | $ref: '#/components/schemas/JsonLdContext' 3661 | '@type': 3662 | type: string 3663 | enum: [GovernmentOrganization] 3664 | '@id': 3665 | type: string 3666 | format: uri 3667 | id: 3668 | type: string 3669 | name: 3670 | type: string 3671 | address: 3672 | type: object 3673 | properties: 3674 | '@type': 3675 | type: string 3676 | enum: [PostalAddress] 3677 | streetAddress: 3678 | type: string 3679 | addressLocality: 3680 | type: string 3681 | addressRegion: 3682 | type: string 3683 | postalCode: 3684 | type: string 3685 | additionalProperties: false 3686 | telephone: 3687 | type: string 3688 | faxNumber: 3689 | type: string 3690 | email: 3691 | type: string 3692 | sameAs: 3693 | type: string 3694 | format: uri 3695 | nwsRegion: 3696 | type: string 3697 | parentOrganization: 3698 | type: string 3699 | format: uri 3700 | responsibleCounties: 3701 | type: array 3702 | items: 3703 | type: string 3704 | format: uri 3705 | responsibleForecastZones: 3706 | type: array 3707 | items: 3708 | type: string 3709 | format: uri 3710 | responsibleFireZones: 3711 | type: array 3712 | items: 3713 | type: string 3714 | format: uri 3715 | approvedObservationStations: 3716 | type: array 3717 | items: 3718 | type: string 3719 | format: uri 3720 | additionalProperties: false 3721 | OfficeHeadline: 3722 | type: object 3723 | properties: 3724 | '@context': 3725 | $ref: '#/components/schemas/JsonLdContext' 3726 | '@id': 3727 | type: string 3728 | format: uri 3729 | id: 3730 | type: string 3731 | office: 3732 | type: string 3733 | format: uri 3734 | important: 3735 | type: boolean 3736 | issuanceTime: 3737 | type: string 3738 | format: date-time 3739 | link: 3740 | type: string 3741 | format: uri 3742 | name: 3743 | type: string 3744 | title: 3745 | type: string 3746 | summary: 3747 | type: string 3748 | nullable: true 3749 | content: 3750 | type: string 3751 | OfficeHeadlineCollection: 3752 | type: object 3753 | properties: 3754 | '@context': 3755 | $ref: '#/components/schemas/JsonLdContext' 3756 | '@graph': 3757 | type: array 3758 | items: 3759 | $ref: '#/components/schemas/OfficeHeadline' 3760 | required: ['@context', '@graph'] 3761 | additionalProperties: false 3762 | Point: 3763 | type: object 3764 | properties: 3765 | '@context': 3766 | $ref: '#/components/schemas/JsonLdContext' 3767 | geometry: 3768 | $ref: '#/components/schemas/GeometryString' 3769 | '@id': 3770 | type: string 3771 | format: uri 3772 | '@type': 3773 | type: string 3774 | enum: ['wx:Point'] 3775 | cwa: 3776 | $ref: '#/components/schemas/NWSForecastOfficeId' 3777 | forecastOffice: 3778 | type: string 3779 | format: uri 3780 | gridId: 3781 | $ref: '#/components/schemas/NWSForecastOfficeId' 3782 | gridX: 3783 | type: integer 3784 | minimum: 0 3785 | gridY: 3786 | type: integer 3787 | minimum: 0 3788 | forecast: 3789 | type: string 3790 | format: uri 3791 | forecastHourly: 3792 | type: string 3793 | format: uri 3794 | forecastGridData: 3795 | type: string 3796 | format: uri 3797 | observationStations: 3798 | type: string 3799 | format: uri 3800 | relativeLocation: 3801 | oneOf: 3802 | - $ref: '#/components/schemas/RelativeLocationGeoJson' 3803 | - $ref: '#/components/schemas/RelativeLocationJsonLd' 3804 | forecastZone: 3805 | type: string 3806 | format: uri 3807 | county: 3808 | type: string 3809 | format: uri 3810 | fireWeatherZone: 3811 | type: string 3812 | format: uri 3813 | timeZone: 3814 | type: string 3815 | radarStation: 3816 | type: string 3817 | PointGeoJson: 3818 | allOf: 3819 | - $ref: '#/components/schemas/GeoJsonFeature' 3820 | - 3821 | type: object 3822 | properties: 3823 | properties: 3824 | $ref: '#/components/schemas/Point' 3825 | PointJsonLd: 3826 | allOf: 3827 | - $ref: '#/components/schemas/Point' 3828 | - 3829 | type: object 3830 | properties: 3831 | '@context': 3832 | $ref: '#/components/schemas/JsonLdContext' 3833 | geometry: 3834 | $ref: '#/components/schemas/GeometryString' 3835 | required: ['@context', geometry] 3836 | PointString: 3837 | type: string 3838 | pattern: ^(-?\d+(?:\.\d+)?),(-?\d+(?:\.\d+)?)$ 3839 | ProblemDetail: 3840 | description: Detail about an error. This document conforms to RFC 7807 (Problem Details for HTTP APIs). 3841 | type: object 3842 | properties: 3843 | type: 3844 | type: string 3845 | format: uri 3846 | default: about:blank 3847 | description: > 3848 | A URI reference (RFC 3986) that identifies the problem type. This is only an identifier and is 3849 | not necessarily a resolvable URL. 3850 | example: urn:noaa:nws:api:UnexpectedProblem 3851 | title: 3852 | type: string 3853 | description: A short, human-readable summary of the problem type. 3854 | example: Unexpected Problem 3855 | status: 3856 | type: number 3857 | minimum: 100 3858 | maximum: 999 3859 | description: > 3860 | The HTTP status code (RFC 7231, Section 6) generated by the origin server for this occurrence 3861 | of the problem. 3862 | example: 500 3863 | detail: 3864 | type: string 3865 | description: A human-readable explanation specific to this occurrence of the problem. 3866 | example: An unexpected problem has occurred. 3867 | instance: 3868 | type: string 3869 | format: uri 3870 | description: > 3871 | A URI reference (RFC 3986) that identifies the specific occurrence of the problem. This is only 3872 | an identifier and is not necessarily a resolvable URL. 3873 | example: urn:noaa:nws:api:request:493c3a1d-f87e-407f-ae2c-24483f5aab63 3874 | correlationId: 3875 | type: string 3876 | description: > 3877 | A unique identifier for the request, used for NWS debugging purposes. Please include this 3878 | identifier with any correspondence to help us investigate your issue. 3879 | example: 493c3a1d-f87e-407f-ae2c-24483f5aab63 3880 | required: 3881 | - type 3882 | - title 3883 | - status 3884 | - detail 3885 | - instance 3886 | - correlationId 3887 | additionalProperties: true 3888 | QuantitativeValue: 3889 | description: > 3890 | A structured value representing a measurement and its unit of measure. This object is a slighly 3891 | modified version of the schema.org definition at https://schema.org/QuantitativeValue 3892 | type: object 3893 | properties: 3894 | value: 3895 | description: A measured value 3896 | type: number 3897 | nullable: true 3898 | maxValue: 3899 | description: The maximum value of a range of measured values 3900 | type: number 3901 | minValue: 3902 | description: The minimum value of a range of measured values 3903 | type: number 3904 | unitCode: 3905 | $ref: '#/components/schemas/UnitOfMeasure' 3906 | qualityControl: 3907 | description: > 3908 | For values in observation records, the quality control flag from the MADIS system. The 3909 | definitions of these flags can be found at https://madis.ncep.noaa.gov/madis_sfc_qc_notes.shtml 3910 | type: string 3911 | enum: [Z,C,S,V,X,Q,G,B,T] 3912 | additionalProperties: false 3913 | RegionCode: 3914 | oneOf: 3915 | - $ref: '#/components/schemas/LandRegionCode' 3916 | - $ref: '#/components/schemas/MarineRegionCode' 3917 | RelativeLocation: 3918 | type: object 3919 | properties: 3920 | city: 3921 | type: string 3922 | state: 3923 | type: string 3924 | distance: 3925 | $ref: '#/components/schemas/QuantitativeValue' 3926 | bearing: 3927 | $ref: '#/components/schemas/QuantitativeValue' 3928 | RelativeLocationGeoJson: 3929 | allOf: 3930 | - $ref: '#/components/schemas/GeoJsonFeature' 3931 | - 3932 | type: object 3933 | properties: 3934 | properties: 3935 | $ref: '#/components/schemas/RelativeLocation' 3936 | RelativeLocationJsonLd: 3937 | allOf: 3938 | - $ref: '#/components/schemas/RelativeLocation' 3939 | - 3940 | type: object 3941 | properties: 3942 | geometry: 3943 | $ref: '#/components/schemas/GeometryString' 3944 | required: [geometry] 3945 | Sigmet: 3946 | type: object 3947 | properties: 3948 | id: 3949 | type: string 3950 | format: uri 3951 | issueTime: 3952 | type: string 3953 | format: date-time 3954 | fir: 3955 | $ref: '#/components/schemas/FIRIdentifier' 3956 | sequence: 3957 | type: string 3958 | phenomenon: 3959 | type: string 3960 | format: uri 3961 | nullable: true 3962 | start: 3963 | type: string 3964 | format: date-time 3965 | end: 3966 | type: string 3967 | format: date-time 3968 | additionalProperties: false 3969 | SigmetCollectionGeoJson: 3970 | allOf: 3971 | - $ref: '#/components/schemas/GeoJsonFeatureCollection' 3972 | - 3973 | type: object 3974 | properties: 3975 | features: 3976 | type: array 3977 | items: 3978 | $ref: '#/components/schemas/SigmetGeoJson' 3979 | SigmetGeoJson: 3980 | allOf: 3981 | - $ref: '#/components/schemas/GeoJsonFeature' 3982 | - 3983 | type: object 3984 | properties: 3985 | properties: 3986 | $ref: '#/components/schemas/Sigmet' 3987 | SigmetSequenceNumber: 3988 | type: string 3989 | StateTerritoryCode: 3990 | type: string 3991 | enum: 3992 | - AL 3993 | - AK 3994 | - AS 3995 | - AR 3996 | - AZ 3997 | - CA 3998 | - CO 3999 | - CT 4000 | - DE 4001 | - DC 4002 | - FL 4003 | - GA 4004 | - GU 4005 | - HI 4006 | - ID 4007 | - IL 4008 | - IN 4009 | - IA 4010 | - KS 4011 | - KY 4012 | - LA 4013 | - ME 4014 | - MD 4015 | - MA 4016 | - MI 4017 | - MN 4018 | - MS 4019 | - MO 4020 | - MT 4021 | - NE 4022 | - NV 4023 | - NH 4024 | - NJ 4025 | - NM 4026 | - NY 4027 | - NC 4028 | - ND 4029 | - OH 4030 | - OK 4031 | - OR 4032 | - PA 4033 | - PR 4034 | - RI 4035 | - SC 4036 | - SD 4037 | - TN 4038 | - TX 4039 | - UT 4040 | - VT 4041 | - VI 4042 | - VA 4043 | - WA 4044 | - WV 4045 | - WI 4046 | - WY 4047 | TextProduct: 4048 | type: object 4049 | properties: 4050 | '@context': 4051 | $ref: '#/components/schemas/JsonLdContext' 4052 | '@id': 4053 | type: string 4054 | format: uri 4055 | id: 4056 | type: string 4057 | wmoCollectiveId: 4058 | type: string 4059 | issuingOffice: 4060 | type: string 4061 | issuanceTime: 4062 | type: string 4063 | format: date-time 4064 | productCode: 4065 | type: string 4066 | productName: 4067 | type: string 4068 | productText: 4069 | type: string 4070 | additionalProperties: false 4071 | TextProductCollection: 4072 | type: object 4073 | properties: 4074 | '@context': 4075 | $ref: '#/components/schemas/JsonLdContext' 4076 | '@graph': 4077 | type: array 4078 | items: 4079 | $ref: '#/components/schemas/TextProduct' 4080 | additionalProperties: false 4081 | TextProductTypeCollection: 4082 | type: object 4083 | properties: 4084 | '@context': 4085 | $ref: '#/components/schemas/JsonLdContext' 4086 | '@graph': 4087 | type: array 4088 | items: 4089 | type: object 4090 | properties: 4091 | productCode: 4092 | type: string 4093 | productName: 4094 | type: string 4095 | required: [productCode, productName] 4096 | additionalProperties: false 4097 | additionalProperties: false 4098 | TextProductLocationCollection: 4099 | type: object 4100 | properties: 4101 | '@context': 4102 | $ref: '#/components/schemas/JsonLdContext' 4103 | 'locations': 4104 | type: object 4105 | additionalProperties: 4106 | type: string 4107 | nullable: true 4108 | additionalProperties: false 4109 | Time: 4110 | description: A time (in HHMM format). This is always specified in UTC (Zulu) time. 4111 | type: string 4112 | pattern: '^([01][0-9]|2[0-3])[0-5][0-9]$' 4113 | UnitOfMeasure: 4114 | description: > 4115 | A string denoting a unit of measure, expressed in the format "{unit}" or "{namespace}:{unit}". 4116 | 4117 | Units with the namespace "wmo" or "wmoUnit" are defined in the World Meteorological Organization Codes 4118 | Registry at http://codes.wmo.int/common/unit and should be canonically resolvable to 4119 | http://codes.wmo.int/common/unit/{unit}. 4120 | 4121 | Units with the namespace "nwsUnit" are currently custom and do not align to any standard. 4122 | 4123 | Units with no namespace or the namespace "uc" are compliant with the Unified Code for Units of Measure 4124 | syntax defined at https://unitsofmeasure.org/. This also aligns with recent versions of the Geographic 4125 | Markup Language (GML) standard, the IWXXM standard, and OGC Observations and Measurements v2.0 4126 | (ISO/DIS 19156). 4127 | 4128 | Namespaced units are considered deprecated. We will be aligning API to use the same standards as 4129 | GML/IWXXM in the future. 4130 | type: string 4131 | pattern: ^((wmo|uc|wmoUnit|nwsUnit):)?.*$ 4132 | Zone: 4133 | type: object 4134 | properties: 4135 | '@context': 4136 | $ref: '#/components/schemas/JsonLdContext' 4137 | geometry: 4138 | $ref: '#/components/schemas/GeometryString' 4139 | '@id': 4140 | type: string 4141 | format: uri 4142 | '@type': 4143 | type: string 4144 | enum: ['wx:Zone'] 4145 | id: 4146 | $ref: '#/components/schemas/NWSZoneID' 4147 | type: 4148 | $ref: '#/components/schemas/NWSZoneType' 4149 | name: 4150 | type: string 4151 | effectiveDate: 4152 | type: string 4153 | format: date-time 4154 | expirationDate: 4155 | type: string 4156 | format: date-time 4157 | state: 4158 | oneOf: 4159 | - $ref: '#/components/schemas/StateTerritoryCode' 4160 | - 4161 | type: string 4162 | enum: [''] 4163 | nullable: true 4164 | cwa: 4165 | type: array 4166 | items: 4167 | $ref: '#/components/schemas/NWSForecastOfficeId' 4168 | forecastOffices: 4169 | type: array 4170 | items: 4171 | type: string 4172 | format: uri 4173 | timeZone: 4174 | type: array 4175 | items: 4176 | type: string 4177 | format: iana-time-zone-identifier 4178 | observationStations: 4179 | type: array 4180 | items: 4181 | type: string 4182 | format: uri 4183 | radarStation: 4184 | type: string 4185 | nullable: true 4186 | additionalProperties: false 4187 | ZoneGeoJson: 4188 | allOf: 4189 | - $ref: '#/components/schemas/GeoJsonFeature' 4190 | - 4191 | type: object 4192 | properties: 4193 | properties: 4194 | $ref: '#/components/schemas/Zone' 4195 | ZoneJsonLd: 4196 | $ref: '#/components/schemas/Zone' 4197 | ZoneCollectionGeoJson: 4198 | allOf: 4199 | - $ref: '#/components/schemas/GeoJsonFeatureCollection' 4200 | - 4201 | type: object 4202 | properties: 4203 | features: 4204 | type: array 4205 | items: 4206 | type: object 4207 | properties: 4208 | properties: 4209 | $ref: '#/components/schemas/Zone' 4210 | ZoneCollectionJsonLd: 4211 | type: object 4212 | properties: 4213 | '@context': 4214 | $ref: '#/components/schemas/JsonLdContext' 4215 | '@graph': 4216 | type: array 4217 | items: 4218 | $ref: '#/components/schemas/Zone' 4219 | additionalProperties: false 4220 | ZoneForecast: 4221 | description: An object representing a zone area forecast. 4222 | type: object 4223 | properties: 4224 | '@context': 4225 | $ref: '#/components/schemas/JsonLdContext' 4226 | geometry: 4227 | $ref: '#/components/schemas/GeometryString' 4228 | zone: 4229 | description: An API link to the zone this forecast is for. 4230 | type: string 4231 | format: uri 4232 | updated: 4233 | description: The time this zone forecast product was published. 4234 | type: string 4235 | format: date-time 4236 | periods: 4237 | description: An array of forecast periods. 4238 | type: array 4239 | items: 4240 | type: object 4241 | properties: 4242 | number: 4243 | description: A sequential identifier number. 4244 | type: integer 4245 | name: 4246 | description: A textual description of the period. 4247 | type: string 4248 | example: This Afternoon 4249 | detailedForecast: 4250 | description: A detailed textual forecast for the period. 4251 | type: string 4252 | required: [number, name, detailedForecast] 4253 | additionalProperties: false 4254 | additionalProperties: false 4255 | ZoneForecastGeoJson: 4256 | allOf: 4257 | - $ref: '#/components/schemas/GeoJsonFeature' 4258 | - 4259 | type: object 4260 | properties: 4261 | properties: 4262 | $ref: '#/components/schemas/ZoneForecast' 4263 | ZoneForecastJsonLd: 4264 | $ref: '#/components/schemas/ZoneForecast' 4265 | parameters: 4266 | AlertArea: 4267 | name: area 4268 | in: query 4269 | description: > 4270 | State/territory code or marine area code 4271 | 4272 | This parameter is incompatible with the following parameters: point, region, region_type, zone 4273 | schema: 4274 | type: array 4275 | items: 4276 | $ref: '#/components/schemas/AreaCode' 4277 | style: form 4278 | explode: false 4279 | x-symfony: 4280 | exclusive-group: geospatial 4281 | AlertCertainty: 4282 | name: certainty 4283 | in: query 4284 | description: Certainty (observed, likely, possible, unlikely, unknown) 4285 | schema: 4286 | type: array 4287 | items: 4288 | $ref: '#/components/schemas/AlertCertainty' 4289 | style: form 4290 | explode: false 4291 | AlertCode: 4292 | name: code 4293 | in: query 4294 | description: Event code 4295 | schema: 4296 | type: array 4297 | items: 4298 | type: string 4299 | pattern: ^\w{3}$ 4300 | style: form 4301 | explode: false 4302 | AlertEventName: 4303 | name: event 4304 | in: query 4305 | description: Event name 4306 | schema: 4307 | type: array 4308 | items: 4309 | type: string 4310 | pattern: ^[A-Za-z0-9 ]+$ 4311 | style: form 4312 | explode: false 4313 | AlertMessageType: 4314 | name: message_type 4315 | in: query 4316 | description: Message type (alert, update, cancel) 4317 | schema: 4318 | type: array 4319 | items: 4320 | type: string 4321 | enum: [alert, update, cancel] 4322 | style: form 4323 | explode: false 4324 | AlertPoint: 4325 | name: point 4326 | in: query 4327 | description: > 4328 | Point (latitude,longitude) 4329 | 4330 | This parameter is incompatible with the following parameters: area, region, region_type, zone 4331 | schema: 4332 | $ref: '#/components/schemas/PointString' 4333 | x-symfony: 4334 | exclusive-group: geospatial 4335 | AlertRegion: 4336 | name: region 4337 | in: query 4338 | description: > 4339 | Marine region code 4340 | 4341 | This parameter is incompatible with the following parameters: area, point, region_type, zone 4342 | schema: 4343 | type: array 4344 | items: 4345 | $ref: '#/components/schemas/MarineRegionCode' 4346 | style: form 4347 | explode: false 4348 | x-symfony: 4349 | exclusive-group: geospatial 4350 | AlertRegionType: 4351 | name: region_type 4352 | in: query 4353 | description: > 4354 | Region type (land or marine) 4355 | 4356 | This parameter is incompatible with the following parameters: area, point, region, zone 4357 | schema: 4358 | type: string 4359 | enum: 4360 | - land 4361 | - marine 4362 | x-symfony: 4363 | exclusive-group: geospatial 4364 | AlertSeverity: 4365 | name: severity 4366 | in: query 4367 | description: Severity (extreme, severe, moderate, minor, unknown) 4368 | schema: 4369 | type: array 4370 | items: 4371 | $ref: '#/components/schemas/AlertSeverity' 4372 | style: form 4373 | explode: false 4374 | AlertStatus: 4375 | name: status 4376 | in: query 4377 | description: Status (actual, exercise, system, test, draft) 4378 | schema: 4379 | type: array 4380 | items: 4381 | type: string 4382 | enum: [actual, exercise, system, test, draft] 4383 | style: form 4384 | explode: false 4385 | AlertUrgency: 4386 | name: urgency 4387 | in: query 4388 | description: Urgency (immediate, expected, future, past, unknown) 4389 | schema: 4390 | type: array 4391 | items: 4392 | $ref: '#/components/schemas/AlertUrgency' 4393 | style: form 4394 | explode: false 4395 | AlertZone: 4396 | name: zone 4397 | in: query 4398 | description: > 4399 | Zone ID (forecast or county) 4400 | 4401 | This parameter is incompatible with the following parameters: area, point, region, region_type 4402 | schema: 4403 | type: array 4404 | items: 4405 | $ref: '#/components/schemas/NWSZoneID' 4406 | style: form 4407 | explode: false 4408 | x-symfony: 4409 | exclusive-group: geospatial 4410 | Date: 4411 | name: date 4412 | in: path 4413 | required: true 4414 | description: Date (YYYY-MM-DD format) 4415 | schema: 4416 | $ref: '#/components/schemas/Date' 4417 | Debug: 4418 | name: debug 4419 | in: query 4420 | description: Debug mode (for internal use only) 4421 | schema: 4422 | type: boolean 4423 | x-symfony: 4424 | private: true 4425 | FIRIdentifier: 4426 | name: fir 4427 | in: path 4428 | required: true 4429 | description: FIR identifier 4430 | schema: 4431 | $ref: '#/components/schemas/FIRIdentifier' 4432 | GridpointForecastFeatureFlags: 4433 | name: Feature-Flags 4434 | in: header 4435 | required: false 4436 | description: > 4437 | Enable future and experimental features (see documentation for more info): 4438 | 4439 | * forecast_temperature_qv: Represent temperature as QuantitativeValue 4440 | 4441 | * forecast_wind_speed_qv: Represent wind speed as QuantitativeValue 4442 | schema: 4443 | type: array 4444 | items: 4445 | type: string 4446 | enum: 4447 | - forecast_temperature_qv 4448 | - forecast_wind_speed_qv 4449 | style: simple 4450 | explode: false 4451 | GridpointForecastUnits: 4452 | name: units 4453 | in: query 4454 | description: Use US customary or SI (metric) units in textual output 4455 | schema: 4456 | $ref: '#/components/schemas/GridpointForecastUnits' 4457 | GridpointWFO: 4458 | name: wfo 4459 | in: path 4460 | required: true 4461 | description: Forecast office ID 4462 | schema: 4463 | $ref: '#/components/schemas/NWSForecastOfficeId' 4464 | GridpointX: 4465 | name: x 4466 | in: path 4467 | required: true 4468 | description: Forecast grid X coordinate 4469 | schema: 4470 | type: integer 4471 | minimum: 0 4472 | GridpointY: 4473 | name: 'y' 4474 | in: path 4475 | required: true 4476 | description: Forecast grid Y coordinate 4477 | schema: 4478 | type: integer 4479 | minimum: 0 4480 | Limit: 4481 | name: limit 4482 | in: query 4483 | description: Limit 4484 | schema: 4485 | type: integer 4486 | minimum: 1 4487 | maximum: 500 4488 | NWSCenterWeatherServiceUnitId: 4489 | name: cwsuId 4490 | in: path 4491 | required: true 4492 | description: NWS CWSU ID 4493 | schema: 4494 | $ref: '#/components/schemas/NWSCenterWeatherServiceUnitId' 4495 | NWSOfficeId: 4496 | name: officeId 4497 | in: path 4498 | required: true 4499 | description: NWS office ID 4500 | schema: 4501 | $ref: '#/components/schemas/NWSOfficeId' 4502 | NWSZoneId: 4503 | name: zoneId 4504 | in: path 4505 | required: true 4506 | description: NWS public zone/county identifier 4507 | schema: 4508 | $ref: '#/components/schemas/NWSZoneID' 4509 | ObservationStationId: 4510 | name: stationId 4511 | in: path 4512 | required: true 4513 | description: Observation station ID 4514 | schema: 4515 | type: string 4516 | PaginationCursor: 4517 | name: cursor 4518 | in: query 4519 | description: Pagination cursor 4520 | schema: 4521 | type: string 4522 | PathPoint: 4523 | name: point 4524 | in: path 4525 | required: true 4526 | description: Point (latitude, longitude) 4527 | schema: 4528 | $ref: '#/components/schemas/PointString' 4529 | QueryDate: 4530 | name: date 4531 | in: query 4532 | description: Date (YYYY-MM-DD format) 4533 | schema: 4534 | $ref: '#/components/schemas/Date' 4535 | QueryStartTime: 4536 | name: start 4537 | in: query 4538 | description: Start time 4539 | schema: 4540 | type: string 4541 | format: date-time 4542 | QueryEndTime: 4543 | name: end 4544 | in: query 4545 | description: End time 4546 | schema: 4547 | type: string 4548 | format: date-time 4549 | SigmetSequenceNumber: 4550 | name: sequence 4551 | in: path 4552 | required: true 4553 | description: SIGMET sequence number 4554 | schema: 4555 | $ref: '#/components/schemas/SigmetSequenceNumber' 4556 | Time: 4557 | name: time 4558 | in: path 4559 | required: true 4560 | description: Time (HHMM format). This time is always specified in UTC (Zulu) time. 4561 | schema: 4562 | $ref: '#/components/schemas/Time' 4563 | responses: 4564 | AlertCollection: 4565 | description: A collection of alerts. 4566 | headers: 4567 | X-Correlation-Id: 4568 | $ref: '#/components/headers/CorrelationId' 4569 | X-Request-Id: 4570 | $ref: '#/components/headers/RequestId' 4571 | X-Server-Id: 4572 | $ref: '#/components/headers/ServerId' 4573 | content: 4574 | application/geo+json: 4575 | schema: 4576 | $ref: '#/components/schemas/AlertCollectionGeoJson' 4577 | application/ld+json: 4578 | schema: 4579 | $ref: '#/components/schemas/AlertCollectionJsonLd' 4580 | application/atom+xml: 4581 | schema: 4582 | $ref: '#/components/schemas/AlertAtomFeed' 4583 | Error: 4584 | description: An error response. 4585 | headers: 4586 | X-Correlation-Id: 4587 | $ref: '#/components/headers/CorrelationId' 4588 | X-Request-Id: 4589 | $ref: '#/components/headers/RequestId' 4590 | X-Server-Id: 4591 | $ref: '#/components/headers/ServerId' 4592 | content: 4593 | application/problem+json: 4594 | schema: 4595 | $ref: '#/components/schemas/ProblemDetail' 4596 | GridpointForecast: 4597 | description: A forecast for a gridpoint. 4598 | headers: 4599 | X-Correlation-Id: 4600 | $ref: '#/components/headers/CorrelationId' 4601 | X-Request-Id: 4602 | $ref: '#/components/headers/RequestId' 4603 | X-Server-Id: 4604 | $ref: '#/components/headers/ServerId' 4605 | content: 4606 | application/geo+json: 4607 | schema: 4608 | $ref: '#/components/schemas/GridpointForecastGeoJson' 4609 | application/ld+json: 4610 | schema: 4611 | $ref: '#/components/schemas/GridpointForecastJsonLd' 4612 | application/vnd.noaa.dwml+xml: 4613 | schema: {} 4614 | Observation: 4615 | description: An observation record. 4616 | headers: 4617 | X-Correlation-Id: 4618 | $ref: '#/components/headers/CorrelationId' 4619 | X-Request-Id: 4620 | $ref: '#/components/headers/RequestId' 4621 | X-Server-Id: 4622 | $ref: '#/components/headers/ServerId' 4623 | content: 4624 | application/geo+json: 4625 | schema: 4626 | $ref: '#/components/schemas/ObservationGeoJson' 4627 | application/ld+json: 4628 | schema: 4629 | $ref: '#/components/schemas/ObservationJsonLd' 4630 | application/vnd.noaa.uswx+xml: 4631 | schema: {} 4632 | application/vnd.noaa.obs+xml: 4633 | schema: {} 4634 | ObservationCollection: 4635 | description: A collection of observation records. 4636 | headers: 4637 | X-Correlation-Id: 4638 | $ref: '#/components/headers/CorrelationId' 4639 | X-Request-Id: 4640 | $ref: '#/components/headers/RequestId' 4641 | X-Server-Id: 4642 | $ref: '#/components/headers/ServerId' 4643 | content: 4644 | application/geo+json: 4645 | schema: 4646 | $ref: '#/components/schemas/ObservationCollectionGeoJson' 4647 | application/ld+json: 4648 | schema: 4649 | $ref: '#/components/schemas/ObservationCollectionJsonLd' 4650 | ObservationStationCollection: 4651 | description: A collection of observation stations. 4652 | headers: 4653 | X-Correlation-Id: 4654 | $ref: '#/components/headers/CorrelationId' 4655 | X-Request-Id: 4656 | $ref: '#/components/headers/RequestId' 4657 | X-Server-Id: 4658 | $ref: '#/components/headers/ServerId' 4659 | content: 4660 | application/geo+json: 4661 | schema: 4662 | $ref: '#/components/schemas/ObservationStationCollectionGeoJson' 4663 | application/ld+json: 4664 | schema: 4665 | $ref: '#/components/schemas/ObservationStationCollectionJsonLd' 4666 | headers: 4667 | CorrelationId: 4668 | description: > 4669 | A unique identifier for the request, used for NWS debugging purposes. Please include this 4670 | identifier with any correspondence to help us investigate your issue. 4671 | schema: 4672 | type: string 4673 | RequestId: 4674 | description: > 4675 | A unique identifier for the request, used for NWS debugging purposes. Please include this 4676 | identifier with any correspondence to help us investigate your issue. 4677 | schema: 4678 | type: string 4679 | ServerId: 4680 | description: > 4681 | The identifier of the server that generated the response, used for NWS debugging purposes. Please 4682 | include this identifier with any correspondence to help us investigate your issue. 4683 | schema: 4684 | type: string 4685 | securitySchemes: 4686 | userAgent: 4687 | type: apiKey 4688 | name: User-Agent 4689 | in: header 4690 | description: > 4691 | We require that all consumers of the API include a User-Agent header in requests. This is due to a high 4692 | number of scripts exhibiting abusive behavior (intentional or unintentional). We recommend setting the 4693 | value to something that identifies your application and includes a contact email. This will help us 4694 | contact you if we notice unusual behavior and also aid in troubleshooting issues. 4695 | 4696 | The API remains open and free to use and there are no limits imposed based on the User-Agent string. 4697 | 4698 | This mechanism will be replaced with a more typical API key system at a later date. 4699 | --------------------------------------------------------------------------------