Common rules
- Cited domain, URL, and fan-out statistics require at least one of
runIDsorpromptIDsto set the scope. You cannot aggregate an entire organization at once. - Pass multiple values by repeating the parameter (
?runIDs=a&runIDs=b; up to 5runIDsand up to 10promptIDs). Comma-separated values are not supported. If you send a comma-separated string, it is treated as a single value. - Use
modelto narrow aggregation to answers from a specific model. - Results are a top-N ranking.
limitdefaults to 50 and is capped at 200. There is no cursor pagination. - The full rules are defined in Statistics common rules, which is the source of truth.
Cited domain ranking
See which domains are cited most often in AI answers. This is the core data for answering “which sources should I target?”- Set
groupBy=subdomainto aggregate at the subdomain level (the default is domain level). - Set
include=modelsto include per-model citation counts for each domain. - Use the
domainsparameter (repeatable, up to 50) to retrieve specific domains only. Matching followsgroupBy. totalDomainsis returned asnullwhen the number of distinct domains exceeds the internal aggregation limit.
Cited URL ranking
Go one level deeper than domains and see which pages are cited.include=quotes to include the sentences the AI actually quoted from each page. As in the example above, you can see which sentences from magazine-style content get quoted, which is a direct hint about what kind of writing AI models cite well. When the same document appears under several URL forms (such as a mobile subdomain), they are normalized automatically and counted as one.
- Set
groupBy=subdomainto switch both thedomainsfilter matching and each entry’sdomainfield to the subdomain axis. You can paste values from the domain ranking (groupBy=subdomain) directly to drill down. - Set
include=modelsto include per-model citation counts for each URL (same pattern as domain statistics). - If you need the list of answers that cited a specific URL, pass the
urlvalue from the response unchanged toGET /answers?sourceURL=…. For the domain level, usesourceDomain.
Fan-out query aggregation
A ranking of the fan-out queries AI models actually issued to build their answers. It shows which search terms AI uses to find information, and therefore which search terms your content needs to rank for in order to be cited.totalFanoutsis the total number of fan-outs across the whole query scope. You can compute each query’s share asfanoutCount ÷ totalFanouts.- The distinct
modelsandregionslists per query are included only when you setinclude=modelsandinclude=regions.
Comparing across runs
Run the same prompt set at different points in time and compare the two rankings to see how citations change (your visibility trend). There is no per-run breakdown parameter; the intended usage is to call the endpoint once per run and compare on the client. Watch out for one trap: the top N differs between runs, so a domain that ranks high in run A but falls outside the ranking in run B leaves a hole in your comparison table. Solve it with the following two-step pattern.- Collect the comparison keys: call the domain statistics once for each run and build the union of the domain keys you want to compare.
- Query again with explicit keys: pass those keys in the
domainsfilter (up to 50) and query each run again. Domains outside the top N also return metrics when specified, so every cell in the comparison table is filled.
totalCitations as the denominator. The number of successful answers differs between runs, so comparing raw counts is misleading.
Frequently asked questions
The statistics result is empty. Either the run is still in progress (check withGET /runs/:runID), or the specified runIDs/promptIDs have no successful answers. Fan-out statistics are also empty if you ran only models that do not support fan-out.
I want to see trends over time for my whole organization.
Statistics are currently snapshots per run or per prompt. Submit runs on a regular schedule and store each run’s statistics using the Comparing across runs pattern above to compare them.