Skip to main content
POST
Get Sentiment Report

Authorizations

X-API-KEY
string
header
required

Body

application/json

Request parameters for the Sentiment Report API.

project_id
string
required

Unique identifier of the project to query. Get valid project IDs from get_all_projects.

Minimum string length: 1
Example:

"550e8400-e29b-41d4-a716-446655440000"

dimensions
enum<string>[]
required

Dimensions to group sentiment data by. At least one dimension is required.

Minimum array length: 1

Dimensions to group report data by.

  • topic: Group by topic/category
  • tag: Group by tag
  • market: Group by market/region
  • model: Group by AI model (e.g. ChatGPT, Perplexity)
  • query: Group by individual query/prompt
  • date: Group by date (requires date_aggregation_interval)
  • website: Group by tracked website
  • shopping: 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)
Available options:
topic,
tag,
market,
model,
query,
date,
website,
shopping,
ads,
branded
Examples:
start_date
string<date-time>

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.

Examples:

"2026-01-01T00:00:00Z"

"2026-03-01T00:00:00Z"

end_date
string<date-time>

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.

Examples:

"2026-01-31T23:59:59Z"

"2026-03-17T23:59:59Z"

order_by
SortingOrder · object[]

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.

Examples:
pagination
PaginationInput · object

Control result pagination. Set limit for page size and offset to skip results. Omit to return all results (use with caution on large datasets).

Examples:
measures
enum<string>[]

Sentiment metrics to include. If empty, all measures are returned.

Sentiment metrics to include in the report.

  • total_keyword_occurrences: Total occurrences of tracked keywords
  • total_positive_keyword_occurrences: Occurrences of positive sentiment keywords
  • unique_positive_keywords: Count of distinct positive keywords found
  • total_unique_keywords: Count of all distinct keywords found
  • positive_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)
Available options:
total_keyword_occurrences,
total_positive_keyword_occurrences,
unique_positive_keywords,
total_unique_keywords,
positive_subtheme_count,
negative_subtheme_count
Example:
filters
SentimentFiltersInput · object

Narrow results by topics, markets, platforms, etc. All filters are optional and combine with AND logic.

date_aggregation_interval
enum<string>

Optional. When using the 'date' dimension, controls time-series bucket size. Defaults to 'day' if omitted. Options: day, week, month.

Available options:
day,
week,
month
Examples:

"week"

"day"

website_type
enum<string>

Scope results by website ownership. 'SELF' = your brand only, 'SELF+COMPETITORS' = your brand plus competitors, 'ALL' = all citations without domain filtering.

Available options:
SELF,
SELF+COMPETITORS,
ALL
Example:

"SELF"

Response

Successful Response

Response containing sentiment report data.

info
ResponseInfo · object

Information of the API request including total count and query details

data
SentimentDataRow · object[]

Array of sentiment data rows grouped by the requested dimensions