Read group comparisons and grouping opportunities
curl --request GET \
--url https://app.chatobserver.com/api/v2/groups/overview \
--header 'x-chatobserver-key: <api-key>'const options = {method: 'GET', headers: {'x-chatobserver-key': '<api-key>'}};
fetch('https://app.chatobserver.com/api/v2/groups/overview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.chatobserver.com/api/v2/groups/overview"
headers = {"x-chatobserver-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"generatedAt": "<string>",
"comparisonWindowDays": 123,
"kpis": {
"activeGroups": 123,
"segmentationTypes": 123,
"groupedPrompts": 123,
"totalPrompts": 123,
"ungroupedPrompts": 123,
"groupedPercent": 123,
"ungroupedPercent": 123,
"suggestedGroups": 123
},
"groups": [
{
"id": 123,
"revision": 123,
"name": "<string>",
"description": "<string>",
"colorHex": "<string>",
"parentGroupId": 123,
"pathLabel": "<string>",
"groupType": "funnel_stage",
"groupTypeSource": "manual",
"promptCount": 123,
"averageVisibility": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
],
"comparisonMetrics": {
"visibility": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"firstPlace": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"sentiment": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"averagePosition": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
}
},
"status": "critical",
"archivedAt": "<string>",
"updatedAt": "<string>"
}
],
"archivedGroups": [
{
"id": 123,
"revision": 123,
"name": "<string>",
"description": "<string>",
"colorHex": "<string>",
"parentGroupId": 123,
"pathLabel": "<string>",
"groupType": "funnel_stage",
"groupTypeSource": "manual",
"promptCount": 123,
"averageVisibility": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
],
"comparisonMetrics": {
"visibility": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"firstPlace": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"sentiment": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"averagePosition": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
}
},
"status": "critical",
"archivedAt": "<string>",
"updatedAt": "<string>"
}
],
"coverage": [
{
"key": "funnel_stage",
"label": "<string>",
"promptCount": 123,
"percent": 123,
"color": "<string>"
}
],
"opportunities": [
{
"id": "<string>",
"type": "funnel_stage",
"title": "<string>",
"description": "<string>",
"promptCount": 123,
"promptIds": [
123
],
"promptPreview": [
{
"id": 123,
"label": "<string>"
}
],
"suggestedGroupName": "<string>",
"suggestedColorHex": "<string>",
"impact": "high",
"primaryAction": "create_group",
"copyKey": "<string>"
}
],
"clusters": [
{
"id": "<string>",
"type": "funnel_stage",
"title": "<string>",
"description": "<string>",
"promptCount": 123,
"promptIds": [
123
],
"promptPreview": [
{
"id": 123,
"label": "<string>"
}
],
"suggestedGroupName": "<string>",
"suggestedColorHex": "<string>",
"copyKey": "<string>"
}
],
"rules": [
{
"id": 123,
"version": 123,
"name": "<string>",
"groupId": 123,
"groupName": "<string>",
"groupType": "funnel_stage",
"conditionType": "contains_any",
"conditionPayload": {
"keywords": [
"<string>"
],
"pattern": "<string>",
"caseSensitive": true,
"negate": true,
"platforms": [
"chatgpt"
],
"regions": [
"<string>"
]
},
"applyOn": [
"prompt_create"
],
"conditionSummary": "<string>",
"status": "draft",
"priority": 123,
"lastPreviewCount": 123,
"lastAppliedVersion": 123,
"lastAppliedAt": "<string>",
"backfill": {
"id": "<string>",
"status": "queued",
"scannedCount": 123,
"matchedCount": 123,
"errorCode": "<string>"
},
"updatedAt": "<string>"
}
],
"brandRuleTerms": [
"<string>"
]
}
}Prompts
Read group comparisons and grouping opportunities
Read analytics for the authenticated workspace. Requires group feature access and groups:read for MCP. Use section and page to traverse a group detail table. Supported comparison windows: 7, 30 and 90 days.
GET
/
api
/
v2
/
groups
/
overview
Read group comparisons and grouping opportunities
curl --request GET \
--url https://app.chatobserver.com/api/v2/groups/overview \
--header 'x-chatobserver-key: <api-key>'const options = {method: 'GET', headers: {'x-chatobserver-key': '<api-key>'}};
fetch('https://app.chatobserver.com/api/v2/groups/overview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.chatobserver.com/api/v2/groups/overview"
headers = {"x-chatobserver-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"generatedAt": "<string>",
"comparisonWindowDays": 123,
"kpis": {
"activeGroups": 123,
"segmentationTypes": 123,
"groupedPrompts": 123,
"totalPrompts": 123,
"ungroupedPrompts": 123,
"groupedPercent": 123,
"ungroupedPercent": 123,
"suggestedGroups": 123
},
"groups": [
{
"id": 123,
"revision": 123,
"name": "<string>",
"description": "<string>",
"colorHex": "<string>",
"parentGroupId": 123,
"pathLabel": "<string>",
"groupType": "funnel_stage",
"groupTypeSource": "manual",
"promptCount": 123,
"averageVisibility": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
],
"comparisonMetrics": {
"visibility": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"firstPlace": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"sentiment": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"averagePosition": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
}
},
"status": "critical",
"archivedAt": "<string>",
"updatedAt": "<string>"
}
],
"archivedGroups": [
{
"id": 123,
"revision": 123,
"name": "<string>",
"description": "<string>",
"colorHex": "<string>",
"parentGroupId": 123,
"pathLabel": "<string>",
"groupType": "funnel_stage",
"groupTypeSource": "manual",
"promptCount": 123,
"averageVisibility": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
],
"comparisonMetrics": {
"visibility": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"firstPlace": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"sentiment": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
},
"averagePosition": {
"latest": 123,
"observationCount": 123,
"trend": [
{
"label": "<string>",
"value": 123
}
]
}
},
"status": "critical",
"archivedAt": "<string>",
"updatedAt": "<string>"
}
],
"coverage": [
{
"key": "funnel_stage",
"label": "<string>",
"promptCount": 123,
"percent": 123,
"color": "<string>"
}
],
"opportunities": [
{
"id": "<string>",
"type": "funnel_stage",
"title": "<string>",
"description": "<string>",
"promptCount": 123,
"promptIds": [
123
],
"promptPreview": [
{
"id": 123,
"label": "<string>"
}
],
"suggestedGroupName": "<string>",
"suggestedColorHex": "<string>",
"impact": "high",
"primaryAction": "create_group",
"copyKey": "<string>"
}
],
"clusters": [
{
"id": "<string>",
"type": "funnel_stage",
"title": "<string>",
"description": "<string>",
"promptCount": 123,
"promptIds": [
123
],
"promptPreview": [
{
"id": 123,
"label": "<string>"
}
],
"suggestedGroupName": "<string>",
"suggestedColorHex": "<string>",
"copyKey": "<string>"
}
],
"rules": [
{
"id": 123,
"version": 123,
"name": "<string>",
"groupId": 123,
"groupName": "<string>",
"groupType": "funnel_stage",
"conditionType": "contains_any",
"conditionPayload": {
"keywords": [
"<string>"
],
"pattern": "<string>",
"caseSensitive": true,
"negate": true,
"platforms": [
"chatgpt"
],
"regions": [
"<string>"
]
},
"applyOn": [
"prompt_create"
],
"conditionSummary": "<string>",
"status": "draft",
"priority": 123,
"lastPreviewCount": 123,
"lastAppliedVersion": 123,
"lastAppliedAt": "<string>",
"backfill": {
"id": "<string>",
"status": "queued",
"scannedCount": 123,
"matchedCount": 123,
"errorCode": "<string>"
},
"updatedAt": "<string>"
}
],
"brandRuleTerms": [
"<string>"
]
}
}