ParseForge Scrapers

USGS Earthquake Data Scraper

parseforge/usgs-earthquake-scraper

Developer toolsAutomationOther

Scrapes earthquake events from the USGS Earthquake Catalog by time range or custom date range, filtered by minimum magnitude. Returns each event as a flat row with magnitude, depth, location, and timestamp.

Run this scraper See the API call
Total users
2
Monthly active
0
Total runs
156
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

USGS Earthquake Data Scraper

Scrape USGS earthquake data by time range, magnitude, or custom date range, up to a million events per run. Each earthquake comes with its magnitude, depth, location, and timestamp. No API key required. Export to CSV, JSON, Excel, or XML.

The USGS Earthquake Hazards Program publishes real-time and historical earthquake data, but the official API limits you to 20,000 events per query and requires pagination for larger datasets. This Actor reads the public feeds directly, filters by magnitude and time range, and returns each event in one fixed schema. No registration, no API key, no rate limits.

Who uses it What they scrape USGS Earthquake Catalog for
Seismologists and researchers Building a local earthquake catalog for a specific region and time period
Insurance risk analysts Assessing seismic exposure for properties in earthquake-prone areas
Emergency managers Monitoring recent seismic activity for situational awareness
Data journalists Analyzing earthquake patterns for news stories and visualizations
Real estate developers Evaluating seismic risk for potential construction sites

What it does

This Actor collects earthquake events from the USGS Earthquake Catalog by time range or custom date range, filtered by minimum magnitude, and returns each event as a flat row.

  • โฑ๏ธ Time range presets: last hour, last day, last week, or last month (30 days).
  • ๐Ÿ“… Custom date range: set exact start and end times in ISO 8601 format for historical analysis.
  • ๐Ÿ“Š Magnitude filter: only return earthquakes at or above a specified magnitude, from 0 to 10.
  • ๐Ÿ”ข Maximum items: cap the number of events per run, from 1 to 1,000,000.
  • ๐Ÿ“„ Flat output: each earthquake is a single row with magnitude, depth, location, and timestamp.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with USGS Earthquake Catalog data

๐Ÿ“ˆ Seismic risk assessment.

An insurance analyst runs the Actor for the last 30 days with a minimum magnitude of 4.0 to identify recent significant earthquakes near insured properties.

๐Ÿ” Historical earthquake research.

A seismologist sets a custom date range from 2010 to 2020 and a minimum magnitude of 5.0 to build a dataset of moderate-to-large events for a regional study.

๐Ÿšจ Emergency monitoring.

An emergency manager runs the Actor every hour with a minimum magnitude of 3.0 to get a real-time feed of potentially damaging earthquakes for public alerts.

๐Ÿ“ฐ Data journalism.

A reporter scrapes the last week of earthquakes with no magnitude filter to create a map of all seismic activity for a news story.

๐Ÿ—๏ธ Site selection.

A real estate developer queries the last month with a minimum magnitude of 2.5 to assess seismic activity near a potential construction site.

Why choose this scraper

What you get
No API key Uses the public USGS feeds directly, no registration or authentication required.
Up to 1M events Collect up to a million earthquakes per run, far beyond the official API's 20,000 limit.
Historical data Query any date range back to the start of the USGS catalog.
Fixed schema Every event returns the same fields, ready for analysis or export.

How it compares

This Actor focuses on simple time and magnitude filtering with high volume limits, while competitors offer geographic filters or additional alert data.

Feature ParseForge USGS Earthquake Data Scraper USGS Earthquake Data Scraper USGS Earthquake Scraper - Seismic Data & Alerts API
Time range presets Yes Not listed Not listed Not listed
Custom date range Yes Yes Yes Yes
Minimum magnitude filter Yes Yes Yes Yes
Geographic bounding box or radius filter Not listed Yes Yes Yes
Tsunami alerts and felt reports Not listed Not listed Yes Yes
PAGER alert level filter Not listed Not listed Not listed Yes
Maximum items up to 1,000,000 Yes Not listed Not listed Not listed

Configure the run

Drive the Actor from time range presets or a custom date range, and filter by minimum magnitude so only relevant earthquakes reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10,
  "timeRange": "last_day",
  "minMagnitude": 2.5
}

A larger pull:

{
  "maxItems": 200,
  "timeRange": "last_day",
  "minMagnitude": 2.5
}

Pricing

Pay-per-result: $0.0018 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $0.18
1,000 results $1.80
10,000 results $18.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the USGS Earthquake Data Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to USGS Earthquake Catalog through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/usgs-earthquake-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your minimum magnitude filter. If it is set too high, there may be no earthquakes of that size in your selected time range. Also ensure your custom date range is valid and the start time is before the end time.

Why did I get fewer results than maxItems?

maxItems is an upper limit, not a target. The Actor returns all matching earthquakes up to that number. If fewer events match your filters, you will get fewer results.

How do I use a custom date range?

Set both startTime and endTime in ISO 8601 format, for example 2024-01-01 and 2024-01-31. When both are set, they override the timeRange preset.

Can I get earthquakes from a specific country or region?

This Actor does not support geographic filtering. You can filter the output dataset by location fields after the run, or use a different Actor that supports bounding boxes.

Why is my run taking a long time?

Large time ranges with a low minimum magnitude can return many events. Increase the minimum magnitude or reduce the time range to speed up the run.

FAQ

Question Answer
Do I need an API key to use this Actor? No. The Actor reads the public USGS earthquake feeds directly, so no registration or API key is required.
What is the maximum number of earthquakes I can get per run? You can set maxItems up to 1,000,000. The actual number returned depends on how many events match your filters in the selected time range.
Can I get historical earthquake data? Yes. Use the custom date range fields to specify any start and end time in ISO 8601 format. The USGS catalog goes back many decades.
What does the minimum magnitude filter do? It only returns earthquakes with a magnitude equal to or greater than the value you set. Set it to 0 to get all earthquakes, including microseisms.
What time range presets are available? Last hour, last day, last week, and last month (30 days). If you set a custom date range, it overrides the preset.
What format are the results in? The Actor returns a flat dataset where each row is one earthquake. You can export it to CSV, JSON, Excel, or XML from the Apify platform.
Does this Actor include tsunami alerts or felt reports? The Actor returns the standard USGS feed fields, which include magnitude, depth, location, and timestamp. Tsunami and felt report data are not included in the basic feed.
Can I filter by geographic location? This Actor does not support geographic bounding box or radius filters. It filters by time range and magnitude only.
How often is the USGS data updated? The USGS feeds are updated in near real-time, typically within minutes of an earthquake occurring. The Actor fetches the latest data on each run.
Is there a limit on how many runs I can do? No, you can run the Actor as often as you like. Each run counts toward your Apify platform usage.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. Geological Survey. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer Maximum number of earthquakes to collect per run. 10
timeRange string (4 options) Pre-built feed time range. Ignored if Custom Date Range is set. last_day
minMagnitude number Only return earthquakes at or above this magnitude. 0 = all earthquakes. 2.5
startTime string Custom date range start (ISO 8601, e.g. 2024-01-01 or 2024-01-01T00:00:00). Overrides Time Range. not set
endTime string Custom date range end (ISO 8601, e.g. 2024-01-31 or 2024-01-31T23:59:59). not set

Pricing

from $0.81 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.00081 to $0.0009
result details Detailed result enrichment for a single record. $0.00162 to $0.0018

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~usgs-earthquake-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run USGS Earthquake Data Scraper on Apify All scrapers