Usgs Earthquake Scraper
Pricing
Pay per event
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
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
- Open USGS Earthquake Scraper in Apify Console.
- Set a start date and optionally an end date for the time range.
- Choose a minimum magnitude (e.g., 5.0 for significant earthquakes).
- Click Start to run the scraper.
- View results in the Dataset tab -- each earthquake includes magnitude, location, depth, coordinates, and tsunami alerts.
- 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:
| Event | Price |
|---|---|
| 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
| Parameter | Type | Description | Default |
|---|---|---|---|
startTime | string | Start date (YYYY-MM-DD) | Required |
endTime | string | End date (YYYY-MM-DD) | Today |
minMagnitude | number | Minimum magnitude (0-10) | 4.0 |
maxMagnitude | number | Maximum magnitude (0-10) | - |
minDepth | number | Minimum depth in km | - |
maxDepth | number | Maximum depth in km | - |
alertLevel | string | PAGER alert: green, yellow, orange, red | Any |
maxResults | integer | Maximum 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?
| Field | Type | Description |
|---|---|---|
id | string | USGS event identifier |
title | string | Event summary (magnitude + location) |
magnitude | number | Earthquake magnitude |
magnitudeType | string | Magnitude type (mww, mb, ml, etc.) |
place | string | Location description |
time | string | Event time (ISO 8601) |
latitude | number | Epicenter latitude |
longitude | number | Epicenter longitude |
depth | number | Depth in kilometers |
tsunami | boolean | Whether a tsunami warning was issued |
alert | string | PAGER alert level (green/yellow/orange/red) |
significance | number | Significance score (0-1000+) |
felt | number | Number of felt reports |
cdi | number | Community Determined Intensity |
mmi | number | Modified Mercalli Intensity |
status | string | Review status (automatic/reviewed) |
type | string | Event type (earthquake, quarry blast, etc.) |
url | string | USGS event page URL |
scrapedAt | string | ISO timestamp of extraction |
Using the Apify API
Python
from apify_client import ApifyClientclient = 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
- Use date ranges — always specify
startTimeto avoid pulling the entire earthquake catalog. - Magnitude filtering — M4+ captures moderate earthquakes; M5+ for significant ones; M6+ for major events.
- Tsunami flag — the
tsunamifield indicates whether a tsunami advisory was issued, not whether one occurred. - Alert levels — PAGER alerts (green/yellow/orange/red) indicate estimated impact severity.
- Significance score — combines magnitude, felt reports, and impact. Higher = more significant event.
- Depth matters — shallow earthquakes (< 70km) tend to cause more surface damage than deep ones.
- 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.
Is it legal to scrape USGS earthquake data?
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
- USDA FoodData Central Scraper -- scrape USDA nutrition data for 300,000+ foods
- OpenFoodFacts Scraper -- scrape the Open Food Facts database
- Open Meteo Scraper -- get weather and forecast data
- REST Countries Scraper -- extract country data including population and area
- World Bank Scraper -- scrape World Bank economic indicators