Skip to main content
PATCH
/
v1
/
watches
/
{id}
Update Watch
curl --request PATCH \
  --url https://api.example.com/v1/watches/{id} \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "criteria": {},
  "triggers": [
    "<string>"
  ],
  "delivery_channels": [
    "<string>"
  ],
  "scope_filters": {},
  "metadata": {},
  "status": "<string>"
}
'

Overview

Updates a watch. Status transitions: setting status to paused records a paused_at timestamp; setting it back to active clears it. Metadata uses merge semantics (null values remove keys). Requires the portfolios:manage scope.

Path Parameters

id
string
required
Watch ID (wat_...).

Request Body

name
string
New watch name (1-255 characters).
description
string
New description (max 2000 characters). Pass null to clear.
criteria
object
Updated match criteria (same shape as Create Watch).
triggers
string[]
Updated trigger list (at least one).
delivery_channels
string[]
Updated delivery channels. Currently only api is supported.
scope_filters
object
Updated scope filters.
metadata
object
Metadata patch. Values may be strings or null.
status
string
Status transition: active, paused, or disabled.

Response

Returns the updated watch. Same shape as Get Watch.

Code Examples

curl -X PATCH "https://api.signa.so/v1/watches/wat_abc123" \
  -H "Authorization: Bearer sig_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{ "status": "paused", "metadata": { "reason": "vacation" } }'

Errors

StatusTypeDescription
400validation_errorEmpty name, invalid status, or unsupported delivery channel
401unauthorizedMissing or invalid API key
403forbiddenAPI key lacks portfolios:manage
404not_foundWatch does not exist or belongs to another org