Token simple sentiment

GET /token/{id}/simple-sentiment
GetTokenIdSimpleSentiment

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.

Parameters

id string PATH required

Token identifier. Accepts internal token_id (integer) or coingecko_id (string, e.g. bitcoin).

Example:bitcoin

hours integer QUERY

Lookback window in hours.

Example:168

granularity string QUERY

Optional bucket size override. If provided, response is aggregated at this interval regardless of lookback window.

Allowed values
1h2h4h12h1d

Example:1h

clusters array<string> QUERY

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).

Example:string

cURL Example

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

Responses

200 OK
400 Bad Request ErrorResponse

Media type application/json

cohorts
object optional

Sentiment series by author-cohort id. Keys are strings "0" through "5"; higher ids represent higher-confidence/smart-money author buckets.

summary
array<object> optional

Aggregate sentiment series across non-baseline cohorts.

summary[].bearish_posts
number (double) optional

Count of bearish posts included in the computed window.

summary[].bucket_start
string (date-time) optional

UTC bucket start timestamp.

summary[].bullish_posts
number (double) optional

Count of bullish posts included in the computed window.

summary[].interval_bearish_posts
number (double) optional

Bearish posts in the current emitted interval bucket.

summary[].interval_bullish_posts
number (double) optional

Bullish posts in the current emitted interval bucket.

summary[].interval_neutral_posts
number (double) optional

Neutral posts in the current emitted interval bucket.

summary[].interval_posts
number (double) optional

Posts in the current emitted interval bucket.

summary[].neutral_posts
number (double) optional

Count of neutral posts included in the computed window.

summary[].sentiment_score
number (double) optional

Sentiment score on a 0-100 scale (higher is more bullish).

summary[].sentiment_score_smoothed
number (double) optional

Smoothed sentiment score (0-100) when available.

summary[].sentiment_score_z
number (double) optional

Z-score normalized sentiment where available.

summary[].sentiment_signal
number (double) optional

Model-level sentiment signal used for downstream ranking when available.

summary[].total_posts
number (double) optional

Total posts included in the computed window.

summary[].total_posts_smoothed
number (double) optional

Smoothed total-posts series where available.

{
  "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
    }
  ]
}