Filters
Every analytics endpoint takes the same four filters as the dashboard.
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 |
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=allEvery 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.