Earthquake Data API - USGS Live Feed, Magnitude and Depth
Pricing
from $2.22 / 1,000 earthquake returneds
Earthquake Data API - USGS Live Feed, Magnitude and Depth
For alerting bots, risk dashboards and hazard maps: worldwide earthquakes from the USGS's own API with magnitude, depth, tsunami flag, alert level and felt reports. Timestamps arrive as ISO, not Unix milliseconds, and latitude and longitude as named fields. US public domain, no API key.
Pricing
from $2.22 / 1,000 earthquake returneds
Rating
0.0
(0)
Developer
NeverEmpty
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
For threshold alerting near a location, maps and dashboards, risk and insurance modelling, research, and feeding an AI agent authoritative seismic data: worldwide earthquakes straight from the US Geological Survey's own API — magnitude, depth, location, tsunami flag, felt reports and USGS's own significance score, as flat rows.
It never hands you an empty dataset by default. Run it with no input at all and you get the last 7 days at magnitude 2.5 and above — 451 earthquakes when measured on 2026-08-25 — because quakes that size happen worldwide every day. Up to 20,000 events per run, the USGS ceiling.
Two things the raw feed gets wrong are fixed before the row reaches you. USGS returns 1787587104573 (Unix milliseconds); every row here carries 2026-08-24T15:58:24.573Z instead, so a spreadsheet, a database and a chart all understand it with no conversion step. And GeoJSON stores coordinates as [longitude, latitude, depth] — longitude first, which puts earthquakes on the wrong side of the planet when read in order. Here they arrive as named latitude, longitude and depthKm fields.
USGS data is a work of the US government: public domain, no API key, no proxies, no terms that forbid redistribution. Nothing here parses HTML, so nothing here breaks when a website is redesigned. Export as JSON, CSV or Excel.
Three things this does that the raw feed does not
1. Readable timestamps. USGS returns 1787587104573 — Unix milliseconds. Every row here carries 2026-08-24T15:58:24.573Z instead, so your spreadsheet, database and charts understand it without a conversion step.
2. Latitude and longitude in the fields you expect. GeoJSON stores coordinates as [longitude, latitude, depth] — longitude first. That order catches people out and puts earthquakes on the wrong side of the planet. Here they arrive as named latitude, longitude and depthKm fields.
3. Real booleans. The tsunami flag comes back as 0 / 1 from USGS. Here it is true / false — and stays null when USGS gave no value, rather than silently becoming false.
What you get
| Field | Example |
|---|---|
id | us6000tn4t |
time / updated | 2026-08-24T15:58:24.573Z |
magnitude / magnitudeType | 2.6 / mb_lg |
place | 11 km ENE of Pleasant Hill, Louisiana |
latitude / longitude / depthKm | 31.8417 / -93.3902 / 7.364 |
tsunami | false |
feltReports | 2 — how many people reported feeling it |
alertLevel | green / yellow / orange / red, or null |
significance | 105 — USGS's own importance score |
status | reviewed / automatic |
url | The USGS event page |
One real row, exactly as written
{"id": "us6000tn4t","time": "2026-08-24T15:58:24.573Z","updated": "2026-08-24T16:22:17.322Z","magnitude": 2.6,"magnitudeType": "mb_lg","place": "11 km ENE of Pleasant Hill, Louisiana","latitude": 31.8417,"longitude": -93.3902,"depthKm": 7.364,"tsunami": false,"feltReports": 2,"alertLevel": null,"significance": 105,"status": "reviewed","network": "us","url": "https://earthquake.usgs.gov/earthquakes/eventpage/us6000tn4t","source": "USGS earthquake.usgs.gov (official, public domain)"}
Input
Everything is optional. Run it with no input and you get the last 7 days at magnitude 2.5 and above — 451 earthquakes when measured on 2026-08-25, because quakes that size happen worldwide every day. The default never returns an empty dataset.
{"daysBack": 7,"minMagnitude": 4.5,"latitude": 35.6,"longitude": 139.7,"radiusKm": 500,"orderBy": "magnitude"}
| Field | Default | Meaning |
|---|---|---|
daysBack | 7 | How far back, when no explicit start date is given |
startTime / endTime | empty | Explicit YYYY-MM-DD range. Overrides daysBack |
minMagnitude | 2.5 | Only quakes at or above this magnitude |
latitude / longitude / radiusKm | none | Area filter. All three are required together — the Actor tells you in the log if you set only some, instead of failing with an unexplained error |
limit | 1000 | Up to 20,000 per run (the USGS ceiling) |
orderBy | time | time = newest first, magnitude = strongest first |
maxRetries | 3 | Retries if USGS returns an error or something that is not JSON |
Typical uses
- Monitoring and alerting when a quake crosses a magnitude threshold near a location
- Maps, dashboards and news tickers
- Historical analysis and research
- Risk and insurance modelling
- Feeding an AI agent that needs authoritative seismic data
FAQ
Does it cover the whole world? Yes. USGS publishes global seismicity, not just the United States.
How current is it?
Fetched live on every run. USGS updates continuously; status tells you whether a record is automatic (machine-detected) or reviewed (checked by a seismologist).
Do I need an API key? No. Neither for USGS nor for a proxy.
What if no earthquakes match? You get zero rows and a clear log line saying the fetch succeeded but nothing matched — not an error, and not a silent blank.
Can I search a specific city?
Pass its latitude, longitude and a radiusKm. All three together.
Other tools by NeverEmpty
Every NeverEmpty Actor follows the same rule: it never returns an empty result to mean two different things, and it only charges for rows that actually carry an answer.
- us-weather-forecast-api - US forecasts from the official National Weather Service API
- sports-scores-api - scores for 8 leagues in one identical row shape
Support
Wrong value or a filter that should work but does not? Open an issue on the Issues tab.