Docs Sign inGet started
API reference

Filters

Every analytics endpoint takes the same four filters as the dashboard.

Replace YOUR_API_KEY with a key from Settings → API and MCP. Keys are shown once when you create them.
Parameter Values Default
range 7d, 30d, 90d, all 30d
surface A surface key, like chatgpt_app:chat All surfaces
topic A topic name, exactly as listed All topics
branded unbranded, all, branded unbranded
Filters together
curl -G https://getonym.com/api/v1/domains/acme.example/metrics \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d range=90d -d surface=perplexity:chat -d branded=all

Every response echoes the filters it applied, after defaults, in filters.

range

How far back to count, by run start time. Changes compare with the period of the same length just before it; all has no previous period, so change is null. An unknown value falls back to 30d.

surface

One surface, written engine:lane. The /metrics response lists surfaces with data, as {key, label}. An unknown surface returns empty results, not an error. See Engines and surfaces.

topic

Prompts in one topic, matched exactly. /metrics lists the domain's topics. URL-encode spaces: topic=Open%20source.

branded

Prompts that name any brand steer their answers, so they're left out by default. all includes them; branded shows only them. See Prompts and topics.

Endpoints without filters

/changes, /opportunities and single-answer lookups have their own fixed windows and ignore these filters.