Earthquake & Wildfire Events API — USGS + NASA FIRMS avatar

Earthquake & Wildfire Events API — USGS + NASA FIRMS

Pricing

from $1.00 / 1,000 hazard events

Go to Apify Store
Earthquake & Wildfire Events API — USGS + NASA FIRMS

Earthquake & Wildfire Events API — USGS + NASA FIRMS

Returns earthquakes (USGS) and satellite fire detections (NASA FIRMS) for any area as flat rows, with watch mode for new and changed events; failed, unavailable and unchanged rows are never charged. Not affiliated with or endorsed by the USGS or NASA.

Pricing

from $1.00 / 1,000 hazard events

Rating

0.0

(0)

Developer

COMPASS DEV

COMPASS DEV

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Returns earthquakes from the USGS catalog and satellite fire detections from NASA FIRMS for any area you give, as flat rows with the sources' own magnitude, alert, confidence and fire-power fields; failed, unavailable and unchanged rows are never charged.

Give it one or more areas (a box, or a point with a radius); get one row per event:

  • earthquakes (USGS earthquake catalog): time, magnitude, depth, place, the USGS PAGER alert level, the significance number, the tsunami flag and the review status;
  • fire detections (NASA FIRMS, VIIRS on NOAA-20 and NOAA-21, optionally MODIS): time of the satellite scan, place, confidence class, fire radiative power (MW) and brightness.

Built for risk dashboards, insurance and logistics feeds, newsrooms, research and AI agents that need one feed for "what happened near here". Not affiliated with or endorsed by the USGS or NASA.

What it does

  • Two official sources in one call, one flat schema: eventType is earthquake or fire; the other type's fields are null. Severity comes only from each source's own fields (magnitude, PAGER alert, significance; FIRMS confidence, fire radiative power): no score of our own.
  • Any area: a box ("west,south,east,north"), a circle ("latitude,longitude,radiusKm", up to 2,000 km) or "world", with a name if you like ("California: -125,32,-114,42"). Circles give distanceKm from their centre. Up to 20 areas per run; an event in two overlapping areas is returned and charged once.
  • The last days or a past window: the last sinceDays UTC days, today included (default 2), or sinceDays days from dateFrom.
  • Watch mode: give a watch list name (watchListName) and run it hourly or daily:
    • the first run returns every event (baseline);
    • later runs return only new events, and earthquakes the USGS revised (magnitude, magnitude type, review status, tsunami flag or PAGER alert), with the previous values;
    • an earthquake the USGS deleted comes back once as a free no_data row;
    • a run with nothing new returns exactly one free no_data row that says so.
  • Your own NASA FIRMS key: fires need your free MAP_KEY (firmsApiKey, sent to you by email from FIRMS). It is used only in requests to FIRMS and never logged, stored or returned. Without it you still get earthquakes, and each area's fire part is one free failed row.
  • You are never charged for failed results: failed and no_data rows are free, and so are unchanged rows in watch mode. One charge per returned event.

Quick start

{ "areas": ["California: -125,32,-114,42.1"], "firmsApiKey": "YOUR_FIRMS_MAP_KEY" }

A watch list for two places, earthquakes from M4 and high-confidence fires, run daily:

{
"areas": ["Tokyo: 35.68,139.69,150", "Los Angeles: 34.05,-118.24,100"],
"minMagnitude": 4,
"minFireConfidence": "high",
"firmsApiKey": "YOUR_FIRMS_MAP_KEY",
"watchListName": "sites"
}

Input

FieldWhat it does
areasMain input, up to 20. A box "west,south,east,north" (degrees), a circle "latitude,longitude,radiusKm" or "world", with an optional name first ("California: -125,32,-114,42"). Objects work too: { "name", "west", "south", "east", "north" } or { "name", "latitude", "longitude", "radiusKm" }. A box that crosses the 180° meridian is given as two boxes.
eventTypesWhich events; default earthquake,fire.
sinceDaysThe window in UTC days, today included; default 2 (1 to 10).
dateFromOptional first day of a past window (YYYY-MM-DD); empty = the last days.
minMagnitudeSmallest earthquake magnitude; default 2.5.
minFireConfidenceSmallest FIRMS confidence class: low, nominal or high; default nominal.
fireSourcesFIRMS products; default VIIRS_NOAA20_NRT,VIIRS_NOAA21_NRT (add MODIS_NRT for MODIS on Terra and Aqua). Each product's detections are separate rows.
firmsApiKeyYour own free NASA FIRMS MAP_KEY; needed for fires. Never logged, stored or returned.
modeEmpty: watch when a watch list name is given, otherwise export. An explicit watch or export wins.
watchListNameYour watch list (kept in your own storage between runs). A name turns on watch mode; watch mode without a name uses the list "default". Changing the areas or filters starts the list again.
includeUnchangedWatch mode: also return unchanged events (free); default false.
maxItemsMost charged events per run; default 1000. Export: areas past the cap are not read. Watch: the rest come in the next run.

Field names from other tools: stateName (→ watchListName); apiKey, mapKey (→ firmsApiKey).

Output

One row per event. An earthquake:

{
"status": "ok",
"input": "Costa Rica: -87,8,-82,12",
"areaName": "Costa Rica",
"eventType": "earthquake",
"eventId": "us6000tymj",
"time": "2026-09-30T21:55:26.169Z",
"latitude": 9.7526,
"longitude": -86.5063,
"magnitude": 5.6,
"magnitudeType": "mww",
"depthKm": 8,
"place": "94 km SW of Tamarindo, Costa Rica",
"eventStatus": "reviewed",
"tsunami": false,
"alert": "green",
"significance": 483,
"summary": "M 5.6 earthquake, 94 km SW of Tamarindo, Costa Rica, 8 km deep (USGS PAGER alert: green)",
"url": "https://earthquake.usgs.gov/earthquakes/eventpage/us6000tymj"
}

A fire detection:

{
"status": "ok",
"input": "LA: 34.2,-118.2,30",
"eventType": "fire",
"eventId": "VIIRS_NOAA20_NRT:2026-10-02T0942:34.21036,-118.17114",
"time": "2026-10-02T09:42:00.000Z",
"latitude": 34.21036,
"longitude": -118.17114,
"distanceKm": 3.2,
"confidence": "high",
"frpMw": 21.4,
"satellite": "NOAA-20",
"instrument": "VIIRS",
"daynight": "night",
"summary": "Fire detection (VIIRS NOAA-20), high confidence, 21.4 MW, night",
"url": "https://firms.modaps.eosdis.nasa.gov/map/#d:2026-10-02;@-118.17114,34.21036,12z"
}

No fire in an area (free):

{ "status": "no_data", "input": "Costa Rica: -87,8,-82,12", "eventType": "fire", "error": "No fire detection in this area and window (confidence nominal or higher)" }

Output fields

FieldTypeDescription
statusstring (or null)ok = an event returned (charged in export mode, and in watch mode when it is a baseline, new or changed event; free when unchanged and includeUnchanged is on); no_data = nothing to return for this area and event type (no earthquake or fire detection in the window, an event found again in an overlapping area, an earthquake the USGS deleted since the last run, or nothing new since the last run) (free); failed = an invalid area, no FIRMS key for fires, or a source that could not be read (free)
errorstring (or null)Why a row is no_data or failed; null on ok rows
attemptsinteger (or null)Requests made for the answer this row came from (retries included)
inputstring (or null)The area entry that produced this row, as given (a box "west,south,east,north", a circle "latitude,longitude,radiusKm", "world", or an object), or the watch list for the nothing-new row
areaNamestring (or null)The name given before the area ("California: ..."), or null
modestring (or null)watch or export
watchListstring (or null)Watch list name (watch mode); null in export mode
eventTypestring (or null)earthquake (USGS) or fire (a NASA FIRMS fire detection)
eventIdstring (or null)Earthquakes: the USGS event ID. Fires: "
timestring (or null)When it happened (ISO 8601, UTC): the earthquake's origin time, or the satellite scan's start for a fire detection
updatedstring (or null)Earthquakes: when the USGS last updated the event (ISO 8601); null for fires
latitudenumber (or null)Latitude in degrees (WGS 84)
longitudenumber (or null)Longitude in degrees (WGS 84)
distanceKmnumber (or null)For a circle area: the great-circle distance from its centre (km, 0.1); null for a box
magnitudenumber (or null)Earthquakes: the USGS magnitude; null for fires
magnitudeTypestring (or null)Earthquakes: the magnitude type (mww, mb, ml, md ...)
depthKmnumber (or null)Earthquakes: depth below the surface (km)
placestring (or null)Earthquakes: the USGS place text ("94 km SW of Tamarindo, Costa Rica"); null when the people filter left it out
placeOmittedboolean (or null)Earthquakes: true when the place text was left out by the people filter (it looked like a person's name); latitude and longitude stay
eventStatusstring (or null)Earthquakes: automatic, reviewed or deleted (the USGS review status)
tsunamiboolean (or null)Earthquakes: the USGS tsunami flag (set for large events in oceanic regions; not a tsunami warning)
alertstring (or null)Earthquakes: the USGS PAGER alert level (green, yellow, orange, red) for estimated impact; null when PAGER gave none
significanceinteger (or null)Earthquakes: the USGS significance number (0 and up; larger is more significant: magnitude, felt reports and estimated impact)
networkstring (or null)Earthquakes: the network that gave the preferred solution (us, ci, nc, ak ...)
confidencestring (or null)Fires: the FIRMS confidence class (low, nominal, high); VIIRS gives it directly, MODIS as 0-100 % (under 30 low, 30-79 nominal, 80+ high)
confidenceRawstring (or null)Fires: the confidence as FIRMS gives it (VIIRS l / n / h; MODIS 0-100)
frpMwnumber (or null)Fires: fire radiative power, megawatts
brightnessKnumber (or null)Fires: brightness temperature, kelvin (VIIRS I-4 channel; MODIS channel 21/22)
brightness2Knumber (or null)Fires: brightness temperature of the second channel, kelvin (VIIRS I-5; MODIS channel 31)
scanKmnumber (or null)Fires: the pixel's approximate size along the scan (km)
trackKmnumber (or null)Fires: the pixel's approximate size along the track (km)
satellitestring (or null)Fires: NOAA-20, NOAA-21, Terra or Aqua
instrumentstring (or null)Fires: VIIRS or MODIS
daynightstring (or null)Fires: day or night (the scan's time of day)
firmsVersionstring (or null)Fires: the FIRMS product version (e.g. 2.0NRT)
fireSourcestring (or null)Fires: the FIRMS product read (VIIRS_NOAA20_NRT, VIIRS_NOAA21_NRT or MODIS_NRT)
summarystring (or null)The event in plain words, from the source's own fields
changeTypestring (or null)Watch mode: baseline (first run of the list), new, changed, unchanged (only with includeUnchanged) or deleted (the USGS deleted an earthquake on the list); null in export mode
changedFieldsstring (or null)Watch mode, changed rows: the tracked fields that changed, comma-separated (earthquakes: magnitude, magnitudeType, eventStatus, tsunami, alert; fires: confidence)
previousValuesstring (or null)Watch mode, changed rows: the changed fields' previous values, as JSON
urlstring (or null)Earthquakes: the event's USGS page. Fires: the NASA FIRMS Fire Map at the detection's date and place
sourcestring (or null)The source and the citation it asks for (fires: "NASA FIRMS" and the LANCE acknowledgement, with NASA's advice on local-scale use)
licensestring (or null)The data's licence or terms (USGS: U.S. Public Domain; FIRMS: NASA open data, provided "as is")
licenseUrlstring (or null)Where the licence or terms are published
scrapedAtstring (or null)When the row was made (ISO 8601)

Pricing

Pay per event, one event per returned earthquake or fire detection (hazard-event):

PlanPrice per eventPer 1,000 events
Free (no discount)$0.0015$1.50
Bronze$0.0013$1.30
Silver$0.00115$1.15
Gold (and Platinum, Diamond)$0.0010$1.00
  • Charged: ok rows in export mode; baseline, new and changed rows in watch mode.
  • Never charged: failed rows (an invalid area, no FIRMS key, a source that could not be read), no_data rows (no event in an area, an event found again in an overlapping area, a deleted earthquake, nothing new) and unchanged rows. You are never charged for failed results.
  • A big area over several days can hold thousands of fire detections: maxItems (default 1,000) caps what a run returns and charges.
  • Pay per event only, with no usage fees, so the actor is eligible for x402 agent payments.

Use it from AI agents

One clear main input, areas; every row has status, error, eventType, summary and scrapedAt. Call it through the Apify API, the Apify MCP server (mouadapi/geospatial-event-intelligence) or x402 agentic payments. Copy-paste call (your Apify token in place of YOUR_APIFY_TOKEN):

$curl -X POST "https://api.apify.com/v2/acts/mouadapi~geospatial-event-intelligence/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" -H "Content-Type: application/json" -d '{"areas": ["35.68,139.69,150"], "eventTypes": ["earthquake"], "minMagnitude": 4, "sinceDays": 7}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('mouadapi/geospatial-event-intelligence').call({ areas: ['California: -125,32,-114,42.1'], firmsApiKey: 'YOUR_FIRMS_MAP_KEY', watchListName: 'california' });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Limits

  • Fire detections are satellite pixels, not fires. Each row is one 375 m (VIIRS) or 1 km (MODIS) pixel that looked hot in one satellite pass; one fire gives many rows, and a gas flare, a volcano or a hot factory roof can be detected too. NASA advises that, due to their spatial resolution, these data are not suited to tactical decision-making or to informing about conditions at a local scale: confirm with local authorities.
  • FIRMS near-real-time products only (_NRT): each satellite passes about twice a day, and clouds hide fires. For archives older than a few months, use FIRMS's own archive download.
  • Up to 10 days per run; FIRMS answers up to 5 days per request, so 6 to 10 days take two requests per area and product.
  • The USGS catalog is complete worldwide for larger earthquakes (about M4.5 and up) and in more detail in the United States; small earthquakes elsewhere may be missing. At most 2,000 earthquakes per area.
  • Coordinates only: no place-name or address lookup.
  • Suomi NPP (VIIRS_SNPP) is not offered: NASA ends its data products on 1 November 2026.

Known issues

  • The FIRMS key: a key FIRMS refuses, or one whose limit is used up (5,000 requests per 10 minutes), stops FIRMS for the rest of the run; every fire part after it is a free failed row that says why.
  • A source that cannot be read (a rate limit that three pauses don't clear, an outage) stops for the rest of the run; the other source goes on. Another IP or proxy is never tried.
  • The place text of an earthquake is left out (placeOmitted) when it has the shape of a person's name; the coordinates stay.
  • The daily self-test of this actor checks the earthquake path; the fire path is checked with a key in every release test.

Sources and licences

  • USGS earthquake catalog (FDSN event web service): U.S. Public Domain (USGS copyrights and credits).
  • NASA FIRMS: "NASA promotes full and open sharing of data"; please cite it as "NASA FIRMS" (FIRMS FAQ). We acknowledge the use of data and/or imagery from NASA's Land, Atmosphere Near real-time Capability for Earth observations (LANCE) (https://earthdata.nasa.gov/lance), part of NASA's Earth Science Data and Information System (ESDIS). The data are provided "as is" (LANCE disclaimer).

Each row's source, license and licenseUrl name the source it came from.