Watch Diagnostics
Watches
Watch Diagnostics
Check whether a watch fired, or should have fired, an alert for a specific trademark
GET
Watch Diagnostics
Overview
Answers the question every monitoring customer eventually asks: “I expected an alert for this trademark. Why didn’t I get one?” Given a watch and a trademark, this endpoint walks through evaluation step by step and reports where it stopped, or confirms that an alert fired. It’s read-only: calling it never changes anything. Requires theportfolios:manage scope.
Path Parameters
string
required
Watch ID (
wat_*).Query Parameters
string
required
Trademark ID (
tm_*) to check against this watch. A trademark ID from another org returns 404.Response
string
Echoed watch ID (
wat_*).string
Echoed trademark ID (
tm_*).string
Uppercase ST.3 code of the office that issued the trademark (e.g.
US, EM).boolean
true if Signa evaluated this trademark against the watch within the current data window.
false means either the change wasn’t recorded in time, or it has aged past the window. See
reason.boolean
true if this watch’s filters include the trademark’s office.boolean
true if a change record for this trademark exists within the data window. A recorded change
is a prerequisite for a match.string | null
The lifecycle event associated with the match:
trademark.created, trademark.updated,
trademark.status_changed, trademark.retracted, or trademark.corrected.boolean
true if trigger_event_type is included in the watch’s query.trigger_events filter. false
explains a match that was silently dropped.number | null
The persisted search relevance score (
match_score) from the most recent
alert for this (watch, trademark). null when no alert exists or the watch
has no scored (q) clause. Informational only.number | null
The watch’s stored
query.score_threshold, surfaced only for legacy watches
that still carry one. Inert — no longer gates matching, and rejected on
new writes. Prefer min_match_tier. null when unset.'exact' | 'normalized' | 'fuzzy' | 'phonetic' | null
The watch’s effective
query.min_match_tier: which match attribution tiers can fire an alert.
null when the watch doesn’t gate by tier (every tier can fire). See
min_match_tier for tier meanings.boolean
true if an alert exists for this (watch, trademark) pair.string | null
Alert ID (
alt_*) when one fired, otherwise null. Retrieve it with
Get Alert, or cross-reference it against
List webhook deliveries to confirm your
endpoint received it.string
Human-readable explanation for the outcome.
'per_alert' | 'digest' | null
The delivery mode that applied. Today this is
per_alert or null, since always_per_alert
is the only mode a watch can be created with.object | null
Computed opposition-window state for this trademark.
null when no rule applies.object
Retention horizons for the data behind this response. See
retention windows for how they interact with alerts and
webhook deliveries.
string
Request identifier.
Internal evaluation fields
Internal evaluation fields
These fields appear in the response but describe internal evaluation state. Safe to ignore when
debugging alert delivery.
lease_state: internal evaluation state; safe to ignore.evaluation_epoch: internal evaluation state; safe to ignore.replay_epoch_origin: internal evaluation state; safe to ignore.opensearch_score: internal evaluation state; safe to ignore (currently alwaysnull).last_relevant_sync_run: internal evaluation state; safe to ignore.
Errors
Code Examples
Related Endpoints
- Retrieve Alert - fetch the alert this diagnosis references
- List webhook deliveries - confirm your endpoint received the alert
- Watches guide - watch types and the query DSL
- Monitoring troubleshooting - retention windows and debugging walkthrough