Earthquake Search
Search the USGS earthquake catalogue by magnitude, dates and distance from a place: magnitude, location, time, depth, tsunami flag, alert level and event page.
usgs-earthquake-search Example
{
"min_magnitude": 5,
"limit": 5
} {
"count": 1,
"filters": {
"order": "time",
"end_time": null,
"latitude": null,
"longitude": null,
"start_time": "2026-08-05",
"max_magnitude": null,
"max_radius_km": null,
"min_magnitude": 5
},
"earthquakes": [
{
"id": "us7000te9t",
"url": "https://earthquake.usgs.gov/earthquakes/eventpage/us7000te9t",
"time": "2026-09-04T11:59:58.323Z",
"place": "Kermadec Islands region",
"status": "reviewed",
"updated": "2026-09-04T12:19:40.040Z",
"depth_km": 10,
"latitude": -28.5616,
"longitude": -176.6452,
"magnitude": 5.4,
"event_type": "earthquake",
"alert_level": null,
"felt_reports": null,
"significance": 449,
"magnitude_type": "mww",
"tsunami_warning": false
}
]
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
limit | integer | No | Events to return, 1-100. Default: 20 |
order | string | No | time (newest first, default) or magnitude (largest first) |
end_time | string | No | Latest event time, ISO date or datetime |
latitude | number | No | Centre latitude for a radius search (requires longitude) |
longitude | number | No | Centre longitude for a radius search (requires latitude) |
start_time | string | No | Earliest event time, ISO date or datetime. Default: 30 days ago |
max_magnitude | number | No | Maximum magnitude |
max_radius_km | number | No | Search radius around the centre in km. Default: 500 |
min_magnitude | number | No | Minimum magnitude. Default: 4.5 |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
count | number | Always (present in every successful answer) |
filters | object | Always (present in every successful answer) |
earthquakes | array | Always (present in every successful answer) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "usgs-earthquake-search",
"inputs": {
"min_magnitude": 5,
"limit": 5
},
"max_price_cents": 2
}' {
"tool": "strale_execute",
"arguments": {
"slug": "usgs-earthquake-search",
"inputs": {
"min_magnitude": 5,
"limit": 5
},
"max_price_cents": 2
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "usgs-earthquake-search",
inputs: {
"min_magnitude": 5,
"limit": 5
},
max_price_cents: 2,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="usgs-earthquake-search",
inputs={
"min_magnitude": 5,
"limit": 5,
},
max_price_cents=2,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i -X POST https://api.strale.io/x402/v2/usgs-earthquake-search \
-H 'Content-Type: application/json' \
-d '{
"min_magnitude": 5,
"limit": 5
}' Limitations
Magnitudes and locations can change after an event
USGS publishes automatic solutions first and reviewed ones later; status distinguishes them and magnitude can change by a few tenths.
What to do instead: Re-query later for reviewed values; treat status=automatic as provisional.
Small-event coverage is sparse outside the US
Below roughly magnitude 4.5 the catalogue is complete for the US and sparse elsewhere.
What to do instead: Keep min_magnitude at 4.5 or above for global comparisons.
Related tools
- Address Geocoding €0.02
- Barcode Lookup €0.05
- Container Tracking €0.05
- Country Lookup €0.02
- Country Tax Rates €0.02
- Country Trade Data €0.20