One-off reads are a commodity; a watch is a relationship. A condition, a scope and a callback — evaluated as observations land rather than on a schedule you have to operate.
| Field | Type | Notes |
|---|---|---|
| watch_id ·always | string | Stable. |
| scope | object | product_id, brand, category or seller. Broader scopes fire per matching product. |
| condition | object | { op, value }. See the ops table in the watches guide. |
| callback | string | Your HTTPS endpoint. |
| secret | string | Returned once at creation. Used to sign every delivery. |
| active | bool | Watches can be paused without losing their history. |
{
"watch_id": "wch_4b1c9e02",
"scope": { "brand": "Ninja", "category": "home.kitchen" },
"condition": { "op": "percentile_below", "value": 10 },
"callback": "https://you.example/hooks/price",
"active": true
}A user sets $200 and forgets. `percentile_below: 10` means 'tell me when this is genuinely cheap for this product', which stays true as the market moves.