NASA EONET Natural Disasters: Wildfires, Storms, Volcanoes avatar

NASA EONET Natural Disasters: Wildfires, Storms, Volcanoes

Pricing

from $1.40 / 1,000 event row returneds

Go to Apify Store
NASA EONET Natural Disasters: Wildfires, Storms, Volcanoes

NASA EONET Natural Disasters: Wildfires, Storms, Volcanoes

Natural events from NASA's keyless EONET tracker as rows: wildfires, severe storms, volcanoes, floods, icebergs, dust. One row per event with category, open/closed status, dates, latest coordinates, magnitude and sources, or one row per track position. Filter by category, region, box, size.

Pricing

from $1.40 / 1,000 event row returneds

Rating

0.0

(0)

Developer

Samat Makatov

Samat Makatov

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

NASA's Earth Observatory Natural Event Tracker (EONET) is a public catalogue of natural events on Earth: editors open an event when a volcano observatory, a wildfire agency, a typhoon warning centre, the national ice centre or a disaster alert system reports one, add a position every time the reporter publishes a new one, and close it when the event is over. This actor turns that catalogue into rows — one row per event with its latest position, size and reporters, or one row per recorded position so you get the whole path of a storm, the drift of an iceberg or the growth of a fire.

Filter by category, by a named region or your own box, by status, by time window, by reporting organisation and by size in the unit the reporters use (acres, knots, square nautical miles). No API key, no login, no proxy, no browser: one public JSON endpoint on eonet.gsfc.nasa.gov, filtered and normalised in memory. Made by Yadroo.

Use cases

  • Live fire map for one region — categories: ["wildfires"], region: "usWest": every fire the catalogue holds open inside your map window, with coordinates and acres, ready to drop on a tile layer.
  • Storm paths for ports and marine insurance — mode: "track", categories: ["severeStorms"]: the six-hourly positions of each cyclone with sustained wind in knots and the kilometres it moved since the previous advisory.
  • Eruption watch for aviation and travel desks — categories: ["volcanoes"], status: "open": the volcanoes currently listed as erupting, with the vent coordinates and the observatory that reported them.
  • Iceberg drift for polar shipping and fisheries — categories: ["seaLakeIce"], mode: "track": where each tracked berg has been, with its area in square nautical miles.
  • Weekly hazard line-up for a newsroom — sinceDays: 7 across all categories, onlyNew: true on a schedule, so a daily run reports only what appeared since the previous one.
  • A hazard layer for an agent or a RAG index — fields: ["eventId","title","categoryId","latitude","longitude","lastDate"] keeps the row small enough to paste into a model context, and eventIds re-reads the same event every hour.

Input

Nothing is required: with no input at all the actor writes the 50 most recent open events of every category.

FieldTypeDefaultAllowed values / notes
modestringeventsevents = one row per event, track = one row per recorded position. See Modes
eventIdsstring[]—e.g. ["EONET_24482"]. Fetches those events directly; the filters below are then unused. An id the catalogue does not know yields a row with found: false
categoriesstring[]all13 values, see Categories. Several are OR-ed by the source
statusstringopenopen, closed, all
regionstringworld17 named boxes, see Regions
bboxstring—Your own box as minLon,maxLat,maxLon,minLat, e.g. -125,50,-100,31. Overrides region. See Box order
sourcesstring[]all33 reporting organisations, see Reporting organisations. OR-ed
sinceDaysinteger—1–3650. Keeps events with a position in the last N days. No default on purpose, see Limits
startDatestring—UTC YYYY-MM-DD, inclusive. Used instead of sinceDays
endDatestringrun dateUTC YYYY-MM-DD, inclusive. Only together with startDate
sinceHoursinteger—1–8760. Applied by the actor: the newest position must be younger than this
onlyNewbooleanfalseRemember written event ids between runs and skip them next time
magnitudeIdstring—Which measurement the size bounds use, 11 values, see Measurements
magnitudeMininteger—Lower bound, inclusive. Needs magnitudeId
magnitudeMaxinteger—Upper bound, inclusive. Needs magnitudeId
titleContainsstring[]—Applied by the actor: keep titles holding one of these words, case-insensitive
sortBystringlatestlatest, oldest, magnitude, title. Decides which events survive maxItems
includePolygonCoordinatesbooleanfalseWrite the full outline of polygon events into polygonCoordinates
maxItemsinteger501–2000 rows (events, or positions in track mode). The cost brake
maxTrackPointsPerEventinteger2001–5000 positions per event in track mode, counted from the newest backwards
fieldsstring[]allKeep only these output fields, in this order

categories, region, sources, magnitudeId and fields are read against the catalogue's own vocabulary: an obvious typo or a common word is corrected and the correction is logged ("typhoon" → severeStorms, "wildfire" → wildfires, "acres" → ac, "usWests" → usWest). A value that matches nothing stops the run with the list of valid values — the search is never widened behind your back.

Filters sent to the source: categories, status, sources, sinceDays/startDate+endDate, region/bbox, magnitudeId+magnitudeMin/magnitudeMax. Applied by the actor after fetching: sinceHours, titleContains, onlyNew, sortBy, maxItems, maxTrackPointsPerEvent, fields.

Reference

Modes

  • events — one row per event: the latest coordinates and size, the first and latest report date, how many positions were recorded, whether the editors still hold it open. Use the Events or Timeline & size view.
  • track — one row per recorded position of each event, oldest first, with pointIndex, the observation time and distanceKm to the previous position (null on the first row of an event). Use the Track positions view. maxTrackPointsPerEvent keeps the newest positions of long-lived events — an iceberg can carry a decade of them.

Categories

IdWhat it holds
droughtLong absence of precipitation affecting agriculture, livestock, food and water
dustHazeDust storms, air pollution and other non-volcanic aerosols
earthquakesShaking and displacement events
floodsInundation, water beyond river and lake extents
landslidesLandslides, mudslides, avalanches
manmadeHuman-induced events extreme in their extent
seaLakeIceIcebergs and other sea and lake ice, mostly tracked bergs with a designation like D33D
severeStormsTropical storms, hurricanes, typhoons, cyclones
snowHeavy snow events
tempExtremesHeat and cold extremes
volcanoesEruptions and volcanic plumes
waterColorAlgal blooms, sediment and other water discolouration
wildfiresWildfires and, from the US agencies, prescribed burns (their titles start with Prescribed Fire)

Well filled today: wildfires, severe storms, volcanoes and sea/lake ice. Thin: drought, snow, landslides, earthquakes, temperature extremes, water colour and manmade — see Limits.

Regions

Sent to the source as bbox in its own order — west, north, east, south.

RegionminLon, maxLat, maxLon, minLat
worldno box is sent
northAmerica-170, 72, -50, 15
usWest-125, 50, -100, 31
usEast-100, 50, -66, 24
centralAmericaCaribbean-118, 33, -59, 5
southAmerica-82, 13, -34, -56
europe-25, 71, 45, 34
africa-20, 38, 52, -35
middleEast25, 42, 63, 12
centralAsia46, 56, 88, 35
russiaSiberia60, 78, 180, 48
southAsia60, 38, 93, 5
eastAsia100, 54, 146, 18
southeastAsia90, 25, 145, -12
australiaNewZealand110, -8, 180, -50
arctic-180, 90, 180, 60
antarctic-180, -60, 180, -90

Box order

bbox is four decimal degrees in the source's order: west edge, north edge, east edge, south edge (minLon,maxLat,maxLon,minLat). 46,56,88,35 covers Kazakhstan and its neighbours; -125,50,-100,31 the US West. The actor checks that west is smaller than east and south smaller than north and stops with a message naming the order when they are swapped. A box crossing the 180th meridian is rejected: the source silently ignores such a box and answers with the whole planet, so use two runs (… to 180 and -180 to …) instead.

Measurements

Reporters publish a size only for some categories, in their own unit. magnitudeId says which unit the bounds use; the unit itself comes back in magnitudeUnit.

IdUnit in the rowsUsed for
acacresWildfires (US agencies)
hahectareWildfires (other agencies)
mag_ktsktsSevere storms — average maximum sustained wind
sq_NMNM^2Icebergs — area in square nautical miles
mbMbEarthquakes — body wave magnitude
miMi/MwpEarthquakes — integrated P-wave magnitude
mlMlEarthquakes — Richter local magnitude
mmsMw/MwwEarthquakes — moment magnitude
mwbMwbEarthquakes — body wave moment tensor
mwcMwcEarthquakes — centroid moment tensor
mwrMwrEarthquakes — moment tensor inversion

Typical bounds: ac ≥ 1000 for large fires, mag_kts ≥ 64 for hurricane-force storms, mag_kts 34–63 for tropical-storm strength, sq_NM ≥ 100 for big bergs.

Reporting organisations

AVO Alaska Volcano Observatory · ABFIRE Alberta Wildfire · AU_BOM Australia Bureau of Meteorology · BYU_ICE BYU Antarctic iceberg tracking · BCWILDFIRE British Columbia Wildfire Service · CALFIRE California forestry and fire protection · CEMS Copernicus Emergency Management Service · EO NASA Earth Observatory · Earthdata NASA Earthdata · FEMA US Federal Emergency Management Agency · FloodList FloodList · GDACS Global Disaster Alert and Coordination System · GLIDE GLIDE identifiers · InciWeb US incident information · IRWIN US interagency wildfire reporting · IDC International Disasters Charter · JTWC Joint Typhoon Warning Center · MRR LANCE rapid response · MBFIRE Manitoba Wildfire Program · NASA_ESRS NASA Earth science and remote sensing · NASA_DISP NASA Earth science disasters programme · NASA_HURR NASA hurricane and typhoon updates · NOAA_NHC National Hurricane Center · NOAA_CPC NOAA weather and climate prediction · PDC Pacific Disaster Center · ReliefWeb ReliefWeb · SIVolcano Smithsonian global volcanism programme · NATICE US National Ice Center · UNISYS Unisys Weather · USGS_EHP USGS earthquake hazards · USGS_CMT USGS emergency operations · HDDS USGS hazards data distribution · DFES_WA Western Australia fire and emergency services.

The ids land in sourceIds and the reporter's own page in sourceUrls. Those pages live on other domains; the actor prints them as data and never fetches them.

Examples

What is burning right now, anywhere

{ "mode": "events", "categories": ["wildfires"], "status": "open", "sortBy": "latest", "maxItems": 25 }

Fires inside the US West map window

{ "mode": "events", "categories": ["wildfires"], "status": "open", "region": "usWest", "maxItems": 20 }

Volcanoes the editors currently hold open

{ "mode": "events", "categories": ["volcanoes"], "status": "open", "sortBy": "latest", "maxItems": 20 }

Paths of the tropical storms of the last three months

{ "mode": "track", "categories": ["severeStorms"], "status": "all", "sinceDays": 90, "maxTrackPointsPerEvent": 40, "maxItems": 60 }

Fires of at least a thousand acres, largest first

{ "mode": "events", "categories": ["wildfires"], "status": "open", "magnitudeId": "ac", "magnitudeMin": 1000, "sortBy": "magnitude", "maxItems": 20 }

Anything disruptive in South-East Asia this quarter

{ "mode": "events", "categories": ["wildfires", "severeStorms", "floods", "volcanoes"], "status": "all", "region": "southeastAsia", "sinceDays": 90, "maxItems": 25 }

Output

A real row from a cloud run (mode: "events", open wildfires, newest first):

{
"eventId": "EONET_24710",
"title": "Wildfire Round Prarie, Morehouse, Louisiana",
"description": "8 Miles NW from Bastrop, LA",
"categoryId": "wildfires",
"categoryTitle": "Wildfires",
"categoryIds": [
"wildfires"
],
"status": "open",
"closedAt": null,
"firstDate": "2026-09-20T17:32:00.000Z",
"lastDate": "2026-09-20T17:32:00.000Z",
"durationDays": 0,
"latitude": 32.858241,
"longitude": -91.989455,
"geometryType": "Point",
"geometryCount": 1,
"magnitudeValue": 738.55,
"magnitudeUnit": "acres",
"maxMagnitudeValue": 738.55,
"sourceIds": [
"IRWIN"
],
"sourceUrls": [
"https://irwin.doi.gov/observer/incidents/2026-LALAS-000390"
],
"polygonCoordinates": [],
"found": true,
"url": "https://eonet.gsfc.nasa.gov/api/v3/events/EONET_24710",
"fetchedAt": "2026-09-24T20:56:31.372Z"
}

events mode — always filled: eventId, title, categoryId, categoryTitle, status, firstDate, lastDate, latitude, longitude, geometryType, geometryCount, sourceIds, found, url, fetchedAt.

FieldTypeMeaning
eventIdstringCatalogue id, e.g. EONET_24482
titlestringEditor's title: the fire, storm, berg or volcano plus county or country
descriptionstring|nullExtra note from the reporter; often null
categoryId / categoryTitlestringFirst category of the event
categoryIdsstring[]Every category of the event
statusstringopen or closed
closedAtstring|nullWhen the editors closed it, UTC
firstDate / lastDatestringFirst and latest recorded position, UTC
durationDaysnumberDays between them
latitude / longitudenumberLatest position; the centre of the outline for polygon events
geometryTypestringPoint or Polygon
geometryCountnumberPositions recorded so far
magnitudeValue / magnitudeUnitnumber|null / string|nullSize at the latest position and its unit
maxMagnitudeValuenumber|nullLargest size recorded for the event
sourceIds / sourceUrlsstring[]Reporting organisations and their pages (data, never fetched)
polygonCoordinatesarrayOutline as [longitude, latitude] pairs; empty unless includePolygonCoordinates
foundbooleanfalse for a requested id the catalogue does not know
urlstringThe event in the source catalogue
fetchedAtstringRun time, ISO 8601 UTC

track mode writes eventId, title, categoryId, categoryTitle, status, pointIndex (position number inside the event), date (observation time, UTC), latitude, longitude, geometryType, magnitudeValue, magnitudeUnit, distanceKm (great-circle kilometres since the previous position, null on the first row of an event), found, url, fetchedAt.

Dataset views: Events (map columns), Timeline & size (first/latest report, days tracked, closing date, positions, largest size), Track positions (path with distance moved).

Every run also writes a SUMMARY record to the key-value store: the filters, how many events were read and matched, how many rows were written, the ids that were not in the catalogue and any corrected input value.

Use it from code / agents

curl -X POST "https://api.apify.com/v2/acts/yadroo~nasa-eonet-events/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"categories":["wildfires"],"status":"open","region":"usWest","maxItems":20}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yadroo/nasa-eonet-events').call({ categories: ['volcanoes'], status: 'open', maxItems: 20 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yadroo/nasa-eonet-events").call(run_input={
"mode": "track", "categories": ["severeStorms"], "sinceDays": 90, "maxItems": 200})
items = client.dataset(run["defaultDatasetId"]).list_items().items

MCP: add https://mcp.apify.com to Claude / Cursor / any MCP client and call the yadroo/nasa-eonet-events tool with the same JSON input. For a model context, cut the row down with "fields": ["eventId","title","categoryId","latitude","longitude","lastDate","magnitudeValue","magnitudeUnit"].

On a schedule, set onlyNew: true: the actor keeps the ids it has already written in a named key-value store (one per task) and writes only what is new, so a daily job stays a few rows long.

Pricing

Pay per event: $0.001 per run start + $0.002 per dataset row. Every run is charged the start event, also when the filters match nothing. Typical runs: 20 rows ≈ $0.041; 25 rows ≈ $0.051; 50 rows (the default) ≈ $0.101; a 60-position storm-track run ≈ $0.121; the maximum maxItems: 2000 ≈ $4.001. Apify plan tiers discount both prices (Bronze −10 %, Silver −20 %, Gold and above −30 %).

maxItems is the cost brake and the run-time brake: the source answers a whole filtered result set in one response and has no paging, so the actor reads a bounded window, sorts it the way you asked and then stops at maxItems.

Limits & FAQ

  • How much the actor reads. One request per run. The source has no paging, so the actor asks for a window of the most recent matches — ten times maxItems, at least 500 and at most 3000 events — then applies sinceHours, titleContains, the sort and the cap. When the window is full the status message says so; narrow the filters (category, region, sinceDays) to be sure you are looking at everything that matters. An unfiltered status: "all" run is answered by the source with an error, so a window is always sent.
  • sinceDays measures the last report, not the start of the event. An event stays out of a 7-day window when no reporter published a new position in those seven days, even though it started last month and is still open. That is why sinceDays has no default: a volcano erupting since 2021 and an iceberg tracked since 2011 are open, but their newest position can be weeks old.
  • Thin categories. Floods, drought, snow, landslides, earthquakes, temperature extremes, water colour and manmade are entered rarely; floods with status: "open" was empty on 2026-09-24 while status: "all" with a one-year window held hundreds. An empty run on those categories is the catalogue's state, not a failure — the run succeeds and the status message says nothing matched.
  • Editors close events late. status: "open" can still hold an event that visibly ended, and closedAt arrives days after the fact. Count a season with status: "closed" or "all" rather than with the open list.
  • Outlines become a centre point. Flood extents and large fire perimeters are published as polygons of hundreds to thousands of corners. A row carries their centre in latitude/longitude; switch includePolygonCoordinates on to get the ring itself ([longitude, latitude] pairs, truncated at 20 000 corners). Some 2026 flood outlines are published latitude first — the actor detects that (a latitude beyond ±90, or a box that only fits the other reading) and writes them the right way round.
  • Some dates run ahead of the clock. A few alert-system entries carry a report or closing date in the future (the Thailand flood read on 2026-09-24 was closed 2026-10-06). Those are the reporter's own timestamps, passed through unchanged rather than silently clipped.
  • Freshness follows the reporter. Storm centres publish every six hours, ice and fire agencies once or twice a day, volcano observatories irregularly. sinceHours below six hours is often empty by nature.
  • Seasonality. Fire and storm counts move with the season and the hemisphere; a category that fills 2000 rows in September can be quiet in February.
  • What this is not. An event catalogue, not a warning service: no forecasts, no alert levels, no damage, casualty or insured-loss figures, no evacuation notices. The reporter links in sourceUrls lead to those where they exist.
  • Unknown ids. An id the catalogue does not know is answered by the source with a server error rather than a "not found"; the actor verifies the service is up and then writes one row with found: false instead of failing.
  • Rate limits and licence. The endpoint is keyless and publishes no rate limit; the actor sends one request per run and backs off on 429/5xx. robots.txt allows everything. The data is NASA's, published for open use — check the source's own terms before you republish it.

Made by Yadroo. Sibling actors: open-meteo-weather · osm-geocode · public-holidays · google-news-search · rss-to-json