Skip to main content
PATCH
Update a board watch

Authorizations

Authorization
string
header
required

API key issued from the developer dashboard. Pass as Authorization: Bearer vq_key_... (preferred).

Path Parameters

watch_id
string
required

Body

application/json
isActive
boolean | null

Pause (false) or resume (true) the watch.

webhookUrl
string | null

New webhook URL. Only valid on a webhook/both channel watch. Re-validated against the SSRF blocklist. Cannot be cleared.

webhookSecret
string | null

New signing secret, or empty string to stop signing deliveries. Only valid on a webhook/both channel watch.

scope
Scope · object | null

Optional narrowing so this alert covers one citation instead of an entire source. Four mutually exclusive forms.

Hierarchy prefix -- keys title, chapter, part, section, e.g. {"title": "21", "part": "314"} for 21 CFR part 314. Every level you set must match, so each one narrows further. title is required whenever any narrower level is set, and section also needs chapter or part: a bare part number matches across unrelated titles. Only sources whose documents carry a title/chapter/part hierarchy accept this form; the rest return 400.

Exact section -- {"actId": "CFR_T21_P314_S314_50"}, using the actId returned by search results and change events. Case-sensitive, and validated at create time against the corpus: an act_id we do not hold, or one belonging to a different source, is a 400 rather than a watch that could never fire. This form works on EVERY source, including flat ones with no hierarchy, so it is the only way to follow a single Federal Register document.

Named source -- {"source": "fdic_fil"}, for the corpora that fold several independent bodies of law behind one corpusType. The agency_guidance board alone carries 47 named sources across 24 agencies, so an unscoped watch on it delivers FDIC letters, IRS notices, OFAC FAQs and DOE appliance standards together. Accepted on agency_adjudication, agency_guidance, agency_manuals, cfr, federal_rules; anything else returns 400. The pickable values for a given board are on that board's sources array in GET /boards -- deliberately narrower than the source filter published on POST /us/statutes/search, because agency_guidance and agency_manuals are two boards reading one corpusType and each emits only its own half.

Publishing agency -- {"agency": "irs"}, covering every source that agency issues on the board. source is the unit we ingest and it is finer than the unit most callers think in: the IRS alone publishes 5 named series, so following it by source means one watch per series and a gap if you miss one. An agency scope is expanded WHEN AN EVENT IS MATCHED rather than when the watch is created, so a source registered after your watch is covered by it automatically, with no action from you. Accepted on agency_adjudication, agency_guidance, agency_manuals; the pickable values are on that board's agencies array in GET /boards.

Omit entirely to watch the whole source, which is the default and the pre-existing behavior.

Example:
emailAddress
string | null

New email address. Only valid on an email/both channel watch. Cannot be cleared.

webhookAuth
WebhookAuthRequest · object | null

Replace the outbound credential config. Sent as a whole object, not field by field: a scheme without a credential is not a partial edit, it is a broken config. Send {"scheme": "none"} to remove auth entirely. Keeping the same scheme and omitting secret retains the stored credential, so you can rename a header without re-entering the token.

Response

The updated watch.

Last modified on October 9, 2026