Social volume profile

GET /social-volume-profile
GetSocialVolumeProfile

Returns social post activity distributed across the prices at which one resolved asset traded. Each bin includes sentiment imbalance, revisit count, balance, compression, significance, and point-of-control status. Asset selectors support equities, commodities, indices, and crypto assets returned by GET /assets; commodity and index IDs use asset_class=equity.

Parameters

asset_id string QUERY required

Canonical identifier returned by /assets. Stock, commodity, and index IDs are normally ticker or market symbols and use asset_class=equity; crypto IDs are canonical crypto slugs. asset_class is mandatory whenever asset_id is present.

Example:NVDA

asset_class string QUERY required

Namespace of asset_id, or the market class for endpoints with a class-scoped global view. Stocks, commodities, and indices use equity. Equity is the documented default only where the endpoint description states a default.

Allowed values
equitycrypto

Example:equity

hours integer QUERY

Lookback window in hours.

Default:168

bins integer QUERY

Number of price bins.

Default:30

clusters array<string> QUERY

Repeatable canonical author-cluster filter. Use /clusters to discover current cluster IDs.

Example:smart_money

cURL Example

curl --get \
  --url 'https://nebula-api.hiddensystems.ai/api/v1/public/social-volume-profile' \
  --data-urlencode 'asset_id=NVDA' \
  --data-urlencode 'asset_class=equity' \
  --header 'X-API-Key: YOUR_API_KEY'

Responses

200 OK
400 Bad Request
401 Unauthorized
402 Credit balance exhausted
403 Forbidden
404 Not Found
429 Too Many Requests
500 Internal Server Error
503 Service Unavailable

Media type application/json

bins
array<object> required

Price bins ordered from low to high.

bins[].balance_score
number (double) required

How evenly activity is split between directions, from 0 to 1.

bins[].bearish_posts
number (double) required

Posts classified as bearish.

bins[].bearish_share
number (double) required

Bearish share of directional posts in this bin, from 0 to 1.

bins[].bullish_posts
number (double) required

Posts classified as bullish.

bins[].bullish_share
number (double) required

Bullish share of directional posts in this bin, from 0 to 1.

bins[].compression_score
number (double) required

How slowly price moved while in the bin, from 0 to 1.

bins[].directional_imbalance
number (double) optional

Directional post imbalance (bullish − bearish) / (bullish + bearish), from −1 to 1; absent with no directional posts.

bins[].is_point_of_control
boolean required

True for the bin containing the greatest post activity.

bins[].neutral_posts
number (double) required

Posts classified as neutral.

bins[].price_high_usd
number (double) required

Exclusive upper edge of the price bin in US dollars.

bins[].price_low_usd
number (double) required

Inclusive lower edge of the price bin in US dollars.

bins[].price_mid_usd
number (double) required

Midpoint of the price bin in US dollars.

bins[].significance_score
number (double) required

Composite prominence score for the bin, from 0 to 1.

bins[].total_posts
number (double) required

Post count over the metric's active lookback window.

bins[].total_share
number (double) required

Post count relative to the busiest bin, from 0 to 1.

bins[].visit_count
integer required

Separate times the market price entered this bin during the window.

maximum_posts_in_bin
number (double) required

Post count in the busiest price bin.

maximum_price_usd
number (double) required

Highest profile price in US dollars.

metadata
object optional

Methodology and request-window metadata needed to interpret the response.

metadata.as_of
string (date-time) optional

UTC time at which the metric was calculated.

metadata.bin_count
integer required

Number of requested price bins.

metadata.clusters
array<string> optional

Results keyed or grouped by canonical author-cluster identifier.

metadata.hours
integer required

Lookback window represented by the response, in hours.

metadata.priced_buckets
integer required

Sentiment buckets successfully matched to a market price.

metadata.unpriced_buckets
integer required

Sentiment buckets omitted because no nearby market price was available.

minimum_price_usd
number (double) required

Lowest profile price in US dollars.

point_of_control_bin_index
integer optional

Zero-based index of the busiest bin; absent when the profile is empty.

total_posts
number (double) required

Post count over the metric's active lookback window.

{
  "bins": [
    {
      "balance_score": 0.64,
      "bearish_posts": 438,
      "bearish_share": 0.32,
      "bullish_posts": 1120,
      "bullish_share": 0.68,
      "compression_score": 0.78,
      "directional_imbalance": 0.36,
      "is_point_of_control": true,
      "neutral_posts": 284,
      "price_high_usd": 180,
      "price_low_usd": 175,
      "price_mid_usd": 177.5,
      "significance_score": 0.87,
      "total_posts": 1842,
      "total_share": 0.82,
      "visit_count": 6
    }
  ],
  "maximum_posts_in_bin": 286,
  "maximum_price_usd": 188.75,
  "minimum_price_usd": 161.25,
  "point_of_control_bin_index": 14,
  "total_posts": 1842
}