Skip to main content
POST
Source domains with citation & brand-reach metrics

Headers

x-project-id
string
required

Project ID to specify the project context

Body

application/json
startDate
string

Start date (inclusive)

Example:

"2025-01-01"

endDate
string

End date (exclusive)

Example:

"2025-02-01"

countries
string[]

Filter by country codes

Example:
languages
string[]

Filter by language codes

Example:
models
string[]

Filter by AI models

Example:
queryIds
string[]

Filter by query IDs

Example:
hasSources
enum<string>

Filter by source presence: "sources" (only with sources), "no_sources" (only without), "all" (no filter). Legacy true/false values are still accepted.

Available options:
all,
sources,
no_sources
hasShopping
enum<string>

Filter by shopping presence: "shopping" (only with shopping), "no_shopping" (only without), "all" (no filter). Legacy true/false values are still accepted.

Available options:
all,
shopping,
no_shopping
queryTagIds
string[]

Filter by query tag IDs (numeric — bigint column)

Example:
execTagIds
string[]

Filter by execution tag IDs

Example:
queryTagGroupIds
string[]

Filter by query tag group IDs — matches rows carrying any tag filed under a selected group. Combines with queryTagIds per queryTagMode.

Example:
execTagGroupIds
string[]

Filter by execution tag group IDs — matches rows carrying any tag filed under a selected group. Combines with execTagIds per execTagMode.

Example:
queryTypes
enum<string>[]

Filter by query type. Include "untyped" to also match queries without a type. Results from since-deleted queries are excluded when this filter is set.

Available options:
comparative,
informative,
perception,
untyped
queryTagMode
enum<string>
default:or

Query tag matching mode: "or" matches ANY tag (default), "and" matches ALL tags.

Available options:
and,
or
execTagMode
enum<string>
default:or

Execution tag matching mode: "or" matches ANY tag (default), "and" matches ALL tags.

Available options:
and,
or
timezone
string
default:UTC

IANA timezone for date bucketing and filtering (e.g. "Europe/Brussels"). Defaults to UTC.

Example:

"Europe/Brussels"

groupBy
enum<string>

Row grouping level for entity results. "none" = one row per entity, "division" = one row per division (entities not in a division get their own row), "group" = one row per top-level group (divisions roll up into their group). Defaults to "none".

Available options:
none,
division,
group
groupByEntityGroup
boolean
deprecated

Deprecated — use groupBy instead. true is equivalent to groupBy="group".

Example:

false

showAllEntities
boolean

Include entities that have only ever been seen in a single AI response. These are mostly one-off extraction noise and are hidden by default.

Example:

false

tlds
string[]

Restrict to source domains whose ICANN public suffix is one of these values. Matched exactly against the full suffix (e.g. "co.uk", not "uk").

Example:
entityIds
string[]

Entity IDs to compute brand metrics for (defaults to primary non-blacklisted)

Example:
limit
number

Max domains to return (omit for all)

Example:

50

page
number
default:1

Page number (1-based).

Example:

1

pageSize
number
default:50

Items per page (max 200).

Example:

50

categorySlugs
string[]

Filter to domains whose resolved source-type category matches one of these slugs. Pass 'other' to match uncategorised domains.

Example:

Case-insensitive substring filter on the domain name (e.g. "reddit" matches reddit.com).

Example:

"reddit"

sort
object[]

Sorting criteria applied to the returned domains. Each entry pairs a sortable field (e.g. domain, resultCount, citationRate, citationShare, pageCount, brandPageCount, entityCitationShare, presence, brandResultCount, trueReach) with a sort direction.

Example:

Response

totalResponses
number
required

Total number of AI responses in the filtered scope. Used as the denominator for citationRate.

Example:

365

totalCitations
number
required

Sum of resultCount across all source domains. Used as the denominator for citationShare. Note: this can exceed totalResponses because one response may cite multiple domains.

Example:

712

totalBrandPages
number
required

Sum of brandPageCount across all source domains. Used as the denominator for entityCitationShare.

Example:

200

sources
object[]
required

Per-domain statistics with all citation and brand reach metrics, ordered by resultCount descending (unless sorted).

page
object
required

Pagination metadata.