range, region, engines and brand_slug — and the rest of the API follows the same shape.
Value scales
Two fields express visibility on different scales.
citation_rate on /brands/{slug}/snapshots is a fraction from 0 to 1, and so is the per_engine map beside it. score on /model runs from 0 to 100. Multiply the snapshot values by 100 when you chart the two together.range — the time window
Send one of these four and you’ll get identical behaviour everywhere:
7d · 30d · 90d · 365d
Leave it off and you get 30 days. Some endpoints accept extra aliases beyond the four:
Stick to
7d, 30d, 90d or 365d and every endpoint answers the same way. /brands/{slug}/attribution and /brands/{slug}/search-performance reject anything outside that set with 400 range must be one of 7d/30d/90d/365d.
Windows are computed in UTC. The brand, portfolio and industry endpoints use whole days ending today, inclusive. The citation endpoints use a rolling window from exactly N × 24 hours ago, so counts can differ slightly from a whole-day view of the same period.
/model takes no range at all. It’s always the last 30 days, and it echoes "range": "30d" back so you can see that.
engines — filtering by AI engine
Nine engine slugs exist. Send them exactly as written:
Matching is exact against the stored value, so use the slug rather than a vendor name like
openai or a display name like AI Overviews.
Where each one goes:
/citationstakesenginesas a comma-separated list —engines=chatgpt,perplexity./industry/rankingtakesengines(comma-separated) or the singularengine. The plural wins if you send both./industry/metricstakes a singleengineonly.
You’ll only have data for engines your plan actually scans. Lite and Growth scan six;
claude, grok and deepseek are Enterprise. Filtering by an engine you don’t scan returns an empty result, not an error. See Plans and limits.region and language
region is a lowercase ISO 3166-1 alpha-2 country code — us, gb, de, in. language is a lowercase ISO 639-1 code — en, de, es.
They aren’t wired up identically:
/portfolio defaults to us and en rather than to your brand’s own region. If you track brands outside the US, send region and language explicitly — region=de&language=de, for example.
/brands/{slug}/snapshots takes no region parameter. It resolves the brand’s primary active region for you, which is why its numbers line up with the dashboard.
brand_slug — picking a brand
Account-wide endpoints don’t carry a brand in the path. They default to your newest tracked brand, and accept brand_slug to choose another:
/topics · /model · /citations · /industry/metrics · /industry/ranking · /industry/gap · /industry/competitors/{name}/citations · /industry/competitors/{name}/prompts
Read your slugs from
GET /brands rather than composing them by hand. A slug that matches nothing resolves to the default scope instead of raising an error, so a typo returns a valid-looking answer for the wrong brand.GET /brands lists yours.
Endpoint-specific filters
/brands/{slug}/mentions takes sentiment, one of pos, neu or neg. Anything else returns 400 invalid sentiment filter. The endpoint returns up to 100 mentions per call, so narrow with sentiment and region to get the set you want.
/industry/ranking needs at least one of topics, engines or regions. Call it with only a range and you get 400 at least one of topics, engines, or regions is required. Topics cap at 50 per request and 100 characters each.
The agent endpoints (/brands/{slug}/agents and /agents/pages) share three crawler filters, which combine with AND:
bot— exact bot name, likeGPTBot.vendor— exact operator, likeOpenAI. Covers every bot that company runs.kind— one oftraining_crawler,browsing_agent,agentic_browser,mcp_client.
/agents/pages adds list controls: search (substring on the path, truncated at 200 characters), folder, limit (default 10), offset, sort (hits, path, errors or uniques) and dir (asc or desc). dir is only honoured when you also send sort.
status on that endpoint accepts ok, error, or a bare three-digit code like 404.
A worked example
Perplexity citations for one brand in the UK, last quarter:Related
Customer API
Base URL, the 21 paths, and the error table.
Rate limits
Why a wider
range beats a loop over days.Authentication
Creating and rotating the key these calls need.
MCP tools
The same filters, as arguments on 14 read-only tools.