Skip to main content
GET
List AI traffic sites

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 traffic sites.

id
string

Unique id.

location_id
string
domain
string

Bare lowercase hostname, www stripped. Normalized on write — BusinessLocation.website is stored raw and cannot be compared directly.

site_key
string

Public identifier embedded in the installed tracker ('rst_' + 32 hex). Not a secret in any meaningful sense — it ships in client-side code on the beacon path — so it grants append-only ingest for exactly one site and nothing else.

install_type
enum<string>

Which tracker reported last. 'beacon' can only ever see AI referrals; crawler hits require worker/server because AI crawlers do not execute JavaScript.

Available options:
worker,
server,
beacon
first_seen_at
string
last_seen_at
string

Last accepted ingest. Drives the 'installed / silent' badge on the setup card.

verify_nonce
string

Set by verifyAiTrafficSite: we fetch the site with this nonce in the query string and wait for the installed tracker to report it back, which proves the whole pipe end to end.

verified_at
string