curl --request POST \
--url https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"advertiser_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"group_label": "<string>",
"refresh": false
}
'import requests
url = "https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary"
payload = {
"advertiser_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"group_label": "<string>",
"refresh": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
advertiser_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
group_label: '<string>',
refresh: false
})
};
fetch('https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'advertiser_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'group_label' => '<string>',
'refresh' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary"
payload := strings.NewReader("{\n \"advertiser_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"group_label\": \"<string>\",\n \"refresh\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"advertiser_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"group_label\": \"<string>\",\n \"refresh\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"advertiser_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"group_label\": \"<string>\",\n \"refresh\": false\n}"
response = http.request(request)
puts response.read_body{
"group_key": "<string>",
"generated_at": "2023-11-07T05:31:56Z",
"period": "<string>",
"prompt_version": "<string>",
"schema_version": "<string>",
"status": "ready",
"summary": "",
"weekly": [
{
"title": "<string>",
"detail": "<string>",
"evidence_refs": [
"<string>"
],
"confidence": "medium"
}
],
"monthly": [
{
"title": "<string>",
"detail": "<string>",
"evidence_refs": [
"<string>"
],
"confidence": "medium"
}
],
"recommendations": [
{
"title": "<string>",
"detail": "<string>",
"evidence_refs": [
"<string>"
],
"confidence": "medium"
}
],
"source_refs": {},
"provenance": {},
"fallback_reason": "<string>",
"refresh_available_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get Brand Intelligence Group Commentary Route
Weekly AI commentary for one Tracked Brands group, cached per ISO week.
First view of a week queues a background generation and returns a pending
placeholder; refresh=true re-queues at most once per 24h (cooldown is
server-enforced — a throttled refresh still returns the cached response
with cache_status=refresh_throttled).
Same client-curated cohort as the Insights route, so the same narrowing applies (finding C2 / ruling R21) — and it must happen BEFORE the cache key is derived, otherwise a caller could mint a cache entry keyed on ids they cannot see and the background refresh would generate commentary over them.
curl --request POST \
--url https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"advertiser_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"group_label": "<string>",
"refresh": false
}
'import requests
url = "https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary"
payload = {
"advertiser_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"group_label": "<string>",
"refresh": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
advertiser_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
group_label: '<string>',
refresh: false
})
};
fetch('https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'advertiser_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'group_label' => '<string>',
'refresh' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary"
payload := strings.NewReader("{\n \"advertiser_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"group_label\": \"<string>\",\n \"refresh\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"advertiser_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"group_label\": \"<string>\",\n \"refresh\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/group-insights/commentary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"advertiser_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"group_label\": \"<string>\",\n \"refresh\": false\n}"
response = http.request(request)
puts response.read_body{
"group_key": "<string>",
"generated_at": "2023-11-07T05:31:56Z",
"period": "<string>",
"prompt_version": "<string>",
"schema_version": "<string>",
"status": "ready",
"summary": "",
"weekly": [
{
"title": "<string>",
"detail": "<string>",
"evidence_refs": [
"<string>"
],
"confidence": "medium"
}
],
"monthly": [
{
"title": "<string>",
"detail": "<string>",
"evidence_refs": [
"<string>"
],
"confidence": "medium"
}
],
"recommendations": [
{
"title": "<string>",
"detail": "<string>",
"evidence_refs": [
"<string>"
],
"confidence": "medium"
}
],
"source_refs": {},
"provenance": {},
"fallback_reason": "<string>",
"refresh_available_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Response
Successful Response
ready, pending 6006Show child attributes
Show child attributes
6Show child attributes
Show child attributes
6Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?