# US Hail, Wind & Tornado Reports (NOAA SPC, Radius & Hail Size) (`bigsky-data-tools/us-hail-wind-tornado-reports`) Actor

NOAA SPC hail, wind and tornado reports for any date range since the mid-2000s: radius search around any address, hail size in inches, minimum gust filter, several states at once, correct UTC times plus the convective day, and a link to the source file.

- **URL**: https://apify.com/bigsky-data-tools/us-hail-wind-tornado-reports.md
- **Developed by:** [BigSky Data Tools](https://apify.com/bigsky-data-tools) (community)
- **Categories:** Real estate, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## US Hail, Wind & Tornado Reports: Storm data from NOAA SPC (Date Range, Radius Search, Hail Size)

Get **US hail, damaging-wind and tornado reports** from **NOAA Storm Prediction Center (SPC)** daily storm reports in one clean table: hail size in inches, wind gust in mph, tornado rating when known, place, county, state, coordinates, NWS office and the spotter or damage comments. **No API key, no login.** Published by BigSky Data Tools.

> **NOT FOR SAFETY-CRITICAL USE: data may be delayed or incomplete; not for life-safety, navigation or emergency decisions; use official NOAA/NWS Storm Prediction Center (spc.noaa.gov) and local NWS sources.**

### Why use this hail and storm report scraper?

- 📍 **Radius search around any point**: "all hail within 10 miles of this roof, store, farm or policy address". Each row has `distanceMiles`.
- 🧊 **Hail-size filter**: keep only 1.00" (quarter), 1.75" (golf ball) or larger hail. Sizes are converted to inches.
- 📅 **Any date range, back to the mid-2000s**: scan the last 7 days or several years in one run, newest first.
- 🇺🇸 **Several states at once**, plus filters for report type and minimum wind gust.
- 🕒 **Correct UTC timestamps**: SPC "convective days" run 12Z to 12Z. The Actor converts each report to a real UTC date and time and also keeps the convective day.
- 🔗 Every row links to the SPC source file.

### How it compares

| | This tool | Typical alternatives |
|---|---|---|
| Radius search around any address | **Yes** | Yes (some tools) |
| Hail size in inches and size filter | **Yes** | Yes (some tools) |
| UTC time and convective day both kept | **Yes** | UTC time |
| Source file link on every row | **Yes** | Varies |

### Who uses it

Property and auto insurers, claims and catastrophe teams, roofing, siding and auto-hail repair contractors, solar and agriculture operators, utilities, fleet managers, meteorologists, researchers and journalists.

### Input example

```json
{ "startDate": "2025-05-15", "endDate": "2025-05-20", "states": ["TX", "OK", "KS"],
  "reportTypes": ["hail", "wind", "tornado"], "minHailInches": "1.75" }
```

Radius search: `{ "daysBack": 90, "latitude": "32.7767", "longitude": "-96.7970", "radiusMiles": 25, "reportTypes": ["hail"] }`

### Output example

```json
{ "reportType": "hail", "reportedAt": "2025-05-19T22:05:00+00:00", "convectiveDay": "2025-05-19",
  "hailSizeInches": 1.75, "windGustMph": null, "tornadoRating": null, "location": "3 NW Eldon",
  "county": "Cherokee", "state": "OK", "latitude": 35.96, "longitude": -94.87, "distanceMiles": null,
  "comments": "... (TSA)", "nwsOffice": "TSA",
  "sourceUrl": "https://www.spc.noaa.gov/climo/reports/250519_rpts_filtered.csv",
  "source": "NOAA Storm Prediction Center (public domain)" }
```

Export to JSON, CSV, Excel or XML, or call it from the Apify API, Make, Zapier or n8n. Schedule it daily to get a hail alert feed for your territory.

### Pricing

**$7 per 1,000 results** ($0.007 per result) plus a $0.01 start fee per run.

You pay per report saved. A week of hail in one state usually costs a few cents. Days with no matching reports cost nothing in results.

### Tips

- `filtered: true` (default) uses SPC's de-duplicated files. Turn it off to get every raw report.
- Wind reports often have no measured speed (`windGustMph: null`). Setting a minimum gust drops those.
- Today's reports are preliminary. Re-run later for the final list.

### FAQ

**Where does the data come from?** From the public daily storm report files published by the NOAA Storm Prediction Center. NOAA works are US government works and generally in the public domain. You are responsible for how you use the data.
**Are these verified damage events?** No. They are preliminary local storm reports from spotters, the public, media and NWS offices. Hail size and location can be estimates. For final, quality-controlled events use NOAA's Storm Events Database, which is published months later.
**Is this tool run by NOAA?** No. BigSky Data Tools is independent and not affiliated with or endorsed by NOAA, the National Weather Service or the Storm Prediction Center. Do not use it for life-safety decisions.

# Actor input Schema

## `daysBack` (type: `integer`):

How many days to scan, ending at End date (or today). Ignored if Start date is set.

## `startDate` (type: `string`):

YYYY-MM-DD. Optional. Reports exist from about 2004 onward.

## `endDate` (type: `string`):

YYYY-MM-DD. Optional, defaults to today (UTC).

## `reportTypes` (type: `array`):

Which kinds of reports to return.

## `states` (type: `array`):

Two-letter US state codes. Leave empty for all states.

## `latitude` (type: `string`):

Optional. With longitude and radius, keeps only reports near this point (e.g. 32.7767 for Dallas).

## `longitude` (type: `string`):

Optional, e.g. -96.7970.

## `radiusMiles` (type: `integer`):

Search radius around the center point.

## `minHailInches` (type: `number`):

Skip hail smaller than this, e.g. 1.0 (quarter) or 1.75 (golf ball).

## `minWindMph` (type: `integer`):

Skip wind reports with a measured or estimated gust below this. Reports with unknown speed are dropped when this is set.

## `filtered` (type: `boolean`):

SPC filtered files remove near-duplicate reports. Turn off for the raw list.

## `maxResults` (type: `integer`):

Maximum reports to save (each saved report is one billable result).

## Actor input object example

```json
{
  "daysBack": 7,
  "reportTypes": [
    "hail",
    "wind",
    "tornado"
  ],
  "states": [
    "TX",
    "OK"
  ],
  "radiusMiles": 25,
  "minHailInches": 0,
  "minWindMph": 0,
  "filtered": true,
  "maxResults": 5000
}
```

# Actor output Schema

## `dataset` (type: `string`):

Default dataset containing all output records

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "states": [
        "TX",
        "OK"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("bigsky-data-tools/us-hail-wind-tornado-reports").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "states": [
        "TX",
        "OK",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("bigsky-data-tools/us-hail-wind-tornado-reports").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "states": [
    "TX",
    "OK"
  ]
}' |
apify call bigsky-data-tools/us-hail-wind-tornado-reports --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,bigsky-data-tools/us-hail-wind-tornado-reports"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/HWdHLPZlpqqhApGhq/builds/dzOfV8qjGnbyXSGGP/openapi.json
