Endpoint: stormreports

The storm reports data set provides access to all local storm reports (LSR) as transmitted by the National Weather Service (NWS). These reports are received from storm spotters, such as amateur radio operators, storm chasers, law enforcement, emergency management, or citizens about severe weather conditions in their area.

Use our wizard to try out this endpoint

Supported Actions

The following actions are supported with the stormreports endpoint:

:id Requesting data by using the :id action is used for returning data for a particular item that has an ID associated with it. This is the primary method for requesting general weather information for a single location (observations, forecasts, advisories, etc.) as the location's name or a zip code serves as the id. Other endpoints may expect a certain value for the ID, such as storm cells whose ID value is a combination of the radar site identifier and unique identifier assigned to every storm cell. Refer to an endpoint's detailed documentation for specific information regarding how to use the :id action.
closest The closest action will query the API for data that is closest to the requested place and return the results, if any, in order from closest to farthest. If no limit is provided in the request, then only the closest single result will be returned.

If your request does not return results, you may try setting or increasing the radius being used.
within The within action allows for returning data within a variety of different geometrical regions. Currently supported geometries include a circle (requires a center point and radius), rectangle (requires two coordinate points defining the top-left and bottom-right corners) and polygon (requires at least three coordinate points). Unlike the closest action, the results will not be returned in any particular order based on distance.
search The search action is used as a more general query method and expects the query to be defined with the custom query for the request. Unlike the closest action, results will not be returned in any particular order.

Supported Parameters

The following parameters are optional unless otherwise noted:

p p=:place Defines the location to query data for. Refer to the list of supported place value formats.
limit limit=:total The total number of results to return as an integer. Each endpoint may have a set maximum for this value depending on usage.

The default limit is 1 if not specified. The maximum limit for this endpoint is 250.
radius radius=:distance:unit When requesting the closest results within a circle, the radius determines how far from the specified location to search. A valid unit value must be included in your radius value, e.g., "5mi", "10km", "25miles". If no unit is provided, your value is assumed to be in meters by default.

Most endpoints utilize a default radius of 50 miles, though some endpoints, such as lightning, may have tighter restrictions specified.
filter filter=:string Predefined filters for limiting the results. The filter value can be a single, comma-delimited or a semicolon delimited string of filter names.
query query=:string Used to filter results based on certain fields in the data set. See Advanced Queries for more details.
sort sort=:string Used to sort results based on certain fields in the data set. See Sorting for more details.
skip skip=:number Used to skip over a specific number of results in the data set.
from from=:string Returns the results starting from the value specified. For best practices we recommend using the to parameter as well to define a specific time frame.

Supports a UNIX timestamp or a specific date string. Alternatively, common date formats supported by the PHP strtotime() function will be accepted; however, commas are not accepted.

Examples:
from=tomorrow
from=friday
from=1302883980
from=MM/DD/YYYY
from=YYYY/MM/DD
from=+2hours
from=2017-02-27 5:00 PM

to to=:string Returns the results between now and the value specified. For best practices we recommend using the from parameter as well to define a specific time frame. When used in conjunction with the from parameter, the value of to will be relative to the value of from, not relative to the current time.

Supports a UNIX timestamp or a specific date string. Alternatively, common date formats supported by the PHP strtotime() function will be accepted; however, commas are not accepted.

Examples:
to=+6hours
to=+5days
to=1302883980
to=MM/DD/YYYY
to=YYYY/MM/DD
to=2017-02-27 5:00 PM

fields fields=:string Provides a comma separated list of values for the API to return. This parameter is often used to limit the amount of data returned. See Reducing Output.

Supported Filters

The following filters can be passed to the filter parameter to reduce the results that are returned:

avalanche Returns avalanche-related storm reports.
blizzard Returns blizzard-related storm reports.
dust Return dust related storm reports.
flood Returns flood-related storm reports.
fog Returns fog-related storm reports.
ice Returns ice-related storm reports.
hail Returns hail-related storm reports.
lightning Returns lightning-related storm reports.
marine Returns marine related storm reports.
rain Returns rain-related storm reports.
snow Returns snow-related storm reports.
tides Returns tide-related storm reports.
tornado Returns tornado and waterspout-related storm reports.
tropical Returns tropical storm / hurricane related storm reports
wind Returns wind-related storm reports.

Supported Query Properties

Use the following supported property keys when creating custom queries for your requests:

code Query storm reports based on the coded type.

Code Types:

0 = hurricane
1 = storm surge
2 = dust storm
3 = sprinkles
4 = high astronomical winds
5 = freezing rain
6 = freeze (temperature)
7 = extreme wind chill
8 = wildfire
9 = seiche
A = high sustained winds
B = downburst
C = funnel cloud
D = thunderstorm wind damage
E = flood
F = flash flood
G = thunderstorm wind gust
H = hail
I = excessive heat
J = dense fog
L = lightning
M = marine thunderstorm wind
N = non-thunderstorm wind gust
None = storm code was not reported
O = non-thunderstorm wind damage
P = rip currents
Q = tropical storm
R = heavy rain
S = snow / heavy snow
T = tornado
U = wildfire
V = avalanche
W = water spout
X = wall cloud
Z = blizzard
a = blowing snow
s = sleet
t = sneaker wave
u = lakeshore flood
v = coastal flood
x = debris flow
z = volcanic ashfall

Example:
/stormreports/search?query=code:S&limit=10 (returns 10 storm reports that are of the code "S", which is snow)
type Query storm reports based on the named type.

Example:
/stormreports/search?query=type:snow&limit=10 (returns 10 storm reports that are of the type snow)
state Query storm reports within a state. The state should be lower case and a two letter abbreviation.

Example:
/stormreports/search?query=state:mn&limit=10 (returns 10 storm reports that the state matches Minnesota, "mn")
name Query storm reports based on the closest location.
detail Query storm reports based on the reported magnitude. i.e. rain/snow amount, wind speed

Sortable Fields

Default Sort: dt (desc)

You can use the following fields to sort data. Review the sorting docs page for more information on the sort functionality.

code Sort storm reports based on coded type. See Supported Query Properties above for a detailed list.
type Sort storm reports based on the named type.
state Sort storm reports based on the state's two-letter ISO abbreviation.
name Sort storm reports based on the closest city name.
detail Sort storms based on the storm report details. Usually used in combination with a filter.

Example:
/stormreports/minneapolis,mn?filter=snow&sort=detail:-1,dt:-1&limit=10 (returns up to 10 nearby snow reports for today, sorted based on reported snow amount descending)
dt Sort storm reports based on the date and time of the report.

Examples

The /[:endpoint]/[:action]? portion within the query template below can be exchanged with any of the examples. Also, please note you will need to input your client credentials in the [ID] and [SECRET] fields which can be found under the Apps section of the members area.

https://api.aerisapi.com/[:endpoint]/[:action]?client_id=[ID]&client_secret=[SECRET]

Returns the latest 10 storm reports near Minneapolis that were reported within the last 24 hours.
/stormreports/minneapolis,mn?from=-24hours&limit=10&

Returns the storm report information for the storm report with the ID '51dc1b0e3a751ea17000017c'.
/stormreports/51dc1b0e3a751ea17000017c?

Returns the latest 100 wind related storm reports near Minneapolis that were reported within the last year.
/stormreports/minneapolis,mn?from=-1year&filter=wind&limit=100&

Returns up to the latest 500 storm reports within a bounding box that occurred within the past 24 hours. Perfect usage for fetching storm reports to display on an interactive map.
/stormreports/within?p=59.3534,-122.9738,25.7960,-63.5597&limit=500&from=-24hours&to=now&

Response

The following is an example of what each object in the response will consist of. Depending on your requested action, the response may contain multiple instances of this object within an array.

Default
GeoJSON

{
    "success": true,
    "error": null,
    "response": [{
        "id": "4e9d9409e9191f464fc64c0f",
        "loc": {
            "long": -94.51,
            "lat": 37.08
        },
        "report": {
            "code": "T",
            "comments": "Numerous reports of tornado on the ground west of jopin and power flashes",
            "detail": {
                "text": 0
            },
            "name": "Joplin",
            "reporter": "public",
            "type": "tornado",
            "timestamp": 1306104060,
            "cat": "tornado",
            "dateTimeISO": "2011-05-22T17:41:00-05:00",
            "datetime": "2011-05-22T17:41:00-05:00",
            "wfo": "SGF"
        },
        "place": {
            "name": "joplin",
            "state": "mo",
            "county": "jasper",
            "country": "us"
        },
        "profile": {
            "tz": "America\/Chicago"
        },
        "relativeTo": {
            "lat": 37.08423,
            "long": -94.51328,
            "bearing": 148,
            "bearingENG": "SSE",
            "distanceKM": 0.553,
            "distanceMI": 0.344
        }
    }]
}
								

{
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "id": "4e9d9409e9191f464fc64c0f",
        "geometry": {
            "type": "Point",
            "coordinates": [-94.51, 37.08]
        },
        "properties": {
            "id": "4e9d9409e9191f464fc64c0f",
            "loc": {
                "long": -94.51,
                "lat": 37.08
            },
            "report": {
                "code": "T",
                "comments": "Numerous reports of tornado on the ground west of jopin and power flashes",
                "detail": {
                    "text": 0
                },
                "name": "Joplin",
                "reporter": "public",
                "type": "tornado",
                "timestamp": 1306104060,
                "cat": "tornado",
                "dateTimeISO": "2011-05-22T17:41:00-05:00",
                "datetime": "2011-05-22T17:41:00-05:00",
                "wfo": "SGF"
            },
            "place": {
                "name": "joplin",
                "state": "mo",
                "county": "jasper",
                "country": "us"
            },
            "profile": {
                "tz": "America\/Chicago"
            },
            "relativeTo": {
                "lat": 37.08423,
                "long": -94.51328,
                "bearing": 148,
                "bearingENG": "SSE",
                "distanceKM": 0.553,
                "distanceMI": 0.344
            }
        }
    }]
}
								

Response Properties

The following properties will be provided in every response object:

id (string) Unique ID of the storm report.
report.code (string) The report code as assigned by the NWS.
report.type (string) The type of report.
report.name (string) The brief description of the report, usually contains the location or relative distance from a city.
report.detail (string) An object containing specific information about the report, such as totals, measurements, etc.
report.cat (string) The category of the storm report:
- avalanche
- blizzard
- dust
- fire
- flood
- fog
- hail
- ice
- lightning
- marine
- rain
- snow
- tides
- tornado
- tropical
- wind
- other

report.detail.text (string) The measurement provided in the report, such as precipitation total, wind speed or hail size.
report.detail.rainIN (number) The total observed rainfall in inches. Only included for rain/flood related events.
report.detail.rainMM (number) The total observed rainfall in millimeters Only included for rain/flood related events.
report.detail.snowIN (number) The total observed snowfall in inches. Only included for snow related events.
report.detail.snowCM (number) The total observed snowfall in centimeters. Only included for snow related events.
report.detail.sleetIN (number) The total observed sleet accumulation in inches. Only included for sleet/ice related events.
report.detail.sleetCM (number) The total observed sleet accumulation in centimeters. Only included for sleet/ice related events.
report.detail.windSpeedKTS (number) The observed wind speed in knots. Only included for wind related events.
report.detail.windSpeedKPH (number) The observed wind speed in kilometers per hour. Only included for wind related events.
report.detail.windSpeedMPH (number) The observed wind speed in miles per hour. Only included for wind related events.
report.detail.hailIN (number) The total observed hail diameter in inches. Only included for hail related events.
report.detail.hailMM (number) The total observed hail diameter in millimeters. Only included for hail related events.
report.reporter (string) The general organization who made the report.
report.comments (string) Additional details and comments describing the event.
report.timestamp (number) UNIX timestamp when the event took place.
report.dateTimeISO (string) ISO 8601 date of the date/time of the event.
report.wfo (string) Deprecated : The weather forecast office reporting the event. Empty String if not available
loc.long (number) The longitude coordinate of the record.
loc.lat (number) The latitude coordinate of the record.
place.name (string) The place or nearest place to the record.
place.state (string) The state abbreviation in which the record is located. This may be null depending on the country.
place.country (string) The country abbreviation in which the record is located.
profile.tz (string) The timezone name association with the record's location.
relativeTo.lat (number) Latitude coordinate of the location used for the request. This may be different than the record's loc.lat value if there was no record exactly at the request location.
relativeTo.long (number) Longitude coordinate of the location used for the request. This may be different than the record's loc.long value if there was no record exactly at the request location.
relativeTo.bearing (number) Bearing in degrees of the record's location relative to the location used for the request.
relativeTo.bearingEng (string) Cardinal direction of the record relative to the location used for the request.
relativeTo.distanceKM (number) Distance, in kilometers, from the requested location to the record's actual location.
relativeTo.distanceMI (number) Distance, in miles, from the requested location to the record's actual location.

Last modified: April 18, 2023