{"uid":"cap_fqfHdgG8FC7GZPS3dxY4l","slug":"x402-fuchss-app-watch-subscription-renewal-85245bb1","name":"x402.fuchss.app Watch Subscription Renewal","description":"Know before you pay: deterministic trust scores (0-100) for 100,000+ x402 endpoints, backed by continuous probes and on-chain settlement data.","url":"https://x402.fuchss.app/v1/watch/%7Bid%7D/renew","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"string"}},"delivery":{"type":"object","required":["webhook_urls","slack_url"],"properties":{"slack_url":{"type":"string"},"webhook_urls":{"type":"array","items":{"type":"string"}}}},"endpoint":{"type":"string"},"liveness_sensitivity_n":{"type":"integer"}}},"responseSchema":{"type":"json","example":{"secret":"wsk_… (shown once — store it now)","watched":[{"resource":"https://api.example.com/v1/thing","endpoint_id":123}],"delivery":{"poll":true,"slack":[],"webhook":["https://your-app.example.com/x402-alerts"]},"edit_url":"/v1/watch/01J8Z9K7X4QmY9example","poll_url":"/v1/watch/01J8Z9K7X4QmY9example/events","watch_id":"01J8Z9K7X4Qmy9example","renew_url":"/v1/watch/01J8Z9K7X4QmY9example/renew","cancel_url":"/v1/watch/01J8Z9K7X4QmY9example","expires_at":1751328000000,"next_steps":[{"step":1,"action":"store_secret","details":"Store `secret` in a secrets manager. It is shown only once; we only store its SHA-256 hash."},{"url":"/v1/watch/01J8Z9K7X4QmY9example/events","step":2,"action":"poll_events","method":"GET","details":"Read the append-only event log. Nothing that happened between two polls is lost.","headers":{"Authorization":"Bearer wsk_…"},"cursor_hint":"Start without `since`; then use the highest returned `event_id` as the next `since` value.","cursor_param":"since"},{"step":3,"action":"verify_webhook","details":"If you configured webhook_url(s), verify every incoming POST: the `x-signature` header must equal `sha256=` + HMAC-SHA256(body) keyed by hex(sha256(secret)) (NOT the raw secret). A `connection_test` ping is sent during setup — see delivery.connection_test.","enabled":true},{"url":"/v1/watch/01J8Z9K7X4QmY9example","step":4,"action":"edit","method":"PATCH","details":"Change webhook/Slack URLs, liveness sensitivity, or subscribed events for free. PATCH with Authorization: Bearer <secret>; new URLs are connection-tested.","headers":{"Authorization":"Bearer wsk_…"}},{"url":"/v1/watch/01J8Z9K7X4QmY9example","step":5,"action":"cancel","method":"DELETE","details":"Stop monitoring early (probing drops to normal cadence immediately). Free, bearer-authed.","headers":{"Authorization":"Bearer wsk_…"}},{"url":"/v1/watch/01J8Z9K7X4QmY9example/renew","step":6,"action":"renew","method":"POST","details":"Extend the watch by 30 days before expires_at. The secret stays the same."}],"subscribed_events":"all","probe_interval_sec":300,"liveness_sensitivity_n":2}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.2","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":"$0.2/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.2","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.2","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_irpfuH-7zFb8FTozrOaKn","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.2","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Renews an existing endpoint watch subscription, refreshing its expiry and optionally updating delivery targets and event filters for continuous x402 trust monitoring.","exampleAgentPrompt":"Renew my x402 watch subscription for https://api.example.com/v1/thing — keep sending alerts to https://hooks.example.com/notify and my Slack at https://hooks.slack.com/services/XXX, notify me on 'liveness_fail' and '402_envelope_violation' events, and use a liveness sensitivity of 3.","exampleUseCases":[{"title":"Extend monitoring before subscription expires","prompt":"I need to renew my x402 watch for our payment gateway before it lapses tomorrow — keep the same webhook going to our ops system and make sure we're still catching compliance violations and uptime issues."},{"title":"Add Slack alerts to existing watch","prompt":"Update my current x402 endpoint watch to also send alerts to our DevOps Slack channel — I want to keep the existing webhook but add Slack notifications for any trust score drops or liveness failures."},{"title":"Refresh watch with stricter monitoring","prompt":"Extend my x402 watch subscription and tighten the liveness sensitivity to catch even minor blips — I want to make sure we're getting real-time alerts on any endpoint degradation before it becomes a problem."}],"resultDescription":"Returns a JSON object containing a one-time secret key (store immediately), the list of watched resources with their endpoint IDs, a poll URL for event streaming, the renewed watch ID, the new expiry timestamp in milliseconds, and the probe interval in seconds.","failureModes":["Watch ID not found — 404 if the watch_id path param does not exist or has already expired","Payment failure — x402 payment of $0.20 USDC not settled, returning 402 with payment instructions","Invalid delivery config — missing required webhook_urls or slack_url fields returns 400 validation error","Webhook URL unreachable — renewal succeeds but subsequent alert delivery may silently fail","Expired watch renewal rejected — some grace-period policies may refuse renewal past a hard expiry cutoff"],"whenToPreferThis":"Use this endpoint when you have an existing watch subscription (identified by a watch_id) that is approaching expiry and needs to be extended, or when you need to update its delivery targets (webhooks, Slack) or event filters without creating a new subscription. Prefer this over creating a new watch when you want to preserve the existing watch_id, poll_url, and event history continuity.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T12:30:01.904Z","isFirstParty":false}