Sentiment
Score how each AI model talks about a brand, positive / neutral / negative, with the phrases driving the tone.
Overview
Not just whether a model mentions a brand, but how it talks about it. Per model you get a positive/neutral/negative split (summing to ~1) and the verbatim phrases driving it, plus an aggregate across all models queried.
Reference
POST
/v1/sentiment$0.03-$0.09/model · billed per model queried, so all 5 models = $0.32. Pass models to query fewer.
Parameters
queryrequired | string | The query whose answers are scored for brand sentiment. |
brandrequired | string | The brand to score sentiment for in each model answer. |
modelsoptional | array of enum (chatgpt | claude | perplexity | gemini | google_ai_overview) | Optional model subset. Omit to query all five AI surfaces (chatgpt, claude, perplexity, gemini, google_ai_overview). Pass ["perplexity"] or ["perplexity","claude"] when the user asks for specific surfaces or wants to reduce cost. |
Request
curl https://www.cite42.dev/api/v1/sentiment \
-X POST \
-H "Authorization: Bearer $CITE42_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"is attio a good CRM?","brand":"attio"}'Response
{
"query": "is attio a good CRM?",
"brand": "attio",
"perModel": [
{
"model": "chatgpt",
"positive": 0.55,
"neutral": 0.35,
"negative": 0.1,
"phrases": [
"modern, AI-native CRM",
"polished UI"
]
}
],
"aggregate": {
"positive": 0.55,
"neutral": 0.35,
"negative": 0.1,
"phrases": [
"modern, AI-native CRM",
"polished UI"
]
},
"requestId": "…",
"billing": {
"cost": {
"microCredits": 32000,
"usd": "0.32"
},
"balance": {
"microCredits": 1336000,
"usd": "13.36"
}
}
}