Usgs Earthquake Scraper avatar

Usgs Earthquake Scraper

Pricing

Pay per event

Go to Apify Store
Usgs Earthquake Scraper

Usgs Earthquake Scraper

Extract real-time and historical earthquake data from USGS. Get magnitude, location, depth, timestamps, and alert levels for seismic events worldwide. Monitor earthquake activity, build alert systems, and analyze seismological patterns.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract earthquake data from the United States Geological Survey (USGS). Get magnitude, location, depth, coordinates, tsunami alerts, and significance for seismic events worldwide.

What does USGS Earthquake Scraper do?

USGS Earthquake Scraper fetches seismic event data from the USGS Earthquake Hazards Program API. It returns detailed information about earthquakes including magnitude, epicenter coordinates, depth, tsunami warnings, PAGER alert levels, and how many people reported feeling the event.

Filter by date range, magnitude, depth, and alert level to get exactly the earthquake data you need.

Who is USGS Earthquake Scraper for?

  • Insurance and risk analysts evaluating seismic hazards for underwriting and property assessment
  • Emergency management professionals monitoring earthquake activity for disaster preparedness
  • Geoscientists and seismologists studying tectonic patterns and earthquake frequency distributions
  • Data journalists visualizing earthquake data for news stories and interactive maps
  • Civil engineers and architects assessing seismic risk for construction planning
  • Educators building interactive earthquake visualizations and teaching tools

Why use earthquake data?

The USGS monitors earthquakes globally in real-time. Use cases include:

  • Risk assessment — evaluate seismic hazards for insurance, construction, and real estate
  • Research — study earthquake patterns, tectonic activity, and seismological trends
  • Emergency preparedness — monitor earthquake activity for disaster response planning
  • Data journalism — visualize earthquake data on maps for news coverage
  • Education — build interactive earthquake maps and learning tools
  • Insurance analytics — assess earthquake risk for underwriting decisions

How to scrape USGS earthquake data

  1. Open USGS Earthquake Scraper in Apify Console.
  2. Set a start date and optionally an end date for the time range.
  3. Choose a minimum magnitude (e.g., 5.0 for significant earthquakes).
  4. Click Start to run the scraper.
  5. View results in the Dataset tab -- each earthquake includes magnitude, location, depth, coordinates, and tsunami alerts.
  6. Download results as JSON, CSV, or Excel.

How much does it cost to scrape USGS earthquake data?

USGS Earthquake Scraper uses pay-per-event pricing:

EventPrice
Run started$0.001
Earthquake extracted$0.0005 per event

Example costs:

  • 100 earthquakes M5+: ~$0.051
  • 500 earthquakes M4+: ~$0.251
  • All M6+ earthquakes in 2025: ~$0.05-0.10

Platform costs are minimal. The USGS API is free and requires no authentication.

Input parameters

ParameterTypeDescriptionDefault
startTimestringStart date (YYYY-MM-DD)Required
endTimestringEnd date (YYYY-MM-DD)Today
minMagnitudenumberMinimum magnitude (0-10)4.0
maxMagnitudenumberMaximum magnitude (0-10)-
minDepthnumberMinimum depth in km-
maxDepthnumberMaximum depth in km-
alertLevelstringPAGER alert: green, yellow, orange, redAny
maxResultsintegerMaximum earthquakes (1-20000)500

Input example

{
"startTime": "2026-01-01",
"endTime": "2026-03-01",
"minMagnitude": 5.0,
"maxResults": 100
}

Output example

Each earthquake is returned as a JSON object:

{
"id": "us7000q1k2",
"title": "M 7.1 - 55 km NNW of Kota Belud, Malaysia",
"magnitude": 7.1,
"magnitudeType": "mww",
"place": "55 km NNW of Kota Belud, Malaysia",
"time": "2026-02-22T10:30:45.000Z",
"latitude": 6.83,
"longitude": 116.26,
"depth": 619.8,
"tsunami": true,
"alert": "green",
"significance": 776,
"felt": 42,
"cdi": 5.2,
"mmi": 3.8,
"status": "reviewed",
"type": "earthquake",
"url": "https://earthquake.usgs.gov/earthquakes/eventpage/us7000q1k2",
"detailUrl": "https://earthquake.usgs.gov/fdsnws/event/1/query?eventid=us7000q1k2&format=geojson",
"scrapedAt": "2026-03-03T04:54:44.000Z"
}

What data can you extract from USGS Earthquake API?

FieldTypeDescription
idstringUSGS event identifier
titlestringEvent summary (magnitude + location)
magnitudenumberEarthquake magnitude
magnitudeTypestringMagnitude type (mww, mb, ml, etc.)
placestringLocation description
timestringEvent time (ISO 8601)
latitudenumberEpicenter latitude
longitudenumberEpicenter longitude
depthnumberDepth in kilometers
tsunamibooleanWhether a tsunami warning was issued
alertstringPAGER alert level (green/yellow/orange/red)
significancenumberSignificance score (0-1000+)
feltnumberNumber of felt reports
cdinumberCommunity Determined Intensity
mminumberModified Mercalli Intensity
statusstringReview status (automatic/reviewed)
typestringEvent type (earthquake, quarry blast, etc.)
urlstringUSGS event page URL
scrapedAtstringISO timestamp of extraction

Using the Apify API

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("automation-lab/usgs-earthquake-scraper").call(run_input={
"startTime": "2026-01-01",
"minMagnitude": 5.0,
"maxResults": 50,
})
for eq in client.dataset(run["defaultDatasetId"]).iterate_items():
tsunami = " TSUNAMI" if eq["tsunami"] else ""
print(f"M{eq['magnitude']:.1f} {eq['place']}{tsunami}")
print(f" {eq['time'][:10]} depth={eq['depth']:.1f}km ({eq['latitude']:.2f}, {eq['longitude']:.2f})")

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/usgs-earthquake-scraper').call({
startTime: '2026-01-01',
minMagnitude: 5.0,
maxResults: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(eq => {
console.log(`M${eq.magnitude} ${eq.place} (${eq.depth}km deep)`);
});

cURL

curl "https://api.apify.com/v2/acts/automation-lab~usgs-earthquake-scraper/runs" \
-X POST \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startTime": "2026-01-01", "minMagnitude": 5.0, "maxResults": 50}'

Integrations

Connect USGS Earthquake Scraper to apps:

  • Google Sheets — export earthquake data for analysis
  • Slack / Microsoft Teams — earthquake alerts for significant events
  • Zapier / Make — trigger workflows on new earthquake data
  • Webhook — pipe data to your own monitoring system

Tips and best practices

  1. Use date ranges — always specify startTime to avoid pulling the entire earthquake catalog.
  2. Magnitude filtering — M4+ captures moderate earthquakes; M5+ for significant ones; M6+ for major events.
  3. Tsunami flag — the tsunami field indicates whether a tsunami advisory was issued, not whether one occurred.
  4. Alert levels — PAGER alerts (green/yellow/orange/red) indicate estimated impact severity.
  5. Significance score — combines magnitude, felt reports, and impact. Higher = more significant event.
  6. Depth matters — shallow earthquakes (< 70km) tend to cause more surface damage than deep ones.
  7. Schedule for monitoring — set up daily/hourly runs to track seismic activity over time.

Use with AI agents via MCP

USGS Earthquake Scraper is available as a tool for AI assistants via the Model Context Protocol (MCP).

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Example prompts

  • "Get recent earthquakes above magnitude 5.0"
  • "Find earthquakes near California in the past month"

Learn more in the Apify MCP documentation.

Legality

Scraping publicly available data is generally legal according to the US Court of Appeals ruling (HiQ Labs v. LinkedIn). This actor only accesses publicly available information and does not require authentication. Always review and comply with the target website's Terms of Service before scraping. For personal data, ensure compliance with GDPR, CCPA, and other applicable privacy regulations.

FAQ

Q: How current is the data? A: USGS publishes earthquake data within minutes of detection. Most events appear in the API within 5-10 minutes.

Q: Does it cover the whole world? A: Yes. USGS monitors earthquakes globally, though coverage is most detailed in the United States.

Q: What does the significance score mean? A: It combines magnitude, felt reports, estimated impact, and other factors into a 0-1000+ score. A score above 600 indicates a significant event.

Q: Does it need an API key? A: No. The USGS Earthquake API is completely free and open.

Q: The API returns an error about too many results -- what should I do? A: The USGS API limits queries to 20,000 events. If your date range and magnitude filter match more than that, narrow the date range or increase the minimum magnitude. For large datasets, split into multiple runs by time period.

Q: Why do some earthquakes show felt: null or alert: null? A: Not all earthquakes have "Did You Feel It?" reports or PAGER alert assessments. These fields are only populated for events that have been reviewed and have sufficient data. Small or remote earthquakes often lack these values.

USGS earthquake data is produced by the United States federal government and is in the public domain. The USGS Earthquake Hazards Program API is free, open, and explicitly designed for public and programmatic access with no authentication required.

The USGS data policy states that USGS-authored or -produced data and information are in the public domain and may be used freely. There are no restrictions on extracting, analyzing, or redistributing earthquake data obtained through their API.

This scraper respects USGS API query limits (20,000 events per request) and does not bypass any access controls.

Other data scrapers