CAP Alert Extractor (OASIS CAP 1.2 emergency alerts)
Pricing
from $0.35 / 1,000 alert records
CAP Alert Extractor (OASIS CAP 1.2 emergency alerts)
Point at ANY CAP alerting authority (US NWS, UN GDACS, Canada NAAD, PH PAGASA, NZ MetService + more in the WMO Register) and extract OASIS CAP 1.2 alerts as flat rows. Auto-decodes GeoJSON, inline CAP-XML feeds and Atom/RSS-linked CAP docs. One row per alert x info-language x area, with geometry.
Pricing
from $0.35 / 1,000 alert records
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
CAP Alert Extractor
Point at ANY CAP alerting authority and get structured emergency-alert rows.
This Actor is a generic runner over the OASIS Common Alerting Protocol (CAP) 1.2 — the international standard that national meteorological and emergency-management agencies use to publish public warnings (severe weather, floods, earthquakes, tsunamis, air-quality, civil emergencies). The WMO Register of Alerting Authorities lists ~130 authorities that publish CAP. Give this Actor any of their feeds — or a single CAP document — and get flat, analysis-ready rows. No per-country scraper needed.
Why this is one Actor, not a hundred
Every authority speaks CAP, but they serialize it three different ways on the wire. This Actor auto-detects and decodes all three, so a single input works everywhere:
| Serialization | Example authority | What it looks like |
|---|---|---|
| GeoJSON | US NWS (api.weather.gov/alerts/active) | one features[] per alert, CAP fields in properties |
| Inline CAP-XML feed | UN GDACS (gdacs_cap.xml) | an RSS feed where each <item> embeds a full <cap:alert> |
| Atom/RSS → linked CAP docs | Canada NAAD, PH PAGASA, NZ MetService | a feed whose entries link to standalone CAP XML documents (auto-followed) |
It also handles the details the CAP spec leaves to the publisher:
- the
cap:namespace prefix is optional and inconsistent — elements are matched by local-name, so<cap:alert>,<alert>, and default-namespaced documents all parse. <area>geometry can be a polygon, a circle, or a geocode (SAME / FIPS / UGC) — all three shapes are captured; alerts with only a geocode are fine.status: Test/ExerciseandmsgType: Cancel/Updateare real CAP values — thestatusfilter (defaultActual) keeps test messages out of your data, andmsgTypeis surfaced so a Cancel is never mistaken for a live warning.- multi-language alerts (Canadian EN+FR, EU 24-language) emit one row per language.
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrl | string (required) | — | A CAP feed URL (GeoJSON / CAP-XML / Atom-RSS) or a single CAP XML document URL |
mode | enum feed | alert | feed | feed lists current alerts from a feed; alert parses one CAP document |
status | enum | Actual | Only emit alerts with this CAP status (empty = any). Keeps Test/Exercise out |
severity | enum | (any) | Filter by CAP severity (Extreme / Severe / Moderate / Minor / Unknown) |
urgency | enum | (any) | Filter by CAP urgency (Immediate / Expected / Future / Past / Unknown) |
certainty | enum | (any) | Filter by CAP certainty (Observed / Likely / Possible / Unlikely / Unknown) |
maxRecords | integer | 1000 | Stop after this many rows |
userAgent | string | (built-in) | Override the User-Agent (some authorities request a descriptive UA) |
timeoutSecs | integer | 60 | Per-request timeout |
Example inputs
{ "startUrl": "https://api.weather.gov/alerts/active", "mode": "feed", "status": "Actual" }
{ "startUrl": "https://www.gdacs.org/xml/gdacs_cap.xml", "mode": "feed", "severity": "Severe" }
{ "startUrl": "https://rss.naad-adna.pelmorex.com/", "mode": "feed" }
{ "startUrl": "https://alerts.metservice.com/cap/rss", "mode": "feed" }
Output
The natural billable row is (alert × info-language × area) — one CAP <alert>
with 2 language <info> blocks each covering 7 <area> blocks yields 14 rows. Every
row is a flat, fully-nullable superset carrying alert-level fields (identifier,
sender, sent, status, msgType, scope, references, incidents),
info-level fields (language, categories, event, responseTypes, urgency,
severity, certainty, effective, onset, expires, senderName, headline,
description, instruction, eventCodes, parameters), and area-level fields
(areaDesc, polygons, circles, geocodes, altitude, ceiling), plus
provenance (_sourceUrl, _capUrl, _mode, _rowIndex, and the lossless _raw
CAP XML when applicable).
{"identifier": "urn:oid:2.49.0.1.840...","sender": "w-nws.webmaster@noaa.gov","sent": "2026-07-09T12:26:00-04:00","status": "Actual","msgType": "Update","language": "en-US","event": "Flood Watch","severity": "Severe","urgency": "Future","certainty": "Possible","effective": "2026-07-09T12:26:00-04:00","expires": "2026-07-10T00:00:00-04:00","senderName": "NWS State College PA","headline": "Flood Watch issued July 9 ...","areaDesc": "Perry; Dauphin; Lebanon; Cumberland; Adams; York; Lancaster","geocodes": [{ "valueName": "SAME", "value": "042099" }, { "valueName": "UGC", "value": "PAZ056" }]}
Honest behavior
- A reachable feed with 0 in-window alerts is a real result (exit 0, zero rows) — not an error.
- If every source is unreachable / unparseable, the Actor fails fast rather than emitting a fabricated empty success, so you can trust a 0-row run.
- It never invents rows and never reports an error as an honest empty.
Pricing
Pay-per-event: $0.0005 per alert record (one alert × info × area row), with a volume discount across subscription tiers.
Notes
- Metadata only — the Actor reads the alert content the authority publishes; it does not download any linked binary attachments.
- Discover more authorities and their feed URLs in the WMO Register of Alerting Authorities.