Skip to main content
GET
List AI Visibility trackers

Authorizations

Authorization
string
header
required

An agent key (rpk_...) created in Settings → API & MCP, sent as Authorization: Bearer rpk_.... Bearer only: a cookie session can never drive this API. An OAuth 2.1 access token obtained from the same host works identically and lands on the same ceiling.

Headers

X-Workspace-Id
string

Which workspace to read. Omit it and you get the account’s home workspace, which on an agency account is often not where the live businesses are. A workspace this credential cannot read is refused with 403 rather than quietly answered from the default.

Query Parameters

q
string

JSON filter object, for example {"needs_response":true}.

sort_by
string

Field to sort on.

limit
integer

Maximum rows to return.

skip
integer

Rows to skip, for paging.

Response

Matching AI Visibility trackers.

id
string

Unique id.

location_id
string
name
string
brand_name
string

The brand to detect in AI answers. Defaults from the BusinessLocation name.

brand_domain
string

Bare domain (e.g. 'reputably.net') used to detect when an AI answer CITES the brand's own site.

brand_aliases
string[]

Other names the business trades as in AI answers — used when the real-world name differs from brand_name (e.g. a domain-named business like 'fibreglasspoolssouthbrisbane.com.au' that answers call 'Fibreglass Pools South Brisbane'). Fed to the analysis prompt so these references count as brand_mentioned instead of being missed or absorbed into a competitor.

competitors
object[]

Competitor set for share-of-voice. Each carries a name (detected in answer text) and an optional domain (detected in citations).

engines
string[]

Which AI answer engines to run prompts against. Keys map to server/lib/aiEngines registry (e.g. ['chatgpt','gemini','claude']).

provider
string

Which backend this tracker runs on.

is_active
boolean
run_frequency_hours
integer

How often the scheduler runs every active prompt against every enabled engine. peec.ai-style daily cadence by default.

last_run_at
string

Bumped by manual 'Run now' and by the scheduler — drives the 'last run X ago' UI label.

last_scheduled_run_at
string

Owned by the scheduler. Gates the run_frequency_hours cadence independent of manual runs.

last_run_summary
object

Outcome of the most recent run attempt, written by runVisibilityTracker on EVERY exit path (success, partial failure, quota stop, fatal error) so the UI can report what actually happened. Success shape: { at, ran, errors, planned, truncated, quota_used, quota_limit, error_samples? }. Fatal shape: { at, ran: 0, message }.