Get Sentiment Report
Keyword sentiment metrics grouped by one or more dimensions.
Example: “Show positive keyword trends by topic, broken down monthly.”
Dimensions (at least 1 required): topic, tag, market, model, query, date, website
datesupports optionaldate_aggregation_interval:day(default) |week|monthwebsiteauto-setswebsite_typetoSELF+COMPETITORS(default isSELF)
Measures (omit for all): total_keyword_occurrences, total_positive_keyword_occurrences, unique_positive_keywords, total_unique_keywords
Filters: topics, prompts, tags, markets, intent, branded, platform, has_shopping_card, visibility, rank, website_mentioned_in_answer, cited_page_url, cited_domain, website_mentioned_in_citation, status.
Sort fields: Any measure name, plus date, query_name, topic_name, market_name, model_name, website_name, tag_name.
Dates: If no dates provided, defaults to latest run date range. Provide start_date and end_date in ISO 8601 format to specify a custom range.
Pagination: Use pagination (limit 1-100, default 10; offset for paging). Use order_by for sorting.
Response: Returns data array with info metadata containing total_rows (before pagination) and query (applied metrics, dates, sorting, pagination, filters).
Authorizations
Body
Request parameters for the Sentiment Report API.
Unique identifier of the project to query. Get valid project IDs from get_all_projects.
1"550e8400-e29b-41d4-a716-446655440000"
Dimensions to group sentiment data by. At least one dimension is required.
1Dimensions to group report data by.
topic: Group by topic/categorytag: Group by tagmarket: Group by market/regionmodel: Group by AI model (e.g. ChatGPT, Perplexity)query: Group by individual query/promptdate: Group by date (requires date_aggregation_interval)website: Group by tracked websiteshopping: Group by whether the response has a shopping card (true/false)ads: Group by whether the response has sponsored/ad placements (true/false)branded: Group by whether the underlying query is branded (true/false)
topic, tag, market, model, query, date, website, shopping, ads, branded ["topic", "model"]["market", "date"]Start of the date range (ISO 8601). Limits results to data collected on or after this date. When omitted: defaults to the latest run's start date for metric queries, or earliest available date for list queries.
"2026-01-01T00:00:00Z"
"2026-03-01T00:00:00Z"
End of the date range (ISO 8601). Limits results to data collected on or before this date. When omitted: defaults to today. Date-only strings (no 'T') are extended to end of day.
"2026-01-31T23:59:59Z"
"2026-03-17T23:59:59Z"
Sort results by one or more fields. Each entry specifies a field name and direction. Results are sorted by the first entry, then ties broken by subsequent entries.
[
{
"field": "visibility_score",
"order": "desc"
}
][
{ "field": "mention_count", "order": "desc" },
{ "field": "rank", "order": "asc" }
]Control result pagination. Set limit for page size and offset to skip results. Omit to return all results (use with caution on large datasets).
{ "limit": 10, "offset": 0 }{ "limit": 25, "offset": 50 }Sentiment metrics to include. If empty, all measures are returned.
Sentiment metrics to include in the report.
total_keyword_occurrences: Total occurrences of tracked keywordstotal_positive_keyword_occurrences: Occurrences of positive sentiment keywordsunique_positive_keywords: Count of distinct positive keywords foundtotal_unique_keywords: Count of all distinct keywords foundpositive_subtheme_count: Count of subthemes classified as positive (majority-vote: positive keyword hits >= negative hits)negative_subtheme_count: Count of subthemes classified as negative (majority-vote: negative keyword hits > positive hits)
total_keyword_occurrences, total_positive_keyword_occurrences, unique_positive_keywords, total_unique_keywords, positive_subtheme_count, negative_subtheme_count [
"total_keyword_occurrences",
"unique_positive_keywords"
]Narrow results by topics, markets, platforms, etc. All filters are optional and combine with AND logic.
Optional. When using the 'date' dimension, controls time-series bucket size. Defaults to 'day' if omitted. Options: day, week, month.
day, week, month "week"
"day"
Scope results by website ownership. 'SELF' = your brand only, 'SELF+COMPETITORS' = your brand plus competitors, 'ALL' = all citations without domain filtering.
SELF, SELF+COMPETITORS, ALL "SELF"