Skip to main content
POST
Which domains and pages AI answers cite, ranked most-cited first. Group by page for URL-level rows; use scope: "owned" to see only domains you own.
  • Metrics: count (raw citations), citation_share (per-model average share), rank, first_cited_at (pages only).
  • group_by: page, date, model, topic, region, persona, prompt.
  • No sort: rows are always ranked most-cited first.
  • Citation-layer filters: domain (subdomain-aware), page, analysis_type (visibility·sentiment·factcheck·all), citation_category (owned·competition·social·earned_media·earned_institutions·pr_wire·other·custom), citation_tag (your custom tags — list them with Get Citation Tags).
citation_category and citation_tag are both top-level and leaves accepting is / in; values in one in are OR’d, so {"field": "citation_tag", "op": "in", "value": ["Editorial", "Docs"]} matches URLs carrying either tag.
count and citation_share measure different things: citation_share is averaged per AI model, so it won’t sort in lockstep with raw count.
New to the v2 reports? See Filtering & concepts for the shared request shape, filter tree, grouping, and pagination.
POST /v2/reports/citations/stream takes the same request body and returns Server-Sent Events: one summary event (the info block), then one result event per row. limit/cursor are ignored; it returns everything by default. Pass max_results to cap.
Response (text/event-stream)

Authorizations

X-API-Key
string
header
required

Body

application/json
category_id
string<uuid>
required
start_date
string
required

YYYY-MM-DD, ET, inclusive

end_date
string
required

YYYY-MM-DD, ET, inclusive

entity
enum<string>
default:domain

What each row represents: domain (default), page, or citation_category. Legacy: group_by: ["page"] (with entity omitted) is still accepted and is equivalent to entity: "page". citation_category uses the dashboard split view: a citation counts under both its page-level and domain-level category, so category shares can sum to more than 100%.

Available options:
domain,
page,
citation_category
group_by
enum<string>[]
Available options:
page,
date,
model,
topic,
region,
persona,
prompt
metrics
enum<string>[] | null
Available options:
count,
citation_share,
rank,
first_cited_at
interval
enum<string>
default:day
Available options:
day,
week,
month
scope
enum<string>
default:all

all (every cited domain) or owned (only your owned domains). Applies to entity=domain.

Available options:
all,
owned
filter
FilterNode · object | null

citation_category filters on a cited URL's single category; citation_tag filters on the custom citation tags a URL carries (a URL can carry several). List the category's tags with GET /v1/org/categories/{category_id}/citation-tags.

limit
integer | null

Page size; default 10, max 50.

Required range: 0 < x <= 50
max_results
integer | null

Stream endpoint only: cap the number of streamed rows (default: all).

Required range: x > 0
cursor
string | null

Response

Successful Response

info
CitationsV2Info · object
required
data
CitationRow · object[]
required