USGS Earthquake Data Scraper icon

Developer tools · News & feeds

USGS Earthquake Data Scraper — FDSN Event Feed

Query USGS's public FDSN earthquake catalog by time window, magnitude, depth, bounding box, or radius and export flat, typed rows — magnitude, location, depth, significance, alert level, tsunami flag, and felt reports — no raw GeoJSON to hand-parse.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

USGS's public FDSN event web service (earthquake.usgs.gov/fdsnws/event/1/query) — the same catalog that feeds USGS's own earthquake map. Every event in scope carries magnitude, exact location, depth, significance score, PAGER alert level, tsunami flag, and community felt-report data (CDI/MMI), flattened into one typed row.

What we handle for you

  • Full FDSN parameter surface — magnitude, depth, and time filters,
  • Every risk field on every rowalert, tsunami, sig, felt,
  • Flat, typed output — a fixed schema (event_id, magnitude,
  • 🛡️ We rotate browser fingerprints (curl-cffi impersonation across
  • 🔁 We retry with exponential backoff on 408/429/5xx and honour
  • 🧱 We never crash on a bad record. A malformed event is skipped with
  • 🧊 A zero-match search still succeeds. A narrow filter combination

Use cases

  • Catastrophe-risk and reinsurance monitoring — pull every event above
  • Geotech and infrastructure risk dashboards — track seismic activity
  • News-desk earthquake alerting — poll a rolling time window and
  • Research and academic datasets — build a clean, reproducible seismic

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
starttime string yes Earliest event time (inclusive). Accepts YYYY-MM-DD or full ISO-8601, passed through to USGS unchanged.
endtime string yes Latest event time (inclusive). Accepts YYYY-MM-DD or full ISO-8601, passed through to USGS unchanged.
minmagnitude number no Only events at or above this magnitude.
maxmagnitude number no Only events at or below this magnitude.
mindepth number no Only events at or below this depth in kilometers (deeper = larger value).
maxdepth number no Only events at or above this depth in kilometers.
minlatitude number no Bounding-box filter. Must be set together with Max latitude, Min longitude, and Max longitude — all four or none.
maxlatitude number no Bounding-box filter. Must be set together with Min latitude, Min longitude, and Max longitude — all four or none.
minlongitude number no Bounding-box filter. Must be set together with Min latitude, Max latitude, and Max longitude — all four or none.
maxlongitude number no Bounding-box filter. Must be set together with Min latitude, Max latitude, and Min longitude — all four or none.
latitude number no Radius-search center. Must be set together with Center longitude and Max radius (km) — all three or none.
longitude number no Radius-search center. Must be set together with Center latitude and Max radius (km) — all three or none.
{
  "starttime": "2026-08-03",
  "endtime": "2026-09-02",
  "minmagnitude": 4.5
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

event_idmagnitudemagnitude_typeplaceevent_timeupdated_timelongitudelatitudedepth_kmalert_leveltsunamisignificancefelt_reportscdimmistatus

{
  "event_id": "us7000td6k",
  "magnitude": 4.8,
  "magnitude_type": "mb",
  "place": "176 km SE of Gizo, Solomon Islands",
  "event_time": "2026-08-30T02:00:29.055Z",
  "updated_time": "2026-08-30T02:28:22.040Z",
  "longitude": 158.1558,
  "latitude": -9.0154,
  "depth_km": 10.0,
  "alert_level": null,
  "tsunami": false,
  "significance": 354,
  "felt_reports": null,
  "cdi": null,
  "mmi": null,
  "status": "reviewed",
  "event_type": "earthquake",
  "title": "M 4.8 - 176 km SE of Gizo, Solomon Islands",
  "event_url": "https://earthquake.usgs.gov/earthquakes/eventpage/us7000td6k",
  "network": "us"
}

Pricing

EventPriceWhen
Actor start$0.05Once per run, covers warm-up and proxy session setup.
Result emitted$0.0020Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • USGS's FDSN endpoint caps a single page at 20 000 events and this Actor
  • The /count pre-flight endpoint and the per-event detail endpoint
  • eventtype, catalog, contributor, and a handful of other long-tail

FAQ

Can I combine a bounding box and a radius search in the same run?
No — USGS treats them as alternative location filters, so set one or the other, not both, in a single run.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run