v1
latestOpenAPI 3.0.32026-07-26710398.3 KBGet Brands Report
Get a report on Brands.
Aggregation Formulas
When aggregating results across multiple rows/dimensions, use the following formulas:
- sentiment: ((sum(sentiment_sum) / sum(sentiment_count)) / 2 + 0.5) * 100
- position: sum(position_sum) / sum(position_count)
- visibility: sum(visibility_count) / sum(visibility_total)
- share_of_voice: mention_count / sum(mention_count)
filters vs having
filters are pre-aggregation row filters (applied as WHERE before GROUP BY). They shrink both the numerator and the denominator of ratio metrics. Allowed fields: model_id (deprecated), model_channel_id, country_code, prompt_id, tag_id, topic_id, chat_id, brand_id. Note that brand_id in filters shrinks share_of_voice's denominator too — so filtering to one brand collapses SoV to 1.0. Use having for brand_id if you want SoV preserved.
having are post-aggregation row filters (applied as HAVING after GROUP BY). They select which aggregated rows are returned and do not shrink ratio-metric denominators. Filtering {field: "brand_id", values: [X]} here returns only brand X's row, but share_of_voice still divides X's mentions by mentions across all in-scope brands — so SoV stays in [0, 1]. Allowed fields: model_id (deprecated), model_channel_id, country_code, prompt_id, tag_id, topic_id, chat_id, brand_id.
Population fields (model_id etc.) are also allowed in having but require the matching value in dimensions so the column appears in GROUP BY; otherwise the request is rejected.
When dimensions are requested, the share_of_voice denominator follows the same grouping as the numerator. Requesting prompt_id as a dimension produces per-(brand × prompt) rows whose share_of_voice is the brand's mentions in that prompt divided by all brands' mentions in that prompt.
Query parameters
Required if using a company api key
Request body
Example request
{
"project_id": "or_f45b94ba-5e35-4982-93ed-285e72ee14eb",
"start_date": "2025-09-22",
"end_date": "2025-09-22",
"dimensions": [
"tag_id",
"model_id"
],
"filters": [
{
"field": "model_id",
"operator": "in",
"values": [
"gpt-4o-search"
]
}
],
"having": [
{
"field": "brand_id",
"operator": "in",
"values": [
"kw_abc123"
]
}
],
"order_by": [
{
"field": "visibility",
"direction": "desc"
}
]
}Response
Success
Example response
{
"data": [
{
"brand": {
"id": "kw_915e742b-396d-4a86-ad57-8bc84e8c2232",
"name": "Peec AI"
},
"prompt": {
"id": "pr_93f790de-5b7a-45ee-b782-61103c81f20d"
},
"model": {
"id": "gpt-4o-search"
},
"model_channel": {
"id": "openai-1"
},
"tag": {
"id": "tg_23abec5b-100a-4261-9ee7-1effe68f0149"
},
"topic": {
"id": "to_e6b8cdd3-a51b-4d94-a866-28dbe6b830a6"
},
"country_code": "US",
"chat": {
"id": "ch_abc123"
},
"date": "2025-03-15",
"week": "2025-03-10",
"month": "2025-03-01",
"share_of_voice": 0.15,
"mention_count": 42,
"visibility": 0.5,
"visibility_count": 5,
"visibility_total": 10,
"sentiment": 50,
"sentiment_count": 10,
"position": 1.5,
"position_sum": 15,
"position_count": 10
}
]
}