{"uid":"cap_A0KC6SONFk3O9jIUmpYl3","slug":"agent-exec-url-watch-polling-monitor-8623ca11","name":"agent-exec URL Watch / Polling Monitor","description":"Accountless, pay-per-use code execution for software agents: submit source code, get stdout, stderr and exit code back from an isolated, network-less sandbox. No account, no API key -- possession of valid payment is sufficient.","url":"https://agent-exec.448c.net/watch?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","required":["url","predicate","ttlSeconds","intervalSeconds"],"properties":{"url":{"type":"string","description":"Absolute http(s) URL to poll."},"predicate":{"type":"object","description":"Exactly one of: {type:\"statusChanged\"} / {type:\"statusEquals\",status} / {type:\"bodyContains\",value} / {type:\"bodyNotContains\",value} / {type:\"jsonPathEquals\",path,value} / {type:\"jsonPathNotEquals\",path,value} / {type:\"changedFromNow\",path?}. `path` is a dotted path into a JSON response body."},"storageKey":{"type":"string","description":"Optional: deliver a matched observation into /storage under this label, on the wallet that paid."},"ttlSeconds":{"type":"integer","description":"Stop after this many seconds if the condition never fires; at least intervalSeconds."},"intervalSeconds":{"type":"integer","description":"Seconds between polls."}}},"responseSchema":{"type":"object","required":["payment","id","status","url","intervalSeconds","ttlSeconds","predicate","createdAt","ttlExpiresAt","nextPollDueAt","overdue"],"properties":{"id":{"type":"string","format":"uuid","description":"Keep this: it is how anyone reads the watch back, free, at GET /watch/{id}."},"url":{"type":"string"},"status":{"enum":["active","matched","expired"],"type":"string"},"overdue":{"type":"boolean","description":"true when an active watch has missed its next poll."},"payment":{"type":"object","properties":{"asset":{"type":"string"},"payer":{"type":"string"},"amount":{"type":"string","description":"Atomic units charged."},"network":{"type":"string"},"transaction":{"type":"string","description":"On-chain settlement transaction."}}},"baseline":{"description":"changedFromNow's registration-time snapshot, verbatim."},"createdAt":{"type":"integer","description":"Unix ms."},"matchedAt":{"type":["integer","null"],"description":"Unix ms the condition fired, or null."},"predicate":{"type":"object"},"storageKey":{"type":["string","null"]},"ttlSeconds":{"type":"integer"},"lastPolledAt":{"type":["integer","null"]},"ttlExpiresAt":{"type":"integer","description":"Unix ms polling stops if the condition never fires."},"nextPollDueAt":{"type":"integer"},"intervalSeconds":{"type":"integer"},"lastObservation":{"type":["object","null"],"description":"The last poll: status, whether it matched, and any WATCH_JSONPATH_BODY_NOT_JSON note."},"deliveredObjectId":{"type":["string","null"],"description":"The /storage object a matched storageKey watch was delivered to."}}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.0058","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.0058/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0058","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0058","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_zz5-WdKmJP7-YjFJ7ms41","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.0058","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Registers a pay-per-use HTTP polling watch that fires when a specified condition is met on a remote URL, returning a watch ID and status.","exampleAgentPrompt":"Watch https://api.example.com/status every 30 seconds for up to 10 minutes, and alert me when the JSON field 'state' equals 'ready' — store the result under the label 'deploy-ready'.","exampleUseCases":[{"title":"Wait for deployment to go live","prompt":"Keep polling https://myapp.example.com/health every 15 seconds for up to 5 minutes, and tell me when it returns HTTP 200 — store the result under 'deploy-check'."},{"title":"Detect price drop on an API","prompt":"Watch https://api.shop.com/products/42/price every 60 seconds for 2 hours and fire when the JSON field 'price' equals '19.99'."},{"title":"Monitor third-party service recovery","prompt":"Poll https://status.thirdparty.com/api every 30 seconds for up to 15 minutes and let me know the moment the body contains the word 'operational'."}],"resultDescription":"Returns a watch object containing a UUID watch ID, current status (active/matched/expired), payment details (payer, amount, transaction hash), predicate, interval and TTL settings, creation and expiry timestamps, next scheduled poll time, overdue flag, last observation details, and if a storageKey was given, the ID of the storage object where matched data was delivered.","failureModes":["Payment insufficient or invalid — HTTP 402 returned, watch not created","URL is not reachable or returns errors — watch stays active until TTL expires without matching","TTL expires before predicate fires — status transitions to 'expired' with no match","Invalid predicate type specified — request rejected with schema validation error","intervalSeconds greater than ttlSeconds — request rejected","JSON path in predicate doesn't exist in response body — condition never matches"],"whenToPreferThis":"Choose this endpoint when an AI agent needs to asynchronously wait for a remote HTTP condition to become true without blocking — especially useful for polling deployment readiness, service recovery, or waiting for a third-party API value to change. It is preferable to running a busy-wait loop in code, and uniquely suited when no webhook infrastructure is available on the target system. The pay-per-use, accountless model makes it ideal for ad-hoc agent workflows.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T03:14:04.983Z","isFirstParty":false,"canonicalSlug":"agent-exec-url-watch-polling-monitor-8623ca11"}