Hype cycle arrivals

GET /clusters/comparison/hype-cycles
CompareHypeCycles

The window's biggest hype cycles and the order in which the clusters arrived in each.

A hype cycle is an asset whose market posts peaked at 50 or more in a day and at least 3× its median day. The response takes the limit cycles with the most posts on their peak day, then lists them most recent peak first; a cycle appears once the day after its peak is complete. For each cycle: the market's busiest hour of the peak day, its posts on the peak day, the market's posts hour by hour from 24 hours before that hour to 23 hours after, and arrivals, every cluster with 3 or more posts in those 48 hours, placed at the posts-weighted average hour of its posts relative to the peak hour, earliest first. Each cluster's average lead across every cycle is the clusters list of /clusters/hype-cycles.

Built from a daily per-cluster rollup of complete UTC days (today excluded, refreshed every few hours). The market is every author except bots; asset_class filters every cluster and the market. Posting communities (wallstreetbets, reddit) cover equities only, so they are absent unless equity is selected.

Parameters

asset_class array<string> QUERY

The markets to compare the clusters across: equity (stocks and ETFs), commodity, index, crypto, or any combination, for example asset_class=equity,index. Defaults to all four. Send several comma-separated.

Default:equity,commodity,index,crypto

days integer QUERY

How many complete UTC days of market peaks to include, counting back from the latest complete day: 7, 30, or 90. Free plans read up to 90 days back; Pro plans up to this parameter's maximum. A value reaching past your plan's window returns 403 and is not charged.

Allowed values
73090

Default:30

limit integer QUERY

Maximum hype cycles returned: the biggest by posts on their peak day.

Default:40

cURL Example

curl --request GET \
  --url 'https://nebula-api.hiddensystems.ai/api/v1/public/clusters/comparison/hype-cycles' \
  --header 'X-API-Key: YOUR_API_KEY'

Responses

200 OK
400 Bad Request
401 Unauthorized
402 Credits used up; upgrade_url links to buying more
403 Forbidden
404 Not Found
405 Method not allowed; the Allow header lists the supported method
429 Too Many Requests
500 Internal Server Error
503 Service Unavailable

Media type application/json

asset_classes
array<string> required

The markets analysed, in the order equity, commodity, index, crypto: the asset_class values requested, or all four when asset_class was omitted.

cycles
array<object> required

The window's biggest hype cycles, most recent peak first, up to limit.

cycles[].arrivals
array<object> required

Every cluster with 3 or more posts in the 48 hours around the peak hour, earliest first.

cycles[].arrivals[].cluster_id
string required

Canonical author-cluster identifier.

cycles[].arrivals[].offset_hours
number (double) required

Hours from the market's peak hour to the posts-weighted average hour of the cluster's posts in the 48 hours around it. Negative is before the peak.

cycles[].arrivals[].posts
integer (int64) required

The cluster's posts on the asset in the 48 hours around the peak hour.

cycles[].asset_class
string required

The asset's class: equity (stocks and ETFs), commodity, index, or crypto. Send it with asset_id on every asset-scoped request.

Allowed values
equitycommodityindexcrypto
cycles[].asset_id
string required

Canonical public asset identifier: the ticker or market symbol for stocks, commodities, and indices, and the CoinGecko slug (or, without one, a numeric id) for crypto.

cycles[].name
string required

Human-readable name.

cycles[].peak_day_posts
integer (int64) required

The market's posts on the asset on the peak day, bots left out.

cycles[].peak_timestamp
string (date-time) required

UTC start of the market's busiest hour on the peak day.

cycles[].series
array<object> required

The market's posts on the asset hour by hour, from 24 hours before the peak hour to 23 hours after it: 48 observations.

cycles[].series[].posts
integer (int32) required

The market's posts on the asset in the hour, bots left out.

cycles[].series[].timestamp
string (date-time) required

UTC start of the hour.

cycles[].symbol
string required

Display ticker or market symbol.

days
integer required

Window length in complete UTC days, ending at the latest complete day.

{
  "asset_classes": [
    "equity",
    "commodity",
    "index",
    "crypto"
  ],
  "cycles": [
    {
      "arrivals": [
        {
          "cluster_id": "smart_money",
          "offset_hours": -3.2,
          "posts": 18
        },
        {
          "cluster_id": "team_leaders",
          "offset_hours": -2.1,
          "posts": 9
        },
        {
          "cluster_id": "media",
          "offset_hours": 1.4,
          "posts": 57
        }
      ],
      "asset_class": "equity",
      "asset_id": "ORCL",
      "name": "Oracle Corporation",
      "peak_day_posts": 930,
      "peak_timestamp": "2026-09-10T14:00:00Z",
      "series": [
        {
          "posts": 41,
          "timestamp": "2026-09-10T13:00:00Z"
        },
        {
          "posts": 112,
          "timestamp": "2026-09-10T14:00:00Z"
        },
        {
          "posts": 64,
          "timestamp": "2026-09-10T15:00:00Z"
        }
      ],
      "symbol": "ORCL"
    }
  ],
  "days": 30
}