GeoSentinel polls the USGS FDSN Event API every three minutes to ingest significant seismic events worldwide. The US Geological Survey publishes a near-real-time GeoJSON feed of earthquake detections from its global seismograph network — the most reliable public source for rapid earthquake notification. GeoSentinel applies a minimum magnitude filter of 4.0 to eliminate microseismicity and focus on events likely to cause structural impact or human casualties. No API key is required; the USGS feed is a fully public, domain-licensed government resource.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/danizd/GeoSentinel/llms.txt
Use this file to discover all available pages before exploring further.
What USGS Provides
The USGS FDSN (Federation of Digital Seismograph Networks) web service delivers GeoJSONFeatureCollection objects where each Feature represents a seismic event. Key fields per event:
properties.time— epoch milliseconds of the origin time (UTC)properties.mag— moment magnitude (Richter scale)properties.type— event type:earthquake,explosion,quarry blast,ice quake,sonic boomproperties.place— human-readable location description (e.g. “15 km SSE of Pátzcuaro, Mexico”)properties.ids— comma-separated list of authoritative IDs for the event (used for deduplication)properties.url— USGS event detail pageproperties.horizontalError— horizontal location uncertainty in kmgeometry.coordinates—[longitude, latitude, depth_km]
API Details
| Property | Value |
|---|---|
| Base URL | https://earthquake.usgs.gov/fdsnws/event/1/query |
| Format | format=geojson |
| Auth | None — public feed |
| Polling interval | Every 180 seconds (3 minutes) |
| Minimum magnitude | minmagnitude=4.0 |
| Default lookback | 5 minutes per poll |
_build_url() looks like:
Magnitude Filter
Theminmagnitude=4.0 filter is applied at the API level — the USGS server returns only events at or above this threshold. Magnitude 4.0 is the approximate lower bound where an earthquake becomes widely felt and may cause minor structural damage. Events below this threshold are considered microseismicity and are not ingested.
Event Type Mapping
The mapper inusgs_mapper.py translates USGS properties.type to GeoSentinel internal event types:
USGS type | Internal event_type | Category |
|---|---|---|
earthquake | earthquake | DISASTER_NATURAL |
explosion | explosion_seismic | DISASTER_NATURAL |
quarry blast | quarry_blast | DISASTER_NATURAL |
ice quake | ice_quake | DISASTER_NATURAL |
sonic boom | sonic_boom | DISASTER_NATURAL |
| (unknown) | earthquake | OTHER |
event_type = "earthquake" but are assigned category = OTHER to avoid contaminating natural disaster metrics with uncategorized events.
Severity Mapping
Severity (0–10) is derived from the moment magnitude using a stepped table. The mapper appliesmath.ceil() to the raw magnitude before table lookup — a magnitude 5.8 event is treated as magnitude 6 for severity purposes, reflecting a conservative upward rounding:
| Moment magnitude (ceiled) | Severity |
|---|---|
| ≤ 3.0 (ceiled: 1–3) | 1.0 |
| 3.1–4.0 (ceiled: 4) | 2.0 |
| 4.1–5.0 (ceiled: 5) | 4.0 |
| 5.1–6.0 (ceiled: 6) | 6.0 |
| 6.1–7.0 (ceiled: 7) | 8.0 |
| > 7.0 (ceiled: ≥ 8) | 10.0 |
Confidence Score
All USGS events are assigned a fixed confidence of8.0 — reflecting the highly reliable, sensor-based nature of seismograph data operated by a federal scientific agency. USGS does not publish per-event confidence scores.
Deduplication
USGS events are deduplicated using the first ID in theproperties.ids comma-separated list:
ids is the primary authoritative identifier. If ids is empty, the GeoJSON feature’s top-level id field is used as a fallback.
Coordinate Extraction
GeoJSON coordinates arrive as[longitude, latitude, depth_km] — note the longitude-first GeoJSON convention, which the mapper handles explicitly:
source_refs as "depth: {depth_km} km".
Source References
Each normalized USGS event includes location context insource_refs:
Independence Class
USGS is classified assensor — carrying a ×2.0 confidence weight during incident aggregation. Seismographic data is a direct physical measurement from scientific instrumentation with no editorial layer. See Independence Classes.
Retry and Backoff
The ingestor retries up to 5 times with exponential backoff (base 2, cap 60 seconds). The poll window useslookback_hours if provided, otherwise defaults to a 5-minute window aligned to the polling interval:
Running the Ingestor
The USGS feed is entirely free and has no rate limit documented for the GeoJSON endpoint. GeoSentinel’s 3-minute polling interval is well within normal usage. No API key registration is required.
