API & agents

Every stream is JSON and RSS. Free for up to 1,000 calls a day per IP; the Stream API plan or x402 per-call payment lifts that. Responses carry the source on every record.

Endpoints

GETWhat it returns
/api/alerts?state=FL&county=Lee&kind=flood&min_severity=3Active alerts filtered by state, county, kind and severity (1–4)
/api/alerts?lat=26.4&lng=-80.1&radius=150Point-located alerts (quakes) within a radius in km, plus the state's alerts
/api/stream/fl.json · /api/stream/fl.rssThe whole state stream, newest first
/api/aq?lat=&lng=Current US AQI, PM2.5, PM10, ozone (Open-Meteo CAMS)
/api/missions?state=FLOne suggested mission per active alert kind, with the arena to finish it on
/api/stats · /api/status · /api/sourcesNetwork counts, health, and the public sources with licences
POST /api/subscribe{email, state, county?, min_severity?} → confirmation email

Example

curl "https://alertstream.com/api/alerts?state=FL&min_severity=3" | jq '.alerts[0]'
{
  "id": "nws:urn:oid:2.49.0.1.840.0.…",
  "source": "nws", "kind": "flood", "event": "Flood Warning", "severity": 3, "severity_label": "Severe",
  "headline": "Flood Warning issued …", "counties": ["Lee"], "states": ["FL"], "expires": "2026-10-02T09:15:00-05:00",
  "mission": { "title": "Sandbag, check a drain, or clear a storm grate near you", "arena": "ClimateChallenge.com", "url": "https://climatechallenge.com/?utm_source=alertstream.com…" },
  "link": "https://www.weather.gov/"
}

Agents

The agent card at /.well-known/agent.json follows ecorp-smart-entity/2.0. A minimal MCP endpoint at POST /api/mcp answers tools/list and tools/call for alerts, stream, aq and missions. /api/a2a returns status for agent-to-agent pings. Paid calls: send the x402 payment header described at /api/x402; unpaid calls above the free tier get a 402 with the price.

Sources and licences