Sentiment AnalysisSentiment Answers

Sentiment Answers

The AI answers behind one sentiment theme — channel, prompt, date, the quoted answer text and the source URLs it cites. Paginated.

curl --request GET \
  --url 'https://api.aiclicks.io/api/v1/sentiment/answers?domain_id=8f1d3c0a-2f9b-4c11-9b80-7a82e1f0c3f3&theme_id=5c1e2a90-7b3d-4f61-9a2e-1d4c8b7e6f01&model=ChatGPT&page=1&size=10' \
  --header 'Authorization: Bearer ak_live_xxx'
{
  "data": {
    "theme_id": "5c1e2a90-7b3d-4f61-9a2e-1d4c8b7e6f01",
    "items": [
      {
        "channel": "ChatGPT",
        "prompt": "Acme Analytics reviews",
        "date": "2026-10-26T00:18:10.448Z",
        "quote": "Acme Analytics looks like a solid tool for small teams. The main drawback reviewers mention is the price of the higher plans and the short free trial...",
        "sources": [
          "https://acme-analytics.com/pricing",
          "https://www.g2.com/products/acme-analytics/reviews"
        ]
      }
    ],
    "pagination": {
      "current_page": 1,
      "per_page": 10,
      "total_count": 7,
      "total_pages": 1,
      "has_next": false,
      "has_prev": false,
      "last_page": true
    }
  },
  "generated_at": "2026-11-09T10:00:11.218Z",
  "domain_id": "8f1d3c0a-2f9b-4c11-9b80-7a82e1f0c3f3",
  "model": "ChatGPT"
}

This endpoint returns the AI answers that raised one sentiment theme. The newest answer comes first. Each answer has the AI channel, the prompt, the date, the full answer text (quote) and the cited source URLs.

Use this endpoint to show why a theme exists. For example, read how ChatGPT describes the brand in the theme "Pricing and Trial Limitations".

Get the theme_id from GET /api/v1/sentiment/themes. Each theme there has an answers_count. This value is the total_count on this endpoint.

The domain_id and theme_id query parameters are required. To find the domains that your key can access, use GET /api/v1/domains. Sentiment data requires a Pro, Business or Enterprise plan. If the team has a different plan, the endpoint returns 403.

Authorizations

header
Authorizationstring
Required

Your API key formatted as Bearer ak_live_<your-key>. Create one in the dashboard under Settings → Developers.

header
X-Request-Idstring

Optional UUID for log correlation. If omitted, we generate one and echo it back in the response.

Query parameters

query
domain_idstring
Required

UUID of the domain. Find domains via GET /api/v1/domains.

query
theme_idstring
Required

UUID of one sentiment theme — the id from GET /api/v1/sentiment/themes.

query
modelstring

Restrict to one AI channel by generic name — ChatGPT, Perplexity, Gemini, AI Overviews, Claude, … Defaults to all.

query
pageinteger

1-indexed page number. Defaults to 1.

query
sizeinteger

Answers per page, 1–50. Defaults to 10. Answer text is long. Use small pages.

query
freshboolean

If true, the server ignores the cached result and calculates a new result. The new result replaces the cached result. Defaults to false.

Response

dataobject
Required

The answers behind the theme.

theme_idstring
Required

Echo of the requested theme.

itemsarray
Required

One row per AI answer that raised the theme, newest first.

paginationobject
Required

current_page, per_page, total_count, total_pages, has_next, has_prev, last_page.

domain_idstring
Required

Echo of the requested domain.

modelstring
Required

Echo of the requested model filter.

generated_atstring
Required

ISO-8601 timestamp of when the server produced (or cached) this response.

Response headers

HeaderDescription
X-CacheHIT, MISS, or REFRESH (when fresh=true). Whether the response came from cache.
X-Request-IdUnique request id. Echoes incoming if you set one.
X-RateLimit-LimitMax requests per minute for this key.
X-RateLimit-RemainingRequests remaining in current minute.
X-RateLimit-ResetUnix epoch seconds when the window resets.

Caching

The server keeps the result in cache for 1 hour for each (domain_id, theme_id, model, page, size). To get a new result, send fresh=true.

Errors

401 Unauthorizederror

Missing, malformed, or revoked API key.

403 Forbiddenerror

The team does not have a Pro, Business or Enterprise plan. Or the team's developer_access flag is off. Or the domain is not in the scope of your API key.

404 Not Founderror

The domain_id is not valid or does not exist. Or your user is not a member of the domain's team.

422 Unprocessable Entityerror

The domain_id or theme_id is missing. Or page or size is out of range.

429 Too Many Requestserror

You sent too many requests. The Retry-After header tells you how long to wait.

Empty result

If the theme has no answers, or the theme_id is unknown, the endpoint returns 200. The items list is empty and total_count is 0.