Skip to main content
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 the portfolios: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.
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 always null).
  • last_relevant_sync_run: internal evaluation state; safe to ignore.

Errors

Code Examples