brands: "all": one row per brand, you plus every confirmed competitor, each with its rank by Visibility Score.
How this example works
brands: "all"returns you and every confirmed competitor. Your row hasbrand.owned: true.rankis by Visibility Score, 1 = best. To order by another metric, passsortor sort in your code. Use descending order for rates and the score, and ascending foraverage_position, where lower is better.- One page is enough. A leaderboard holds you plus your confirmed competitors, well under the 100-row page size.
Per engine
Addgroup_by: ["platform"] and rank restarts within each engine, so you can see where a competitor leads and where you do. Rows come sorted by engine, then rank.
Only some brands
Pass a list instead of"all": brands: ["Misali Foods", "Shan Foods"]. Names match your brand or a confirmed competitor, ignoring case. rank is still the brand’s position among everyone, not among the brands you listed. A name that matches neither returns no row, so check that every brand you asked for came back.
With change
Run the same call for the previous window (how to compute it) and join onbrand.name to show each brand’s change in score and in rank.
Unconfirmed competitors are measured but not ranked. Confirm them on the Competitors page and they appear here, for past ranges too. See Why past numbers change.
Common follow-ups
Compare competitors over time
The same brands, day by day.
Your brand, domains and competitors
Who is confirmed, and their domains.