Search USGS and EMSC seismic data — real-time feeds, event queries, and earthquake counts.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Count matches without event records, or size an earthquake_search_events query. Omitting start_time uses 30 days; pass explicit bounds for historical periods. queryEcho reports applied filters/window; ignoredFilters names unsupported EMSC inputs. Circle and independently optional box edges intersect. Both catalogs include non-tectonic events; event_type="earthquake" excludes them on USGS. exceeds_limit marks the 20,000-event single-request threshold, not a retrieval ceiling: search supports offset paging beyond it. max_allowed is 20,000 for USGS, null for EMSC.
Data source. Both catalogs are global. "usgs" covers global events with PAGER, DYFI, and ShakeMap metadata. "emsc" is an independent global catalog operated by the European-Mediterranean Seismological Centre — use it to cross-check a count from a separate network. It has no PAGER, DYFI, or ShakeMap metadata; its station coverage is densest around Europe and the Mediterranean, so counts of small events differ most by region.
End of time range as ISO 8601, in the same forms start_time accepts. Date-only values mean midnight at the start of the named day, not the whole day. Defaults to current time if omitted.
Latitude for radius search. Requires longitude and radius_km.
Minimum number of DYFI (Did You Feel It?) reports. Use to count events with confirmed public impact. Only available from USGS.
Longitude for radius search. Requires latitude and radius_km.
Search radius in kilometers from the lat/lon point. Max 20001.6, the ceiling USGS enforces — half the Earth's great-circle circumference. Converted to degrees for EMSC (1° ≈ 111.2 km).
Filter by upstream event classification, e.g. "earthquake" to exclude quarry blasts and explosions from the count, or "quarry blast" to count only those. Matched verbatim against the USGS catalog, which accepts any string and returns a count of zero for an unrecognized one. Only available from USGS.
Start of time range as ISO 8601 (e.g. "2026-01-01" or "2026-05-23T00:00:00"). A bare year expands to January 1st and an unpadded month or day is zero-padded, with date-only values resolved to midnight (T00:00:00) on both sources. Explicit time and timezone suffixes are preserved. Defaults to 30 days before end_time (or before the current time) if omitted — applied server-side so USGS and EMSC honor the same window.
Minimum PAGER alert level. PAGER estimates economic loss and casualties. "green" = minimal impact; "red" = extreme. Only available from USGS.
Maximum depth in kilometers. Bounded to the documented -100 to 1000 km catalog envelope.
Northern edge of a bounding-box search, in degrees.
Minimum depth in kilometers. Bounded to the documented -100 to 1000 km catalog envelope. Shallow quakes (0–70 km) typically cause more surface damage than deep quakes (>300 km).
Southern edge of a bounding-box search, in degrees. Independent of the other three box parameters — supply any of them. Must not exceed max_latitude when both are given.
Required product type, e.g. "moment-tensor"; USGS only. Blank means omitted.
Eastern edge of a bounding-box search, in degrees.
Maximum magnitude.
Western edge of a bounding-box search, in degrees. Range extends beyond ±180 so a box can cross the antimeridian (e.g. min_longitude=170, max_longitude=190) — always keep min_longitude at or below max_longitude rather than inverting the pair.
Minimum magnitude (Richter or equivalent). M2.5+ is felt by some people; M5+ can cause damage; M7+ is major.
USGS review status: automatic or reviewed. Blank means omitted; unsupported by EMSC.
Magnitude type, e.g. "mb" or "mww"; both sources. Blank means omitted.
Minimum USGS significance score (0–2000+). Combines magnitude, felt reports, and PAGER estimates. Significant events typically score 600+. Only available from USGS.
Tool list last changed Oct 25, 2026.
Count matches without event records, or size an earthquake_search_events query. Omitting start_time uses 30 days; pass explicit bounds for historical periods. queryEcho reports applied filters/window; ignoredFilters names unsupported EMSC inputs. Circle and independently optional box edges intersect. Both catalogs include non-tectonic events; event_type="earthquake" excludes them on USGS. exceeds_limit marks the 20,000-event single-request threshold, not a retrieval ceiling: search supports offset paging beyond it. max_allowed is 20,000 for USGS, null for EMSC.
| Argument | Type | Description |
|---|---|---|
| source | string | Data source. Both catalogs are global. "usgs" covers global events with PAGER, DYFI, and ShakeMap metadata. "emsc" is an independent global catalog operated by the European-Mediterranean Seismological Centre — use it to cross-check a count from a separate network. It has no PAGER, DYFI, or ShakeMap metadata; its station coverage is densest around Europe and the Mediterranean, so counts of small events differ most by region. |
| end_time | string | End of time range as ISO 8601, in the same forms start_time accepts. Date-only values mean midnight at the start of the named day, not the whole day. Defaults to current time if omitted. |
| latitude | number | Latitude for radius search. Requires longitude and radius_km. |
| min_felt | integer | Minimum number of DYFI (Did You Feel It?) reports. Use to count events with confirmed public impact. Only available from USGS. |
| longitude | number | Longitude for radius search. Requires latitude and radius_km. |
| radius_km | number | Search radius in kilometers from the lat/lon point. Max 20001.6, the ceiling USGS enforces — half the Earth's great-circle circumference. Converted to degrees for EMSC (1° ≈ 111.2 km). |
| event_type | string | Filter by upstream event classification, e.g. "earthquake" to exclude quarry blasts and explosions from the count, or "quarry blast" to count only those. Matched verbatim against the USGS catalog, which accepts any string and returns a count of zero for an unrecognized one. Only available from USGS. |
| start_time | string | Start of time range as ISO 8601 (e.g. "2026-01-01" or "2026-05-23T00:00:00"). A bare year expands to January 1st and an unpadded month or day is zero-padded, with date-only values resolved to midnight (T00:00:00) on both sources. Explicit time and timezone suffixes are preserved. Defaults to 30 days before end_time (or before the current time) if omitted — applied server-side so USGS and EMSC honor the same window. |
| alert_level | string | Minimum PAGER alert level. PAGER estimates economic loss and casualties. "green" = minimal impact; "red" = extreme. Only available from USGS. |
| max_depth_km | number | Maximum depth in kilometers. Bounded to the documented -100 to 1000 km catalog envelope. |
| max_latitude | number | Northern edge of a bounding-box search, in degrees. |
| min_depth_km | number | Minimum depth in kilometers. Bounded to the documented -100 to 1000 km catalog envelope. Shallow quakes (0–70 km) typically cause more surface damage than deep quakes (>300 km). |
| min_latitude | number | Southern edge of a bounding-box search, in degrees. Independent of the other three box parameters — supply any of them. Must not exceed max_latitude when both are given. |
| product_type | string | Required product type, e.g. "moment-tensor"; USGS only. Blank means omitted. |
| max_longitude | number | Eastern edge of a bounding-box search, in degrees. |
| max_magnitude | number | Maximum magnitude. |
| min_longitude | number | Western edge of a bounding-box search, in degrees. Range extends beyond ±180 so a box can cross the antimeridian (e.g. min_longitude=170, max_longitude=190) — always keep min_longitude at or below max_longitude rather than inverting the pair. |
| min_magnitude | number | Minimum magnitude (Richter or equivalent). M2.5+ is felt by some people; M5+ can cause damage; M7+ is major. |
| review_status | string | USGS review status: automatic or reviewed. Blank means omitted; unsupported by EMSC. |
| magnitude_type | string | Magnitude type, e.g. "mb" or "mww"; both sources. Blank means omitted. |
| min_significance | integer | Minimum USGS significance score (0–2000+). Combines magnitude, felt reports, and PAGER estimates. Significant events typically score 600+. Only available from USGS. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"source": {
"enum": [
"usgs",
"emsc"
],
"type": "string",
"default": "usgs",
"description": "Data source. Both catalogs are global. \"usgs\" covers global events with PAGER, DYFI, and ShakeMap metadata. \"emsc\" is an independent global catalog operated by the European-Mediterranean Seismological Centre — use it to cross-check a count from a separate network. It has no PAGER, DYFI, or ShakeMap metadata; its station coverage is densest around Europe and the Mediterranean, so counts of small events differ most by region."
},
"end_time": {
"type": "string",
"pattern": "^\\d{4}(-\\d{1,2}(-\\d{1,2})?)?([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "End of time range as ISO 8601, in the same forms start_time accepts. Date-only values mean midnight at the start of the named day, not the whole day. Defaults to current time if omitted."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude for radius search. Requires longitude and radius_km."
},
"min_felt": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Minimum number of DYFI (Did You Feel It?) reports. Use to count events with confirmed public impact. Only available from USGS."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude for radius search. Requires latitude and radius_km."
},
"radius_km": {
"type": "number",
"maximum": 20001.6,
"minimum": 0,
"description": "Search radius in kilometers from the lat/lon point. Max 20001.6, the ceiling USGS enforces — half the Earth's great-circle circumference. Converted to degrees for EMSC (1° ≈ 111.2 km)."
},
"event_type": {
"type": "string",
"minLength": 1,
"description": "Filter by upstream event classification, e.g. \"earthquake\" to exclude quarry blasts and explosions from the count, or \"quarry blast\" to count only those. Matched verbatim against the USGS catalog, which accepts any string and returns a count of zero for an unrecognized one. Only available from USGS."
},
"start_time": {
"type": "string",
"pattern": "^\\d{4}(-\\d{1,2}(-\\d{1,2})?)?([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Start of time range as ISO 8601 (e.g. \"2026-01-01\" or \"2026-05-23T00:00:00\"). A bare year expands to January 1st and an unpadded month or day is zero-padded, with date-only values resolved to midnight (T00:00:00) on both sources. Explicit time and timezone suffixes are preserved. Defaults to 30 days before end_time (or before the current time) if omitted — applied server-side so USGS and EMSC honor the same window."
},
"alert_level": {
"enum": [
"green",
"yellow",
"orange",
"red"
],
"type": "string",
"description": "Minimum PAGER alert level. PAGER estimates economic loss and casualties. \"green\" = minimal impact; \"red\" = extreme. Only available from USGS."
},
"max_depth_km": {
"type": "number",
"maximum": 1000,
"minimum": -100,
"description": "Maximum depth in kilometers. Bounded to the documented -100 to 1000 km catalog envelope."
},
"max_latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Northern edge of a bounding-box search, in degrees."
},
"min_depth_km": {
"type": "number",
"maximum": 1000,
"minimum": -100,
"description": "Minimum depth in kilometers. Bounded to the documented -100 to 1000 km catalog envelope. Shallow quakes (0–70 km) typically cause more surface damage than deep quakes (>300 km)."
},
"min_latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Southern edge of a bounding-box search, in degrees. Independent of the other three box parameters — supply any of them. Must not exceed max_latitude when both are given."
},
"product_type": {
"type": "string",
"description": "Required product type, e.g. \"moment-tensor\"; USGS only. Blank means omitted."
},
"max_longitude": {
"type": "number",
"maximum": 360,
"minimum": -360,
"description": "Eastern edge of a bounding-box search, in degrees."
},
"max_magnitude": {
"type": "number",
"maximum": 10,
"minimum": -1,
"description": "Maximum magnitude."
},
"min_longitude": {
"type": "number",
"maximum": 360,
"minimum": -360,
"description": "Western edge of a bounding-box search, in degrees. Range extends beyond ±180 so a box can cross the antimeridian (e.g. min_longitude=170, max_longitude=190) — always keep min_longitude at or below max_longitude rather than inverting the pair."
},
"min_magnitude": {
"type": "number",
"maximum": 10,
"minimum": -1,
"description": "Minimum magnitude (Richter or equivalent). M2.5+ is felt by some people; M5+ can cause damage; M7+ is major."
},
"review_status": {
"type": "string",
"description": "USGS review status: automatic or reviewed. Blank means omitted; unsupported by EMSC."
},
"magnitude_type": {
"type": "string",
"description": "Magnitude type, e.g. \"mb\" or \"mww\"; both sources. Blank means omitted."
},
"min_significance": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Minimum USGS significance score (0–2000+). Combines magnitude, felt reports, and PAGER estimates. Significant events typically score 600+. Only available from USGS."
}
},
"additionalProperties": false
}Fetch detail for a specific earthquake by USGS event ID. Returns the same normalized event a search result carries, plus a projection of the analysis products only the single-event response holds: PAGER impact alert and report link, ShakeMap peak intensity and ground motion, DYFI felt-report totals, the moment-tensor focal mechanism, landslide and liquefaction alerts, origin quality (azimuthal gap, station count, location uncertainty), and finite-fault rupture dimensions. Product groups are omitted when no projected field is available — a small automatic event typically has no detail at all, while a large reviewed one has most of it. Event IDs appear in the "id" field of earthquake_get_feed and earthquake_search_events results. This tool accepts USGS event IDs only.
| Argument | Type | Description |
|---|---|---|
| event_id* | string | USGS event ID, e.g. "hv74966427" or "us6000sznj". Found in the "id" field of earthquake_get_feed and earthquake_search_events results. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id"
],
"properties": {
"event_id": {
"type": "string",
"minLength": 1,
"description": "USGS event ID, e.g. \"hv74966427\" or \"us6000sznj\". Found in the \"id\" field of earthquake_get_feed and earthquake_search_events results."
}
},
"additionalProperties": false
}Fetch a USGS pre-computed real-time earthquake feed by magnitude tier and time window. These feeds are CDN-cached by USGS and faster and more available than the query API — use them for "what's happening now" queries. "all" includes microseisms (M<1); "significant" is a USGS curation based on magnitude, felt reports, and PAGER impact estimates. "hour" returns 0–10 events typically; "month" can exceed 10,000 for the "all" tier, so results are returned a page at a time: count is the page size, totalCount the whole feed, and nextCursor the input for the following page. The cursor is opaque and must be passed back verbatim — unlike earthquake_search_events, these feeds retain the first-read generation for up to 15 minutes, subject to capacity eviction and restart. Pages fit a 24,000-byte result budget and can be smaller than limit. An expired cursor requires a fresh first read. For historical or filtered queries, use earthquake_search_events instead.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum events to return in this call. Default 100, max 1000. Applies to the first page; later pages carry the page size inside the cursor, so set it on the first call rather than changing it mid-sequence. |
| cursor | string | Opaque token for the next page, taken verbatim from a previous call's nextCursor. Omit for the first page. Do not construct, parse, or edit it — it encodes a position in the feed snapshot and is rejected if malformed. |
| time_window | string | Time window for the feed. "hour" typically returns 0–10 events; "month" can exceed 10,000 for the "all" tier. Prefer "hour" or "day" for real-time status checks. |
| magnitude_tier |
Search USGS or independent global EMSC seismic catalogs by time, magnitude, depth, area and source-specific filters. Both include non-tectonic events; event_type="earthquake" excludes them on USGS. Circle and independently optional box edges intersect. Unsupported EMSC filters appear in ignoredFilters. Size queries with earthquake_count_events. Accepts limit through 20,000, fetches at most 100 candidates, and returns a 24,000-byte page. Continue with offset=nextOffset and unchanged filters/order. totalCount is the full match total when known; countUnavailable marks a failed count lookup, so the total is unknown. Paging can retrieve matches beyond 20,000.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum events to return per call. Default 100. Accepts up to 20000; fetches at most 100 candidates and returns a byte-bounded page. Combine with offset to retrieve match sets larger than one call can return. |
| offset | integer | Index of the first event to return, counting from 1 — offset=1 is the first match (both upstream APIs reject 0). Omit for the first page, then pass the nextOffset value from a capped result to fetch the next one. Ordering is set by order_by, so keep order_by, limit, and every filter identical across pages. |
| source | string | USGS includes PAGER, DYFI and ShakeMap; EMSC (European-Mediterranean Seismological Centre) is an independent global catalog, with densest station coverage around Europe/Mediterranean and no such impact products. Event-detail tool accepts USGS IDs only. |
| end_time | string | End of time range as ISO 8601, in the same forms start_time accepts. Date-only values mean midnight at the start of the named day, not the whole day. Defaults to current time if omitted. |
| string |
| Minimum magnitude threshold for the feed. "all" includes microseisms (M<1). "1.0" is M1.0+. "2.5" is M2.5+. "4.5" is M4.5+. "significant" is a USGS curated selection based on magnitude, felt reports, and PAGER impact estimates — not purely magnitude-based. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Maximum events to return in this call. Default 100, max 1000. Applies to the first page; later pages carry the page size inside the cursor, so set it on the first call rather than changing it mid-sequence."
},
"cursor": {
"type": "string",
"description": "Opaque token for the next page, taken verbatim from a previous call's nextCursor. Omit for the first page. Do not construct, parse, or edit it — it encodes a position in the feed snapshot and is rejected if malformed."
},
"time_window": {
"enum": [
"hour",
"day",
"week",
"month"
],
"type": "string",
"default": "day",
"description": "Time window for the feed. \"hour\" typically returns 0–10 events; \"month\" can exceed 10,000 for the \"all\" tier. Prefer \"hour\" or \"day\" for real-time status checks."
},
"magnitude_tier": {
"enum": [
"all",
"1.0",
"2.5",
"4.5",
"significant"
],
"type": "string",
"default": "2.5",
"description": "Minimum magnitude threshold for the feed. \"all\" includes microseisms (M<1). \"1.0\" is M1.0+. \"2.5\" is M2.5+. \"4.5\" is M4.5+. \"significant\" is a USGS curated selection based on magnitude, felt reports, and PAGER impact estimates — not purely magnitude-based."
}
},
"additionalProperties": false
}| latitude | number | Latitude for radius search. Requires longitude and radius_km. |
| min_felt | integer | Minimum number of DYFI (Did You Feel It?) reports. Use to find events with confirmed public impact. Only available from USGS. |
| order_by | string | Sort order. "time" returns newest first; "magnitude" returns largest first. |
| longitude | number | Longitude for radius search. Requires latitude and radius_km. |
| radius_km | number | Search radius in kilometers from the lat/lon point. 100 km covers a metro region; 500 km covers a large country. Max 20001.6, the ceiling USGS enforces. Converted to degrees for EMSC (1° ≈ 111.2 km). |
| event_type | string | Filter by upstream event classification, e.g. "earthquake" to exclude quarry blasts and explosions, or "quarry blast" to see only those. Matched verbatim against the USGS catalog, which accepts any string and returns zero matches for an unrecognized one. Only available from USGS. |
| start_time | string | Start of time range as ISO 8601 (e.g. "2026-01-01" or "2026-05-23T00:00:00"). A bare year expands to January 1st and an unpadded month or day is zero-padded, with date-only values resolved to midnight (T00:00:00) on both sources. Explicit time and timezone suffixes are preserved. Defaults to 30 days before end_time (or before the current time) if omitted — applied server-side so USGS and EMSC honor the same window. |
| alert_level | string | Minimum PAGER alert level. PAGER estimates economic loss and casualties. "green" = minimal impact; "red" = extreme. Only available from USGS. |
| max_depth_km | number | Maximum depth in kilometers. Bounded to the documented -100 to 1000 km catalog envelope. |
| max_latitude | number | Northern edge of a bounding-box search, in degrees. |
| min_depth_km | number | Minimum depth in kilometers. Bounded to the documented -100 to 1000 km catalog envelope. Shallow quakes (0–70 km) typically cause more surface damage than deep quakes (>300 km). |
| min_latitude | number | Southern edge of a bounding-box search, in degrees. Independent of the other three box parameters — supply any of them. Must not exceed max_latitude when both are given. |
| product_type | string | Required product type, e.g. "moment-tensor"; USGS only. Blank means omitted. |
| max_longitude | number | Eastern edge of a bounding-box search, in degrees. |
| max_magnitude | number | Maximum magnitude. |
| min_longitude | number | Western edge of a bounding-box search, in degrees. Range extends beyond ±180 so a box can cross the antimeridian (e.g. min_longitude=170, max_longitude=190) — always keep min_longitude at or below max_longitude rather than inverting the pair. |
| min_magnitude | number | Minimum magnitude (Richter or equivalent). M2.5+ is felt by some people; M5+ can cause damage; M7+ is major. |
| review_status | string | USGS review status: automatic or reviewed. Blank means omitted; unsupported by EMSC. |
| magnitude_type | string | Magnitude type, e.g. "mb" or "mww"; both sources. Blank means omitted. |
| min_significance | integer | Minimum USGS significance score (0–2000+). Combines magnitude, felt reports, and PAGER estimates. Significant events typically score 600+. Only available from USGS. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 20000,
"minimum": 1,
"description": "Maximum events to return per call. Default 100. Accepts up to 20000; fetches at most 100 candidates and returns a byte-bounded page. Combine with offset to retrieve match sets larger than one call can return."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Index of the first event to return, counting from 1 — offset=1 is the first match (both upstream APIs reject 0). Omit for the first page, then pass the nextOffset value from a capped result to fetch the next one. Ordering is set by order_by, so keep order_by, limit, and every filter identical across pages."
},
"source": {
"enum": [
"usgs",
"emsc"
],
"type": "string",
"default": "usgs",
"description": "USGS includes PAGER, DYFI and ShakeMap; EMSC (European-Mediterranean Seismological Centre) is an independent global catalog, with densest station coverage around Europe/Mediterranean and no such impact products. Event-detail tool accepts USGS IDs only."
},
"end_time": {
"type": "string",
"pattern": "^\\d{4}(-\\d{1,2}(-\\d{1,2})?)?([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "End of time range as ISO 8601, in the same forms start_time accepts. Date-only values mean midnight at the start of the named day, not the whole day. Defaults to current time if omitted."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude for radius search. Requires longitude and radius_km."
},
"min_felt": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Minimum number of DYFI (Did You Feel It?) reports. Use to find events with confirmed public impact. Only available from USGS."
},
"order_by": {
"enum": [
"time",
"time-asc",
"magnitude",
"magnitude-asc"
],
"type": "string",
"default": "time",
"description": "Sort order. \"time\" returns newest first; \"magnitude\" returns largest first."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude for radius search. Requires latitude and radius_km."
},
"radius_km": {
"type": "number",
"maximum": 20001.6,
"minimum": 0,
"description": "Search radius in kilometers from the lat/lon point. 100 km covers a metro region; 500 km covers a large country. Max 20001.6, the ceiling USGS enforces. Converted to degrees for EMSC (1° ≈ 111.2 km)."
},
"event_type": {
"type": "string",
"minLength": 1,
"description": "Filter by upstream event classification, e.g. \"earthquake\" to exclude quarry blasts and explosions, or \"quarry blast\" to see only those. Matched verbatim against the USGS catalog, which accepts any string and returns zero matches for an unrecognized one. Only available from USGS."
},
"start_time": {
"type": "string",
"pattern": "^\\d{4}(-\\d{1,2}(-\\d{1,2})?)?([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Start of time range as ISO 8601 (e.g. \"2026-01-01\" or \"2026-05-23T00:00:00\"). A bare year expands to January 1st and an unpadded month or day is zero-padded, with date-only values resolved to midnight (T00:00:00) on both sources. Explicit time and timezone suffixes are preserved. Defaults to 30 days before end_time (or before the current time) if omitted — applied server-side so USGS and EMSC honor the same window."
},
"alert_level": {
"enum": [
"green",
"yellow",
"orange",
"red"
],
"type": "string",
"description": "Minimum PAGER alert level. PAGER estimates economic loss and casualties. \"green\" = minimal impact; \"red\" = extreme. Only available from USGS."
},
"max_depth_km": {
"type": "number",
"maximum": 1000,
"minimum": -100,
"description": "Maximum depth in kilometers. Bounded to the documented -100 to 1000 km catalog envelope."
},
"max_latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Northern edge of a bounding-box search, in degrees."
},
"min_depth_km": {
"type": "number",
"maximum": 1000,
"minimum": -100,
"description": "Minimum depth in kilometers. Bounded to the documented -100 to 1000 km catalog envelope. Shallow quakes (0–70 km) typically cause more surface damage than deep quakes (>300 km)."
},
"min_latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Southern edge of a bounding-box search, in degrees. Independent of the other three box parameters — supply any of them. Must not exceed max_latitude when both are given."
},
"product_type": {
"type": "string",
"description": "Required product type, e.g. \"moment-tensor\"; USGS only. Blank means omitted."
},
"max_longitude": {
"type": "number",
"maximum": 360,
"minimum": -360,
"description": "Eastern edge of a bounding-box search, in degrees."
},
"max_magnitude": {
"type": "number",
"maximum": 10,
"minimum": -1,
"description": "Maximum magnitude."
},
"min_longitude": {
"type": "number",
"maximum": 360,
"minimum": -360,
"description": "Western edge of a bounding-box search, in degrees. Range extends beyond ±180 so a box can cross the antimeridian (e.g. min_longitude=170, max_longitude=190) — always keep min_longitude at or below max_longitude rather than inverting the pair."
},
"min_magnitude": {
"type": "number",
"maximum": 10,
"minimum": -1,
"description": "Minimum magnitude (Richter or equivalent). M2.5+ is felt by some people; M5+ can cause damage; M7+ is major."
},
"review_status": {
"type": "string",
"description": "USGS review status: automatic or reviewed. Blank means omitted; unsupported by EMSC."
},
"magnitude_type": {
"type": "string",
"description": "Magnitude type, e.g. \"mb\" or \"mww\"; both sources. Blank means omitted."
},
"min_significance": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Minimum USGS significance score (0–2000+). Combines magnitude, felt reports, and PAGER estimates. Significant events typically score 600+. Only available from USGS."
}
},
"additionalProperties": false
}