# Token simple sentiment

- Method: `GET`
- Path: `/token/{id}/simple-sentiment`
- Tier: Basic
- HTML docs: https://docs.hiddensystems.ai/nebula/reference/get-token-id-simple-sentiment/
- Interactive docs: https://docs.hiddensystems.ai/nebula/#endpoint=get-token-id-simple-sentiment

## Description

Smoothed sentiment series (summary and cohorts). Optionally scope to a subset of social clusters via `clusters` (repeatable); the merged series is returned in `summary`. `clusters=smart_money` supersedes the dedicated smart-money-sentiment endpoint.

## cURL Example

```bash
curl --request GET \
  --url 'https://nebula-api.hiddensystems.ai/api/v1/public/token/bitcoin/simple-sentiment' \
  --header 'X-API-Key: YOUR_API_KEY'
```

## Path Parameters

- `id` (string, required): Token identifier. Accepts internal token_id (integer) or coingecko_id (string, e.g. bitcoin).

## Query Parameters

- `hours` (integer, optional): Lookback window in hours.
- `granularity` (string, optional): Optional bucket size override. If provided, response is aggregated at this interval regardless of lookback window.
- `clusters` (array<string>, optional): Optional. Repeatable. Scope the metric to a subset of social clusters (the union of the ids). Omit for ALL. Ids: smart_money, dumb_money, top_degens (caller-list, token-only), plus author clusters (developers, founders, team_leaders, project_accounts, vcs, asset_managers, dao_guild_funds, incubators, exchanges, kols, celebrities, media, marketer, shiller, ta_analyst, fa_analyst, macro_analyst, onchain_analyst, investigators, position_trader, swing_trader, day_trader, tribalist, perma_bull, doomer, political, nft, bots, automated_ai).

## Response

OK

- `cohorts` (object): Sentiment series by author-cohort id. Keys are strings "0" through "5"; higher ids represent higher-confidence/smart-money author buckets.
- `summary` (array<object>): Aggregate sentiment series across non-baseline cohorts.
- `summary[].bearish_posts` (number (double)): Count of bearish posts included in the computed window.
- `summary[].bucket_start` (string (date-time)): UTC bucket start timestamp.
- `summary[].bullish_posts` (number (double)): Count of bullish posts included in the computed window.
- `summary[].interval_bearish_posts` (number (double)): Bearish posts in the current emitted interval bucket.
- `summary[].interval_bullish_posts` (number (double)): Bullish posts in the current emitted interval bucket.
- `summary[].interval_neutral_posts` (number (double)): Neutral posts in the current emitted interval bucket.
- `summary[].interval_posts` (number (double)): Posts in the current emitted interval bucket.
- `summary[].neutral_posts` (number (double)): Count of neutral posts included in the computed window.
- `summary[].sentiment_score` (number (double)): Sentiment score on a 0-100 scale (higher is more bullish).
- `summary[].sentiment_score_smoothed` (number (double)): Smoothed sentiment score (0-100) when available.
- `summary[].sentiment_score_z` (number (double)): Z-score normalized sentiment where available.
- `summary[].sentiment_signal` (number (double)): Model-level sentiment signal used for downstream ranking when available.
- `summary[].total_posts` (number (double)): Total posts included in the computed window.
- `summary[].total_posts_smoothed` (number (double)): Smoothed total-posts series where available.

Media type: `application/json`

## JSON Response

```json
{
  "cohorts": {},
  "summary": [
    {
      "bearish_posts": 0,
      "bucket_start": "2026-01-15T12:00:00Z",
      "bullish_posts": 0,
      "interval_bearish_posts": 0,
      "interval_bullish_posts": 0,
      "interval_neutral_posts": 0,
      "interval_posts": 0,
      "neutral_posts": 0,
      "sentiment_score": 0,
      "sentiment_score_smoothed": 0,
      "sentiment_score_z": 0,
      "sentiment_signal": 0,
      "total_posts": 0,
      "total_posts_smoothed": 0
    }
  ]
}
```
