CAP Alert Extractor (OASIS CAP 1.2 emergency alerts) avatar

CAP Alert Extractor (OASIS CAP 1.2 emergency alerts)

Pricing

from $0.35 / 1,000 alert records

Go to Apify Store
CAP Alert Extractor (OASIS CAP 1.2 emergency alerts)

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

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

22 days ago

Last modified

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:

SerializationExample authorityWhat it looks like
GeoJSONUS NWS (api.weather.gov/alerts/active)one features[] per alert, CAP fields in properties
Inline CAP-XML feedUN GDACS (gdacs_cap.xml)an RSS feed where each <item> embeds a full <cap:alert>
Atom/RSS → linked CAP docsCanada NAAD, PH PAGASA, NZ MetServicea 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 / Exercise and msgType: Cancel / Update are real CAP values — the status filter (default Actual) keeps test messages out of your data, and msgType is 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

FieldTypeDefaultDescription
startUrlstring (required)—A CAP feed URL (GeoJSON / CAP-XML / Atom-RSS) or a single CAP XML document URL
modeenum feed | alertfeedfeed lists current alerts from a feed; alert parses one CAP document
statusenumActualOnly emit alerts with this CAP status (empty = any). Keeps Test/Exercise out
severityenum(any)Filter by CAP severity (Extreme / Severe / Moderate / Minor / Unknown)
urgencyenum(any)Filter by CAP urgency (Immediate / Expected / Future / Past / Unknown)
certaintyenum(any)Filter by CAP certainty (Observed / Likely / Possible / Unlikely / Unknown)
maxRecordsinteger1000Strict cap: never more than this many rows
userAgentstring(built-in)Override the User-Agent (some authorities request a descriptive UA)
timeoutSecsinteger60Per-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.

Maximum charge per run

Each row is billed in the same step that writes it, so you only pay for rows you receive. If you set a maximum total charge on the run, the Actor checks the remaining budget before the feed request and before each linked CAP document request; once one more row is unaffordable it stops and makes no further request to the alerting authority. A budget below one record returns 0 rows without contacting the source. A billing failure stops the run with an error instead of continuing unbilled. If the platform restarts a run, rows already delivered are not written or billed again.

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.