{"uid":"cap_tS-d5T6hGqwBvnZt8hzMB","slug":"livecheck-sentinel-watch-30-day-url-condition-monitor-be489337","name":"Livecheck Sentinel Watch — 30-Day URL Condition Monitor","description":"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.","url":"https://livecheck.fly.dev/v1/watch","method":"POST","headers":{},"bodySchema":{"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."}}},"responseSchema":{"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}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"2.5","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$2.5/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"2.5","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"2.5","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_JeKH_-Sp7DJUDwTm8cwIi","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"2.5","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"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.","exampleAgentPrompt":"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.","exampleUseCases":[{"title":"Job listing disappearance alert","prompt":"Keep an eye on https://boards.greenhouse.io/stripe/jobs/4421 every 10 minutes and hit my webhook at https://notify.myapp.com/jobs with secret 'abc123' the moment the page status changes — I want to know as soon as that role is taken down or goes 404."},{"title":"E-commerce restock monitoring","prompt":"Monitor https://shop.allbirds.com/products/tree-runners-natural-white for 30 days, checking every 5 minutes, and call https://hooks.myapp.com/restock with secret 'shoe42' whenever the keyword 'Add to Cart' appears — I want to catch the instant it's back in stock."},{"title":"Competitor pricing page tracker","prompt":"Set up a 30-day watch on https://competitor.io/pricing checking every hour for any text difference, and deliver HMAC-signed callbacks to https://alerts.mybi.com/pricing with secret 'biz99' on every change — I need to track whenever they update their pricing page."}],"resultDescription":"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.","failureModes":["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"],"whenToPreferThis":"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).","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T12:33:56.188Z","isFirstParty":false}