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

queryrequiredstringThe query whose answers are scored for brand sentiment.
brandrequiredstringThe brand to score sentiment for in each model answer.
modelsoptionalarray 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"
    }
  }
}