Skip to main content
GET
Get Signal

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

brand_id
integer
required
signal_id
integer
required

Response

Successful Response

A detected, statistically-tested movement in an AI-visibility metric.

id
integer
required

Signal ID. Stable within one detection; use for getSignal.

detected_for_date
string<date>
required

Anchor date the nightly detection ran for (YYYY-MM-DD).

fingerprint
string
required

Stable identity of the underlying issue across nightly re-detections (hash of the slice + metric). An ongoing signal is re-raised daily under the same fingerprint; reactions are keyed on it.

subject_kind
enum<string>
required

Whose movement the signal describes: your brand or a competitor.

Available options:
brand,
competitor
alert_type
enum<string>
required

Detection kind: level_change (step shift) or trend (sustained drift).

Available options:
level_change,
trend
scope
enum<string>
required

Slice granularity: account, account_platform, topic, or topic_platform.

Available options:
account,
account_platform,
topic,
topic_platform
metric
string
required

Metric the signal fired on (e.g. presence_rate, position_top_rate, cited_domain_rate).

platform
string
required

AI platform the signal was detected on. (multi) means the slice spans several platforms — see slice.platforms for the real list.

direction
enum<string>
required

Direction of the movement: up, down, none.

Available options:
up,
down,
none
tier
enum<string>
required

Confidence tier, best first: high, confident, worth_a_look, provisional, then noise-floor tiers low_confidence, underpowered, untested (hidden by default).

Available options:
high,
confident,
worth_a_look,
provisional,
low_confidence,
underpowered,
untested
current_value
number
required

Metric value over the current window (0-1 rate).

baseline_value
number
required

Metric value over the baseline window (0-1 rate).

delta_absolute
number
required

current_value - baseline_value (positive = up).

narrative_what
string
required

One-line headline of what changed.

slice
APISignalSlice · object
required

The data slice the signal was detected on.

created_at
string<date-time>
required

When the signal row was created (UTC).

score
number | null

Engine priority score used for the default sort; null for legacy rows.

narrative
APISignalNarrative · object | null

Full narrative (what happened / why it matters / what to do), when available.

window_current_start
string<date> | null

Start of the current comparison window.

window_current_end
string<date> | null

End of the current comparison window.

baseline_definition
string | null

Human-readable definition of the baseline window.

url_movers
APISignalUrlMover · object[]

Per-URL citation movers behind the signal: the brand/competitor URLs whose distinct-response citation counts moved most between the baseline and current windows. Emitted for cited_domain_rate signals; empty for other metrics and older signals. Filterable via mover_url.