---
title: "List detected storms (one row per storm/swath) with optional time, area, and type filters"
method: GET
path: "/v1/storms"
---

# List detected storms (one row per storm/swath) with optional time, area, and type filters

`GET /v1/storms`

## Request

- Base URL: `https://swathapi.com`
- URL: `https://swathapi.com/v1/storms`
- Auth: HTTP bearer

Returns radar-detected storms, newest first. Each row pairs the storm with its damage swath summary. Costs 1 credit.

## Query parameters

- `since` string
- `bbox` string
- `type` 'hail' | 'wind'
- `limit` integer

## Response `200`

Matching storms

- object
  - `data` StormSwath[], required
    - `storm_id` string: Storm id (sw_...)
    - `type` 'hail' | 'wind'
    - `started_at` string, date-time
    - `last_seen_at` string, date-time
    - `verified_at` string, date-time, nullable: When radar verification confirmed the swath
    - `status` string: e.g. active
    - `swath_id` string: Swath id (swath_...)
    - `mesh_max_in` number, nullable: Max radar-estimated hail size in the swath, inches
    - `mesh_mean_in` number, nullable: Mean radar-estimated hail size, inches
    - `wind_max_mph` number, nullable: Max wind speed, mph (wind storms)
    - `area_km2` number, nullable: Swath footprint area, square km

## Other responses

- `400`: Invalid since/type/bbox parameter
- `401`: Missing, invalid, or revoked API key. Fix: pass Authorization: Bearer sk_... (get a key at /v1/signup).
- `402`: Monthly credit limit reached (code credits_exhausted). Fix: upgrade via POST /v1/billing/checkout or wait for the monthly reset.
- `429`: Per-minute rate limit for the plan exceeded (code rate_limited). Retry after a short wait.

---

[API](https://skmtc.dev/swathapi/apis/swath-api.md) · [All operations](https://skmtc.dev/swathapi/apis/swath-api/llms.txt) · [OpenAPI document](https://skmtc.dev/swathapi/apis/swath-api/revisions/7dbea40372ef?raw)
