---
title: "Earthquakes near facilities: USGS earthquakes with registered facilities within a set distance"
method: GET
path: "/api/v1/quake-exposures"
---

# Earthquakes near facilities: USGS earthquakes with registered facilities within a set distance

`GET /api/v1/quake-exposures`

## Request

- Base URL: `https://offnadir-delta.com`
- URL: `https://offnadir-delta.com/api/v1/quake-exposures`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

3 tokens minimum per request; above 30 rows, 1 token per 10 rows returned (rounded up) — the same rule as a page of signals, and the same plan window applies (meta.window_clamp says when it was cut). A quake exposure is a seismic record and distances, not a report and not a satellite measurement: an earthquake recorded by the U.S. Geological Survey with at least one registered facility — a port, base, airport, energy or nuclear site, dam, bridge and the like — within a set distance of the epicentre. The distance depends on the magnitude: within 25 km of an M5.0+, 50 km of an M5.5+, 100 km of an M6.5+, at a depth of 70 km or less (an earthquake of unknown depth is left out). Earthquakes USGS itself rates as significant are ordinary events (category natural_disaster) and are not returned here. Each record carries earthquake (the USGS id, magnitude and its type, depth_km, occurred_at, the epicentre, USGS's place text, review_status and the USGS event page url), radius_km (the distance applied to this earthquake), facilities (up to the 5 nearest: entity_id, name, subtype, country, distance_km from the epicentre) and facilities_total (how many were inside the radius). Every record is also an event (same event_id as GET /api/v1/signals with categories=quake_exposure, where it carries measured=true and measured_kind=quake_exposure), so the event endpoints work on it. related_events lists events tied to this one by a stored relation — nothing is inferred when the record is read, so it is usually empty; it needs a plan with event relations (otherwise null, and meta.notes says so). The detail — the magnitude and depth, the facilities and their distances, the USGS link and the summary — needs a plan with the full event detail. Without it every record still returns that it was recorded, when, the position and its kind, with detail_withheld=true, a placeholder title and null in the withheld fields (meta.detail_included and meta.detail_required_plan say so); the same records in GET /api/v1/signals carry the placeholder title too. meta.definition carries the thresholds, meta.notes what the record does and does not establish, and meta.attribution the source credit, which must be shown with the data. Cursor pagination via meta.next_cursor.

## Query parameters

- `bbox` string
- `start_date` string, date
- `end_date` string, date
- `limit` integer
- `cursor` string

## Response `200`

A page of records, newest first.

- object
  - `meta` object
  - `quake_exposures` object[]

## Other responses

- `400`: Error response with a stable machine-readable code.
- `401`: Error response with a stable machine-readable code.
- `402`: Error response with a stable machine-readable code.
- `403`: Error response with a stable machine-readable code.
- `429`: Error response with a stable machine-readable code.

---

[API](https://skmtc.dev/offnadir-delta/apis/off-nadir-delta-api.md) · [All operations](https://skmtc.dev/offnadir-delta/apis/off-nadir-delta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/offnadir-delta/apis/off-nadir-delta-api/revisions/5cf3f2bed5a2?raw)
