# Past Storm Leads by Address, Last 365 Days (`truefixr_atlasunited/past-storm-leads-by-address`) Actor

Send counties and a peril; get street addresses where storms were reported and radar-detected, with date, type and severity. Address-level matching, severity filters in real units, reproducible via reference_id. Planned $0.05 per address. Not a damage assessment.

- **URL**: https://apify.com/truefixr_atlasunited/past-storm-leads-by-address.md
- **Developed by:** [Valentin Yslas](https://apify.com/truefixr_atlasunited) (community)
- **Categories:** Developer tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 storm lead addresses

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

## Past Storm Leads by Address, Last 365 Days

**What it is:** send US counties (as `County, ST`) and optionally one storm type, and get the street addresses where storms were reported and radar-detected over the last 7, 30, 90 or 365 days, each with the event date, storm type and severity. Matching is done address by address, severity filters work in the real unit of each storm type (inches for hail and rain, mph for wind, percent where a probability is reported), and every pull carries a `reference_id` so it can be reproduced and cited. Planned cost is $0.05 per address (pricing is not enabled yet). This is a record of reported and radar-detected events, not a damage assessment.

### Input

| Field | Meaning |
|---|---|
| `counties` | List of `County, ST` (both required) |
| `days` | 7, 30, 90 or 365 |
| `peril` | Optional: HAIL, THUNDERSTORM_WIND, TORNADO, FLASH_FLOOD, HEAVY_RAIN |
| `minSeverity`, `maxSeverity`, `severityUnit` | Optional severity range. Some storm types report severity in more than one unit, so pick `in`, `mph` or `pct` to avoid blending. On very large counties the service cannot filter severity server-side, and the Actor filters the delivered rows itself |
| `maxAddresses` | Default 100, up to 5000 |
| `maxChargeUsd` | Spend ceiling; a paid pull above it is refused |

A free preview per county (approximate address count, repeat-hit addresses, storm types present, severity ranges, estimated cost) is written to the run log before any paid pull.

### Output

One flat row per address: `full_address`, `city`, `state`, `zip`, `county`, `lat`, `lon`, `storm_type`, `event_time` (UTC), `severity`, `severity_unit`, `distance_mi` (distance from the address to the event), `storm_hits` (repeat-hit count at the address), `window`, `reference_id`.

### Interpretation

A row means a storm event was reported and radar-detected at or near the address. It says nothing about what the storm did to any structure. Severity describes the intensity of the event, not damage. Counts in the preview are approximate; the delivered count is the billed count.

# Actor input Schema

## `counties` (type: `array`):

Counties, each as 'County, ST' (for example 'Dallas, TX'). County and state are both required.

## `days` (type: `string`):

How far back to look. Each record reports the window used.

## `peril` (type: `string`):

Restrict to one storm type. Leave empty for all types. The free preview in the run log lists the types present in each county.

## `minSeverity` (type: `number`):

Keep addresses at or above this severity, in the unit given by Severity unit (for hail, inches). Large counties may not support severity filters server-side; the Actor then filters the delivered rows itself.

## `maxSeverity` (type: `number`):

Keep addresses at or below this severity, in the same unit.

## `severityUnit` (type: `string`):

Some storm types report severity in more than one real unit (for example inches, mph or percent). Pick one when filtering on severity so units are never blended.

## `maxAddresses` (type: `integer`):

Upper bound on address records delivered across all counties in this run.

## `maxChargeUsd` (type: `number`):

The planned rate is $0.05 per address. The Actor refuses to pull more addresses than this budget allows and logs the estimate first.

## Actor input object example

```json
{
  "counties": [
    "Dallas, TX"
  ],
  "days": "30",
  "maxAddresses": 100
}
```

# Actor output Schema

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

No description

## `overview` (type: `string`):

No description

# 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 = {
    "counties": [
        "Dallas, TX"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("truefixr_atlasunited/past-storm-leads-by-address").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 = { "counties": ["Dallas, TX"] }

# Run the Actor and wait for it to finish
run = client.actor("truefixr_atlasunited/past-storm-leads-by-address").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 '{
  "counties": [
    "Dallas, TX"
  ]
}' |
apify call truefixr_atlasunited/past-storm-leads-by-address --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,truefixr_atlasunited/past-storm-leads-by-address"
        }
    }
}
```

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/O3mUVu45QxSZQLaK1/builds/1eYMBbGydOx3i358W/openapi.json
