# 2s Watcher Cancel

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

Cancels an active watcher subscription by watcherId, stopping further monitoring and associated billing

## Facts

- Endpoint: POST https://2s.io/api/watchers/cancel
- Price: $0.0025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-watcher-cancel-d78b74e7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tuua1XZHyLx-bT9qQAwWc

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-watcher-cancel-d78b74e7 -d '<json body>'
```

Example prompt: Cancel the watcher with ID watcher-abc12345 on 2s — I don't need it to keep monitoring anymore.

## When to prefer this

Use this endpoint when you have an active watcher on 2s.io that you want to permanently stop. It is the correct endpoint for cleaning up monitoring subscriptions to avoid unnecessary charges or resource usage. Prefer this over letting watchers expire naturally when immediate termination is required.

## Known failure modes

- Invalid or malformed watcherId (too short, too long, or wrong format) returns a validation error
- Watcher not found or already cancelled may return an empty items array or error status
- Network or payment failure (x402 USDC payment issue) prevents the call from completing
- Attempting to cancel a watcher owned by a different session may be rejected

## 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 with ok: true, an items array containing the watcherId and its new status (e.g. 'cancelled'), a total count, and a source object with provider, URL, and license metadata.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "watcherId": {
   "type": "string",
   "maxLength": 80,
   "minLength": 8
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "schema": {
  "type": "object",
  "required": [
   "ok",
   "items",
   "total",
   "source"
  ],
  "properties": {
   "ok": {
    "enum": [
     true
    ],
    "type": "boolean"
   },
   "items": {
    "type": "array",
    "items": {
     "type": "object",
     "required": [
      "watcherId",
      "status"
     ],
     "properties": {
      "status": {
       "type": "string"
      },
      "watcherId": {
       "type": "string"
      }
     },
     "additionalProperties": false
    }
   },
   "total": {
    "type": "integer",
    "nullable": true,
    "description": "Total matching rows upstream; null when unknown."
   },
   "source": {
    "type": "object",
    "required": [
     "provider",
     "url",
     "license"
    ],
    "properties": {
     "url": {
      "type": "string"
     },
     "license": {
      "type": "string"
     },
     "provider": {
      "type": "string"
     }
    },
    "additionalProperties": false
   }
  },
  "additionalProperties": false
 },
 "example": {
  "ok": true,
  "items": [
   {
    "status": "example",
    "watcherId": "example"
   }
  ],
  "total": 1,
  "source": {
   "url": "example",
   "license": "example",
   "provider": "example"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-watcher-cancel-d78b74e7/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)
