# 2s Earthquake Watcher

> 2s Earthquake Watcher is a paid API for AI agents from 2s.io, paid per call via x402, $0.125/call, status unknown (last checked 2026-09-15).

Registers a persistent geofenced earthquake watcher that POSTs a signed callback to your URL whenever a qualifying seismic event occurs near a specified location.

## Facts

- Endpoint: POST https://2s.io/api/watchers/earthquake
- Price: $0.125/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-earthquake-watcher-b18a2074
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MtM5aJbby1BbkX8MmbYoS

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-earthquake-watcher-b18a2074 -d '<json body>'
```

Example prompt: Set up an earthquake watcher centered on Tokyo (35.6762° N, 139.6503° E) with a 300 km radius, minimum magnitude 5.0, and POST alerts to https://myapp.example.com/quake-hook for the next 60 days, stopping after 50 events.

## When to prefer this

Choose this endpoint when you need persistent, event-driven earthquake monitoring for a geographic area — rather than one-time historical queries. It is ideal for automated workflows that must react to seismic events in near real-time via webhooks, such as triggering safety protocols, notifying teams, or feeding research pipelines. Prefer it over polling-based approaches when low-latency alerting and long-lived monitoring windows (up to 90 days) are required.

## Known failure modes

- Invalid lat/lon values outside ±90/±180 bounds return a validation error
- callbackUrl that is unreachable or malformed will cause callback delivery failures silently
- expiresInSeconds exceeding 7,776,000 (90 days) is rejected
- minMagnitude or maxFires outside allowed ranges return schema validation errors
- Payment failure or insufficient USDC balance results in a 402 response with no watcher created
- Duplicate or conflicting watchers may consume fire quota without deduplication

## How this service works

The (most) everything API: 575+ pay-per-call endpoints for AI agents — ground-truth data, a full AI gateway, and agent infrastructure (storage, queues, watchers). USDC via x402, no signup, no API keys, and upto billing: pay actual usage, not the quote.

## Output

Returns a JSON object confirming the watcher was created (ok: true), along with an items array containing the watcher record details, an optional total count, and a source object identifying the upstream data provider, URL, and license.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "lat": {
   "type": "number",
   "maximum": 90,
   "minimum": -90,
   "description": "Latitude of the center point."
  },
  "lon": {
   "type": "number",
   "maximum": 180,
   "minimum": -180,
   "description": "Longitude of the center point."
  },
  "label": {
   "type": "string",
   "maxLength": 64,
   "description": "Optional free-text tag."
  },
  "payload": {
   "type": "object",
   "description": "Arbitrary JSON echoed back in every callback.",
   "additionalProperties": {}
  },
  "maxFires": {
   "type": "integer",
   "maximum": 1000,
   "minimum": 1,
   "description": "Stop after this many quakes (default 25)."
  },
  "radiusKm": {
   "type": "number",
   "maximum": 1000,
   "minimum": 1,
   "description": "Search radius in km (default 500)."
  },
  "callbackUrl": {
   "type": "string",
   "maxLength": 2048,
   "description": "Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."
  },
  "minMagnitude": {
   "type": "number",
   "maximum": 10,
   "minimum": 0,
   "description": "Minimum magnitude to fire on (default 4)."
  },
  "expiresInSeconds": {
   "type": "integer",
   "maximum": 7776000,
   "minimum": 60,
   "description": "Active window in seconds (default 30d, max 90d)."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-earthquake-watcher-b18a2074/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
