USGS API: List significant earthquakes
Lists significant worldwide earthquakes for the past day, week, or month, newest first, with USGS PAGER alert levels and impact summaries when USGS provides them.
Unofficial. Not affiliated with or endorsed by USGS.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Period optional
period Time period to list, for example past_week.
past_week
One of
past_day,past_week,past_month. Defaultpast_week.
Input as JSON
{ "period": "past_week"}Output
{ "earthquakes": [ { "time": "2026-10-22T14:33:40.353000Z", "event_id": "us6000u43g", "latitude": 32.3805, "location": "191 km ENE of Nagqu, China", "longitude": 93.7797, "magnitude": 7, "alert_level": "orange", "details_link": "https://earthquake.usgs.gov/earthquakes/eventpage/us6000u43g" , "felt_reports": 6, "alert_meaning": "significant damage and deaths likely", "tsunami_alert": "no", "estimated_impact_summary": "Orange alert for economic losses. Significant damage is likely and the disaster is potentially widespread. Estimated economic losses are less than 1% of GDP of China. Past events with this alert level have required a regional or national level response. Yellow alert for shaking-related fatalities. S…" }, { "time": "2026-10-20T04:20:38.737000Z", "event_id": "us6000u3jl", "latitude": -13.9906, "location": "197 km NW of Port-Olry, Vanuatu", "longitude": 165.5892, "magnitude": 6.3, "alert_level": "green", "details_link": "https://earthquake.usgs.gov/earthquakes/eventpage/us6000u3jl" , "felt_reports": 1, "alert_meaning": "little or no damage expected", "tsunami_alert": "yes", "estimated_impact_summary": "Green alert for shaking-related fatalities and economic losses. There is a low likelihood of casualties and damage." }, { "time": "2026-10-17T05:06:57.657000Z", "event_id": "us6000u2y1", "latitude": 28.0179, "location": "48 km WNW of Khuzdar, Pakistan", "longitude": 66.1708, "magnitude": 5.7, "alert_level": "yellow", "details_link": "https://earthquake.usgs.gov/earthquakes/eventpage/us6000u2y1" , "felt_reports": 2, "alert_meaning": "some damage and deaths possible", "tsunami_alert": "no", "estimated_impact_summary": "Yellow alert for shaking-related fatalities and economic losses. Some casualties and damage are possible and the impact should be relatively localized. Past yellow alerts have required a local or regional level response. Estimated economic losses are less than 1% of GDP of Pakistan." } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"earthquake.usgs.gov/list_significant_earthquakes","input":{"period":"past_week"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "earthquake.usgs.gov/list_significant_earthquakes" , "input": { "period": "past_week" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "earthquake.usgs.gov/list_significant_earthquakes" , "input": { "period": "past_week" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run earthquake.usgs.gov/list_significant_earthquakes# with {"period":"past_week"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [], "properties": { "period": { "enum": [ "past_day", "past_week", "past_month" ], "type": "string", "default": "past_week", "description": "Time period to list, for example past_week." } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "earthquakes" ], "properties": { "earthquakes": { "type": "array", "items": { "type": "object", "required": [ "magnitude", "location", "time", "alert_level", "alert_meaning", "tsunami_alert", "felt_reports", "estimated_impact_summary", "details_link", "event_id", "latitude", "longitude" ], "properties": { "time": { "type": [ "string", "null" ], "description": "Earthquake time in UTC, ISO 8601." }, "event_id": { "type": "string", "description": "USGS event ID." }, "latitude": { "type": [ "number", "null" ], "description": "Epicenter latitude in degrees." }, "location": { "type": [ "string", "null" ], "description": "Location in words." }, "longitude": { "type": [ "number", "null" ], "description": "Epicenter longitude in degrees." }, "magnitude": { "type": [ "number", "null" ], "description": "Earthquake magnitude." }, "alert_level": { "type": [ "string", "null" ], "description": "USGS PAGER alert level, when available." }, "details_link": { "type": "string", "description": "USGS event details page." }, "felt_reports": { "type": [ "integer", "null" ], "description": "Number of public felt reports, when available." }, "alert_meaning": { "type": [ "string", "null" ], "description": "Expected damage and deaths for this alert level." }, "tsunami_alert": { "enum": [ "yes", "no", null ], "type": [ "string", "null" ], "description": "Whether the event has a tsunami alert flag." }, "estimated_impact_summary": { "type": [ "string", "null" ], "description": "USGS estimated impacts when a PAGER summary is available." } }, "additionalProperties": false }, "description": "Significant earthquakes sorted newest first." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
earthquake.usgs.gov/list_significant_earthquakes- Returns
- magnitude, location, time, alert level, tsunami flag, felt reports, estimated impact summary, coordinates, event ID, details link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method earthquake.usgs.gov/list_significant_earthquakes with the inputs above.
Ask your agent
- Show me the significant earthquakes from the last 24 hours worldwide, newest first, with alert levels.
- Which major earthquakes have struck around the world this past week? I need magnitudes, locations, and whether a tsunami was flagged.
- List the USGS significant quakes from the past month along with their PAGER impact estimates.
- Any big earthquakes recently? Give me the times, coordinates, and felt report counts for the last week.
- What significant seismic events were recorded globally over the past month, and what were their estimated impact summaries?
See more
All USGS methodsFinds recent USGS earthquakes near a city, address, or region, with distances and times in the searched place's time zone.
earthquake.usgs.gov/search_earthquakesGets the latest water height, flow, 24-hour trend and flood-stage status at the active USGS river gauge best matching a river or town and state. Flood stage is null when not published; gauges without recent stage, flow or 24-hour history are not returned.
waterdata.usgs.gov/get_river_levelList EONET natural events with latest observations in the past number of days, most recent first. A country or region filter matches reported event locations against mapped boundaries; locations and ongoing status are approximate, and not all events have a reported size or strength.
nasa.gov/list_natural_eventsLists active US weather watches, warnings and advisories for a city, address, ZIP code or state, most severe first, then newest.
weather.gov/list_weather_alertsLists active InciWeb fire incidents in a US state, newest table updates first, with size, containment, location, cause, dates and any evacuation or closure note. Prescribed fires and other fire-related incidents can appear.
inciweb.wildfire.gov/list_active_wildfiresLists NOAA space weather alerts, warnings, watches and summaries issued in the last 1 to 7 days, newest first, with validity times and NOAA scale levels when the message gives them.
swpc.noaa.gov/list_space_weather_alertsLists federal disaster declarations in a US state. You can narrow the list by county, declaration date and incident category. Each disaster comes back with all of its designated counties.
fema.gov/list_disaster_declarationsLists Google Trends 'Trending now' searches for a country, time window and category, in Google's order. Each search comes with its volume, activity, related searches and news headlines.
trends.google.com/list_trending_searches