Catalog / ToolMint USGS Earthquakes
ToolMint USGS Earthquakes
Query USGS earthquake.usgs.gov FDSN/GeoJSON by point+radius, bbox, or near-me summary. Normalized events with felt/tsunami flags. Public domain US government data.
Routes and prices
| Route | Price | What it does | Parameters (* required) |
|---|---|---|---|
GET /query | $0.01 | Query by point+radius or bbox; minMagnitude + time; normalized + summary | lat, lon, radiusKm, minLat, maxLat, minLon, maxLon, minMagnitude, startTime, endTime, limit |
GET /quakes | $0.01 | Alias of /query | lat, lon, radiusKm, minLat, maxLat, minLon, maxLon, minMagnitude, startTime, endTime, limit |
GET /quakes/near | $0.01 | Near-me 7-day summary | lat*, lon*, radiusKm, minMagnitude, limit |
GET /quakes/feed | $0.01 | USGS summary feed | feed*, limit |
GET /earthquakes | $0.01 | Alias of /query (alias) | lat, lon, radiusKm, minLat, maxLat, minLon, maxLon, minMagnitude, startTime, endTime, limit |
GET /quakes/bbox | $0.01 | Alias of /query (bbox) (alias) | lat, lon, radiusKm, minLat, maxLat, minLon, maxLon, minMagnitude, startTime, endTime, limit |
GET /quakes/radius | $0.01 | Alias of /query (point+radius) (alias) | lat, lon, radiusKm, minLat, maxLat, minLon, maxLon, minMagnitude, startTime, endTime, limit |
GET /near | $0.01 | Alias of /quakes/near (alias) | lat*, lon*, radiusKm, minMagnitude, limit |
GET /feed | $0.01 | Alias of /quakes/feed (alias) | feed*, limit |
Free routes: /, /health, /openapi.json, /.well-known/x402.
Try it
402 with a base64 PAYMENT-REQUIRED header carrying the exact price from the table; repeat with a PAYMENT-SIGNATURE header from any x402 client.curl -i "https://toolmint-usgs-earthquakes-json.toolmint.workers.dev/query?lat=37.77&lon=-122.42&radiusKm=200&minMagnitude=2.5&limit=25"
When to use it
- Recent or historical earthquakes around a location (
/quakes/near,/query). - Events in a lat/lon box or above a magnitude in a time window (
/query). - The latest USGS summary feeds, like "significant this week" (
/quakes/feed).
Not for: earthquake forecasting or risk scores (this is a list of recorded events), or safety-critical alerts. A search that finds nothing returns count: 0 and is still charged, because that is a real answer.
Example
curl -i "https://toolmint-usgs-earthquakes-json.toolmint.workers.dev/quakes/near?lat=37.77&lon=-122.42&radiusKm=200&minMagnitude=2.5"
Trimmed response (values illustrative):
{
"tool": "usgs-earthquakes-json",
"version": "0.1.0",
"mode": "near",
"window": "7d",
"point": { "lat": 37.77, "lon": -122.42, "radiusKm": 200 },
"minMagnitude": 2.5,
"count": 3,
"summary": {
"text": "3 events; strongest M3.1 near ...",
"feltCount": 1, "tsunamiCount": 0,
"strongest": { "id": "...", "mag": 3.1, "place": "...", "time": "2026-10-30T08:15:00.000Z" },
"byMagBucket": { "3-4.9": 1, "<3": 2 }
},
"strongest": [ "..." ],
"latest": [ "..." ],
"events": [
{
"id": "...", "mag": 3.1, "magType": "...", "place": "...",
"time": "2026-10-30T08:15:00.000Z", "updated": "...",
"lat": 37.5, "lon": -122.1, "depthKm": 8.0,
"felt": 12, "feltReported": true, "tsunami": false,
"significance": 150, "status": "reviewed", "type": "earthquake",
"cdi": null, "mmi": null, "alert": null, "url": "...", "title": "..."
}
],
"provenance": {
"source": "USGS Earthquake Hazards Program / FDSN Event API",
"sourceUrl": "https://earthquake.usgs.gov/fdsnws/event/1/query?...",
"fetched_at": "2026-10-31T12:00:00.000Z",
"license": "US Government work - public domain (USGS)",
"terms": "https://www.usgs.gov/information-policies-and-instructions/copyrights-and-credits"
},
"fetchedAt": "2026-10-31T12:00:00.000Z",
"cached": false,
"note": "Near-me summary from USGS FDSN (last 7 days). Public domain."
}
/query returns the same event fields with mode (radius, bbox or global), query, count, summary, events. /quakes/feed adds feed.
Data source and licence
USGS Earthquake Hazards Program (FDSN Event API and GeoJSON summary feeds). US Government work, public domain; see the USGS copyright and credits page. No API key. Data is preliminary and USGS revises events (status, updated).
Freshness and caching
Results can be served from a 5 minute in-memory cache (cached: true). USGS feeds update on their own schedule; fetchedAt is when we asked.
Limits
- At most 100 events per call; a larger
limitis clamped, not rejected. all_monthis a large feed (about 7 MB); it is allowed but may be slow or fail on a small Cloudflare plan (a failure is not charged).feltcounts andalertlevels come straight from USGS and are often empty.
Errors are not charged
Payment settles only on a successful answer. These responses are never settled:
| Status | Meaning (from the OpenAPI) | Charged? |
|---|---|---|
400 | Invalid input (not charged) | No |
502 | USGS upstream error (not charged) | No |