# Livecheck Sentinel Watch — 30-Day URL Condition Monitor

> Livecheck Sentinel Watch — 30-Day URL Condition Monitor is a paid API for AI agents from livecheck.fly.dev, paid per call via x402, $2.5/call, status unknown (last checked 2026-09-15).

Sets up a persistent 30-day URL watcher that checks a target URL on a configurable interval and delivers HMAC-signed callbacks whenever a specified condition (status change, keyword, text diff, or numeric threshold) is detected.

## Facts

- Endpoint: POST https://livecheck.fly.dev/v1/watch
- Price: $2.5/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/livecheck-sentinel-watch-30-day-url-condition-monitor-be489337
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tS-d5T6hGqwBvnZt8hzMB

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 livecheck-sentinel-watch-30-day-url-condition-monitor-be489337 -d '<json body>'
```

Example prompt: Watch https://boards.greenhouse.io/acme/jobs/9182 every 15 minutes for 30 days and POST to https://hooks.myapp.com/jobs with secret 'mys3cret' whenever the page status changes — I need an HMAC-signed callback only on change.

## When to prefer this

Choose this endpoint when you need ongoing, long-running (up to 30 days) periodic monitoring of a URL rather than a single one-shot check. Use it over /v1/check when the user's need is persistent surveillance — e.g. job listing disappearance, product restocks, competitor page changes — with automated webhook delivery. Prefer this over manual polling because it handles scheduling, HMAC-signed callback delivery, and baseline comparison server-side. Do not use this for immediate one-off checks ($0.02 /v1/check is cheaper) or for post-submission side-effect verification (/v1/confirm is appropriate there).

## Known failure modes

- 400 Bad Request if render=always is specified (render_not_available — no Playwright support)
- 400 Bad Request if interval_s is below minimum of 300 seconds
- 402 Payment Required if x402 payment is not included or is insufficient ($2.50 USDC required)
- 422 Unprocessable Entity if required fields (target, condition, callback) are missing or malformed
- Callback delivery failures if the provided callback URL is unreachable (no guaranteed retry SLA specified)
- Owner token is returned only once at creation; loss of token prevents future management of the watch

## How this service works

Livecheck Sentinel watch - 30-day URL condition watcher. POST /v1/watch with {target, condition, callback, interval_s}. Detectors: status_change, keyword (same as /v1/check). HMAC-signed callbacks. Returns wtc_ id, owner_token (once), baseline, and a signed receipt. Fixed $2.50 USDC (2500000 atomic). GET/DELETE /v1/watch/{id} and GET /v1/watch/{id}/events with X-Livecheck-Owner-Token. No Playwright. Not /v1/check ($0.02) and not Confirm.

## Output

Returns a JSON object containing the unique watch ID (wtc_ prefix), a one-time owner token (owt_ prefix) for later management, the baseline snapshot with its hash and summary, a signed receipt with a verify URL, condition and target details, pricing ($2.50 USD), the expiry date (30 days), interval in seconds, and timestamps for first and next scheduled checks plus remaining check count.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "label": {
   "type": "string"
  },
  "target": {
   "type": "object",
   "description": "URL target. type=url, render=never. render=always is 400 render_not_available."
  },
  "context": {
   "type": "object"
  },
  "callback": {
   "type": "object",
   "description": "url + secret. deliver=on_change or every_check. HMAC-SHA256 over the raw JSON body (X-Sentinel-Signature)."
  },
  "condition": {
   "type": "object",
   "description": "detector status_change, keyword, text_diff, or numeric_threshold. Same as POST /v1/check."
  },
  "on_change": {
   "type": "object",
   "description": "run=none (default), verify, or confirm. confirm default intent=lead_submit ($0.10 internal). Optional intent/url/claim."
  },
  "interval_s": {
   "type": "number",
   "description": "Seconds between observations. Min 300, default 900."
  },
  "chain_budget_usd": {
   "type": "number",
   "description": "Spend cap for chained Verify ($0.01) and Confirm ($0.10 / $0.25). Funding is POST /v1/watch/{id}/chain/topup ($0.50), not bundled into $2.50."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "id": "wtc_01J8Z0K3N4P5Q6R7S8T9V0WWTC",
  "run": "none",
  "tier": "standard",
  "status": "active",
  "target": {
   "url": "https://boards.greenhouse.io/example/jobs/1842",
   "type": "url",
   "render": "never",
   "selector": null
  },
  "receipt": {
   "hash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
   "verify_url": "https://livecheck.fly.dev/v1/receipt/wtc_01J8Z0K3N4P5Q6R7S8T9V0WWTC"
  },
  "baseline": {
   "hash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
   "summary": "live 2xx (200); apply form present, no closure banner",
   "captured": true
  },
  "condition": {
   "params": {},
   "detector": "status_change"
  },
  "price_usd": 2.5,
  "expires_at": "2026-10-10T18:00:00Z",
  "interval_s": 900,
  "owner_token": "owt_01J8Z0K3N4P5Q6R7S8T9V0WOWT",
  "next_check_at": "2026-09-10T18:15:00Z",
  "first_check_at": "2026-09-10T18:00:00Z",
  "checks_remaining": 2880
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/livecheck-sentinel-watch-30-day-url-condition-monitor-be489337/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from livecheck.fly.dev](https://www.zero.xyz/host/livecheck.fly.dev/llms.txt)
