# Check severe weather alerts for a point or area with MyRadar's API

MyRadar's severe weather API returns three kinds of answer: the watches, warnings and advisories that cover a point, the polygons active across a bounding box, and the hail and high-wind events recorded at a location over the last several years. Each call is one request at $0.02 per 100 requests, drawn from a plan you buy once with an agent credential. Send `GET https://agents.myradar.dev/zcj/3q9qba1vb0gc/v1/severe/wwa/{lat}/{lon}` with `Authorization: Bearer <token>`.

## At a glance

- **Endpoints:** `GET /v1/severe/wwa/{lat}/{lon}` and `GET /v1/severe/warnings/{lat}/{lon}` for a point. `GET /v1/severe/wwa/{ul_lat}/{ul_lon}/{lr_lat}/{lr_lon}` and `GET /v1/severe/warnings/{ul_lat}/{ul_lon}/{lr_lat}/{lr_lon}` for a box. `GET /v1/severe/history?latlon=lat,lon` for history. All are on `https://agents.myradar.dev/zcj/3q9qba1vb0gc`.
- **Body:** none. Every input is in the path or the query string.
- **Price:** one request per call, at $0.02 per 100 requests. On the monthly plans the rate is $0.199 per thousand requests, $0.133 per thousand requests or $0.11 per thousand requests.
- **Payment:** calls draw on a plan (Credits, Starter, Pro or Platinum). Only the plan purchase answers with a 402, and you can pay it over x402, MPP or by card.
- **Auth:** `Authorization: Bearer <token>`, the agent credential the storefront issues. No upstream API key.
- **Response:** the point endpoints return JSON with `count`, `total`, `limit`, `offset` and `results`.
- **Paging:** the box endpoints take `limit` and `offset`, plus an optional `begin_time` and `end_time`.
- **Full purchase flow:** [the buyer skill](https://agents.myradar.dev/zcj/3q9qba1vb0gc/SKILL.md)

## Pick the endpoint by the question

| Question | Endpoint |
| --- | --- |
| Does any watch, warning or advisory cover this address or stop? | `GET /v1/severe/wwa/{lat}/{lon}` |
| Does a severe weather warning cover this point? | `GET /v1/severe/warnings/{lat}/{lon}` |
| What watches, warnings and advisories are active across a region? | `GET /v1/severe/wwa/{ul_lat}/{ul_lon}/{lr_lat}/{lr_lon}` |
| What warnings are in a region? | `GET /v1/severe/warnings/{ul_lat}/{ul_lon}/{lr_lat}/{lr_lon}` |
| What hail and high wind has hit this property? | `GET /v1/severe/history?latlon=lat,lon` |

A point call returns the polygons that contain the point. A box call returns the polygons inside the box, which runs from the upper left corner (`ul_lat`, `ul_lon`) to the lower right corner (`lr_lat`, `lr_lon`).

## Check watches, warnings and advisories

1. Buy a plan once with an agent credential, the identity the storefront issues. Later calls draw on the plan. [The buyer skill](https://agents.myradar.dev/zcj/3q9qba1vb0gc/SKILL.md) has the steps.

2. Check a point:

   ```bash
   curl -s "https://agents.myradar.dev/zcj/3q9qba1vb0gc/v1/severe/wwa/35.4676/-97.5164" \
     -H "Authorization: Bearer $ACCESS_TOKEN"
   ```

   The response is a JSON object with numeric `count`, `total`, `limit` and `offset` fields and a `results` list:

   ```json
   {"count": <number>, "total": <number>, "limit": <number>, "offset": <number>, "results": <list>}
   ```

   This call drew $0.0002 from Credits. Every plan-funded response carries a `zc-billing` header with `fundingSource`, `chargedUsd` and `remainingCreditUsd`.

3. Check a region. Send the box corners, plus `limit` and `offset` for the page:

   ```bash
   curl -s "https://agents.myradar.dev/zcj/3q9qba1vb0gc/v1/severe/wwa/36.0/-98.0/35.0/-97.0?limit=50&offset=0" \
     -H "Authorization: Bearer $ACCESS_TOKEN"
   ```

   To limit the results to a time window, add `begin_time` and `end_time`. Their format is in [the severe weather API reference](https://agents.myradar.dev/zcj/3q9qba1vb0gc/services/severe/openapi.json).

4. Page through a region. Read `count`, `total`, `limit` and `offset` from each response. When `total` is larger than the results you hold, send the same request with a higher `offset`. Each page is one more request.

## Look up hail and wind history

Send the location as one `latlon` value, latitude and longitude separated by a comma, to `GET https://agents.myradar.dev/zcj/3q9qba1vb0gc/v1/severe/history`. The response lists the hail sizes and high wind events recorded at that location over the last several years.

The API reference lists `latlon` as the only parameter, but the endpoint currently also requires a `begin_time` that the reference does not document yet, and answers 422 without it. Check [the reference](https://agents.myradar.dev/zcj/3q9qba1vb0gc/services/severe/openapi.json) for the full contract before you build on it.

## Budget the calls

| Run | Cost on Credits | Cost on Platinum |
| --- | --- | --- |
| One point check | $0.0002 | $0.00011 |
| 1,000 delivery stops, one point check each | $0.20 | $0.11 |
| A region read as 10 pages | $0.002 | $0.0011 |

Credits is prepaid. The minimum purchase is $0.02 on a wallet rail and $0.50 by card. Each call draws down the balance, and `POST https://agents.myradar.dev/zcj/3q9qba1vb0gc/extend` tops it up. [Pricing](/guides/pricing) compares Credits with the Starter, Pro and Platinum monthly plans.

## Limits

- One point per point call. There is no batch parameter, so checking 50 stops takes 50 requests. A box call returns every polygon across an area instead, which you can test your stops against yourself.
- The point endpoints take only `lat` and `lon`. Paging and time windows apply to the box endpoints.
- A call without a credential returns `401 bearer_required`.
- Each page, point and history lookup is billed as one request.

## Errors

| Response | Meaning | Action |
| --- | --- | --- |
| `401 bearer_required` | No agent credential was sent | Register at [auth.md](https://agents.myradar.dev/zcj/3q9qba1vb0gc/auth.md) and retry with `Authorization: Bearer <token>` |
| `401 invalid_token` | The token did not verify or has expired | Exchange the stored assertion for a fresh token |
| `403 plan_required` | No plan you hold covers this call | Buy one of the plans listed in the body's `plans`, then retry |
| `422` | A path or query value failed validation | Read `detail`, fix the value and resend |
| `usage_exhausted` | The plan's credit is used up | Top up with `POST https://agents.myradar.dev/zcj/3q9qba1vb0gc/extend`, or buy again |

[MyRadar API errors](/guides/errors) covers the full list.

## Frequently asked questions

### Does MyRadar's severe weather alerts API need an API key?

No. Calls through the storefront use the agent credential the storefront issues, sent as `Authorization: Bearer <token>`. No upstream API key is needed.

### How much does a severe weather warning check cost?

Each call is one request: $0.02 per 100 requests on Credits, $0.199 per thousand requests on Starter, $0.133 per thousand requests on Pro and $0.11 per thousand requests on Platinum.

### What is the difference between the warnings and wwa endpoints?

The `warnings` endpoints return severe weather warning polygons only. The `wwa` endpoints return watch, warning and advisory polygons. Both come in a point form and a bounding box form.

### Can I check many addresses in one call?

No. A point call checks one point. A box call returns the polygons across an area instead, paged with `limit` and `offset`, and you can test your stops against them yourself.

### Does each alert call return its own 402?

No. Calls draw on a plan you have already bought. Only the plan purchase answers with a 402. A call without a plan returns `403 plan_required`, which lists the plans that cover it.

## Keep reading

- [Get a weather forecast by latitude and longitude](/guides/quickstart)
- [MyRadar weather API pricing](/guides/pricing)
- [MyRadar API errors and recovery](/guides/errors)
- [Buyer skill](https://agents.myradar.dev/zcj/3q9qba1vb0gc/SKILL.md): the full purchase flow
- [Severe weather API reference](https://agents.myradar.dev/zcj/3q9qba1vb0gc/services/severe/openapi.json): every parameter

---

Updated 2026-10-20. All MyRadar guides: https://agents.myradar.dev/guides.md. Storefront: https://agents.myradar.dev/zcj/3q9qba1vb0gc/llms.txt.
