Reports v2
Query Sentiment
POST
Per-brand sentiment as positive/negative percentages (0–100).
asset is
required (sentiment is per-brand). Add comparison_start_date /
comparison_end_date to get a previous block on each row for
period-over-period deltas in a single call.
- Metrics:
positive_sentiment,negative_sentiment(sum to 100 per row), andoccurrence(opt-in; needstheme/claimgrouping or filtering). group_by: up to two oftopic,region,model,prompt,persona,tag,theme,claim,run,competitor(plusdate).- Entity filters:
theme/claimacceptis/in, single value, name or id. include_cited_websites: trueaddscited_websitesper row (withtheme/claimgrouping).
New to the v2 reports? See Filtering & concepts for the shared request shape, filter tree, grouping, and pagination.
Streaming (SSE) variant (same body, /stream)
Streaming (SSE) variant (same body, /stream)
POST /v2/reports/sentiment/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
Body
application/json
The brand name to analyze (sentiment is extracted on name, not id).
YYYY-MM-DD, ET, inclusive
YYYY-MM-DD, ET, inclusive
YYYY-MM-DD, ET, inclusive (with end).
YYYY-MM-DD, ET, inclusive (with start).
Available options:
date, model, topic, region, prompt, persona, tag, theme, claim, run, competitor Available options:
positive_sentiment, negative_sentiment, occurrence Available options:
day, week, month A leaf (field/op/value) or an and/or/not group.
Return cited websites per row (only when grouping by theme/claim).
Page size; default 10, max 50.
Required range:
0 < x <= 50Stream endpoint only: cap the number of streamed rows (default: all).
Required range:
x > 0Response
Successful Response
The response is of type Response Query Sentiment V2 V2 Reports Sentiment Post · object.