Watches
Create Watch
Create a watch that fires alerts when matching trademarks change
POST
Overview
Creates a saved monitor that runs on every ingestion sync. Five watch types (mark, portfolio, owner, class, similarity) share a single
query shape — the watch_type selects which scoping field is required.
Resource quota (per-plan watches.maxResources) is enforced before insert.
Required scope: portfolios:manage.
The monitoring API is live, in beta — see Known beta
limitations. Historical replay at
create time is on the roadmap. To produce alerts for past data on an
existing watch, use
POST /v1/watches/{id}/replay
(forward-only in v1).Body Parameters
Display name (1—255 chars).
One of
mark, portfolio, owner, class, similarity. Each type
requires a specific field to be populated — see
Watches guide for the table.v1 watch query DSL.
Currently only
always_per_alert is supported. Digest modes land in v1.1.Free-form metadata (max 8KB).
Response
Returns the createdWatch with status 201.
Watch ID (
wat_*).Always
"watch".Display name.
One of the five types.
Saved query DSL.
Delivery cadence.
Initial status:
active.Null on create.
Null on create.
Echoed back.
ISO timestamp.
ISO timestamp.
Request identifier.
Errors
- 400 — invalid
query(forbidden DSL keys, unknownfilterskeys,query.matchin any form, stop words, too many keywords) or missingIdempotency-Keyheader. - 400 —
watch_typeconstraint violated (e.g.,portfoliowithoutfilters.trademarkIds). - 409 — per-plan resource quota exceeded.
- 413 —
querypayload exceeds 256 KB.