If you've ever needed earthquake data — for a mapping app, a risk model, a news feed, or just a hobby dashboard — you don't need to scrape earthquake.usgs.gov's web pages, and you don't need a paid data vendor. The USGS runs the FDSN Event Web Service, a free, keyless JSON API over its entire global earthquake catalogue, updated continuously.
No sign-up. No API key. No token. It's a public US government service and it's meant to be hit directly.
The base
https://earthquake.usgs.gov/fdsnws/event/1/query
Ask for GeoJSON and you get a standard FeatureCollection — one Feature per earthquake, each with a geometry.coordinates ([longitude, latitude, depthKm]) and a properties object carrying everything else:
curl "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2026-07-01&minmagnitude=4.5&limit=5"
Each feature's properties block includes mag, magType, place, time / updated (epoch ms), tsunami (0/1 flag), alert (PAGER level: green/yellow/orange/red), sig (significance score), felt (number of "did you feel it?" reports), cdi/mmi (intensity), status (automatic/reviewed), type (earthquake, quarry blast, …), plus a detail URL for the full per-event record.
Filtering
| Param | Meaning | Example |
|---|---|---|
starttime / endtime
|
Time window, ISO or YYYY-MM-DD
|
starttime=2026-07-01&endtime=2026-07-27 |
minmagnitude / maxmagnitude
|
Magnitude range | minmagnitude=5.0 |
minlatitude/maxlatitude/minlongitude/maxlongitude
|
Bounding-box search | minlatitude=32&maxlatitude=42&minlongitude=-125&maxlongitude=-114 |
latitude/longitude/maxradiuskm
|
Circle search around a point | latitude=35.4&longitude=139.7&maxradiuskm=200 |
mindepth / maxdepth
|
Depth range, km | maxdepth=70 |
alertlevel |
PAGER alert filter | alertlevel=orange |
orderby |
time, time-asc, magnitude, magnitude-asc
|
orderby=magnitude |
format |
geojson (recommended), csv, xml, text
|
format=geojson |
Examples
# Every M4.5+ quake in the last window, newest first
curl "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&minmagnitude=4.5&orderby=time"
# California bounding box, this month
curl "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2026-07-01&minlatitude=32&maxlatitude=42&minlongitude=-125&maxlongitude=-114"
# Within 200km of Tokyo, magnitude 5+
curl "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&latitude=35.4&longitude=139.7&maxradiuskm=200&minmagnitude=5"
# Only quakes that triggered a PAGER alert (orange/red = significant humanitarian impact)
curl "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&alertlevel=orange"
There's also a rolling set of pre-built summary feeds if you just want "what's happening right now" without building a query — https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/{significant,4.5,2.5,1.0,all}_{hour,day,week,month}.geojson — e.g. .../summary/4.5_day.geojson for every M4.5+ quake in the last 24 hours. Same GeoJSON shape as the query endpoint, refreshed every few minutes.
Notes & gotchas
- Keyless, no rate-limit registration — just be reasonable with request volume; it's a shared public service.
-
format=geojsonis the easiest to work with;format=textgives a pipe-delimited feed if you want something grep-friendly. -
statusstarts asautomaticright after an event and flips toreviewedonce a seismologist confirms it — for anything safety-critical, filter onstatus=reviewedor expect revisions. - Depth and magnitude type (
magType) vary by network —mww,ml,mbetc. aren't directly comparable across all ranges; don't average them naively. - Circle search (
latitude/longitude/maxradiuskm) and bounding-box search are mutually exclusive — pick one.
Related
Full endpoint reference + copy-paste table: noble-ronin/usgs-earthquake-api on GitHub.
Want the filtered rows without building the query string yourself? The Earthquake Data Scraper on Apify wraps this same endpoint — set magnitude/time/bbox in a form, get clean rows out, schedule it as a live alert feed.


Top comments (0)