センチメント予測

GET /forecasts/sentiment
GetSentimentForecast

今後72時間で資産のセンチメントがどこに向かう可能性が高いかを、結果の範囲とその確率として示します。series は4時間ごとに、そのステップで予想される強気・弱気・中立・合計の投稿数と、その終了時点の sentiment_signal を /sentiment スケールで示します。chance_higher_24h と chance_higher_72h はシグナルが current_sentiment_signal を上回って終わる確率を示し、それぞれの _confident フラグはその確率が明確にどちらかに傾いているときを示します。

予測は資産に関する新しい投稿から1分以内に、少なくとも15分ごとに更新されます。refresh=true は最新データで約5秒で再計算します。20秒を超える場合は、最新の予測を refreshed: false 付きで受け取り、5クレジットが課金されます。予測がない資産は status: not_forecastable と reason を返します。予測がある資産の一覧は /forecasts/assets にあります。

5クレジット、refresh=true を付けると10クレジットです。not_forecastable の回答は無料で、アカウントごとに1時間あたり30件までです。それを超えると、時間が明けるまでこのエンドポイントは429を返します。

このオペレーションではウォレット支払いを利用できません。アカウント認証を使用してください。x402 支払いガイド。

パラメータ

asset_id string QUERY 必須

/assets または /search で取得したアセット ID(NVDA、GLD、SPX、bitcoin など)。一緒に返された asset_class とともに送信してください。

Example:NVDA

asset_class string QUERY 必須

asset_id で指定されたアセットのクラス: equity(株式および ETF)、commodity、index、crypto のいずれか。/assets または /search が asset_id とともに返した asset_class を送信してください。

指定可能な値
equitycommodityindexcrypto

Example:equity

refresh boolean QUERY

true にすると最新データで予測を再計算します。10クレジット、約5秒。デフォルトは false です。

Example:false

cURL の例

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

レスポンス

200 OK
400 不正なリクエスト
401 未認証
402 クレジットを使い切りました。レスポンスには更新時期と購入済みクレジット残高が含まれます
403 アクセス拒否
404 見つかりません
405 メソッドが許可されていません。Allow ヘッダーにサポートされているメソッドが記載されています。
429 リクエストが多すぎます
500 内部サーバーエラー
503 サービス利用不可

メディアタイプ application/json

as_of
string (date-time) 必須

予測の開始時点(UTC)。計算の基になった直近の完全な15分間の終わりです。資産が一度もスコアリングされていない場合は null になります。

chance_higher_24h
number (double) 必須

24時間後にセンチメントシグナルがcurrent_sentiment_signalを上回る確率(0〜1)。

chance_higher_24h_confident
boolean 必須

chance_higher_24h が0.3未満または0.7超のときは true です。予測が明確にどちらかに傾いていることを示します。0.5に近い場合は、明確な方向性はないと解釈してください。

chance_higher_72h
number (double) 必須

72時間後にセンチメントシグナルがcurrent_sentiment_signalを上回る確率(0〜1)。

chance_higher_72h_confident
boolean 必須

chance_higher_72h が0.3未満または0.7超のときは true です。予測が明確にどちらかに傾いていることを示します。0.5に近い場合は、明確な方向性はないと解釈してください。

current_sentiment_signal
number (double) 必須

as_of 時点のセンチメントシグナル(/sentiment スケール)。直近24時間の強気投稿数から弱気投稿数を引いたもので、新しい投稿ほど重み付けされます。すべてのパスはここから始まり、確率はこの値を基準に測られます。これは毎時更新される最新の /sentiment ポイントとは多少異なる場合があります。

horizon_hours
integer 必須

予測がどこまで先まで及ぶかを時間で表したもの。常に72です。

reason
string 必須

この資産を予測できない理由。too_little_history、stale_data、missing_price のいずれかです。status が ok のときは null になります。

指定可能な値
too_little_historystale_datamissing_pricenull
refreshed
boolean 必須

このリクエストが予測を再実行した場合(refresh=true で再実行が時間内に完了した場合)は true、直近の定時予測である場合は false です。

sample_paths
array<array<number (double)>> 必須

センチメントシグナルの24通りのパス。それぞれが series に対応します。これらを描画すると、結果のばらつきを確認できます。

series
array<object> 必須

as_of から4時間ごとの予測。18ステップで、古い順です。

series[].bearish_posts
object 必須

この4時間ステップのみで予想される弱気投稿数(ボットを除く)。/sentiment の interval posts と同様で、その直近24時間のカウントとは異なります。

series[].bearish_posts.mean
number (double) 必須

このステップで予想される弱気投稿数。

series[].bearish_posts.p10
number (double) 必須

このステップにおける弱気投稿数の10パーセンタイル。

series[].bearish_posts.p25
number (double) 必須

このステップにおける弱気投稿数の25パーセンタイル。

series[].bearish_posts.p50
number (double) 必須

このステップにおける弱気投稿数の50パーセンタイル。

series[].bearish_posts.p75
number (double) 必須

このステップにおける弱気投稿数の75パーセンタイル。

series[].bearish_posts.p90
number (double) 必須

そのステップにおける弱気投稿の90パーセンタイル。

series[].bullish_posts
object 必須

この4時間ステップのみで見込まれる強気投稿数(ボットを除く)。/sentiment の interval 投稿と同様であり、直近24時間のカウントとは異なります。

series[].bullish_posts.mean
number (double) 必須

そのステップで見込まれる強気投稿数。

series[].bullish_posts.p10
number (double) 必須

そのステップにおける強気投稿の10パーセンタイル。

series[].bullish_posts.p25
number (double) 必須

そのステップにおける強気投稿の25パーセンタイル。

series[].bullish_posts.p50
number (double) 必須

そのステップにおける強気投稿の50パーセンタイル。

series[].bullish_posts.p75
number (double) 必須

そのステップにおける強気投稿の75パーセンタイル。

series[].bullish_posts.p90
number (double) 必須

そのステップにおける強気投稿の90パーセンタイル。

series[].neutral_posts
object 必須

この4時間ステップのみで見込まれる中立投稿数(ボットを除く)。/sentiment の interval 投稿と同様であり、直近24時間のカウントとは異なります。

series[].neutral_posts.mean
number (double) 必須

そのステップで見込まれる中立投稿数。

series[].neutral_posts.p10
number (double) 必須

そのステップにおける中立投稿の10パーセンタイル。

series[].neutral_posts.p25
number (double) 必須

そのステップにおける中立投稿の25パーセンタイル。

series[].neutral_posts.p50
number (double) 必須

そのステップにおける中立投稿の50パーセンタイル。

series[].neutral_posts.p75
number (double) 必須

そのステップにおける中立投稿の75パーセンタイル。

series[].neutral_posts.p90
number (double) 必須

そのステップにおける中立投稿の90パーセンタイル。

series[].sentiment_signal
object 必須

ステップ終了時点のセンチメントシグナル(/sentiment スケール)。ラインがどのあたりに来るかの見込みです。

series[].sentiment_signal.mean
number (double) 必須

ステップ終了時点で見込まれるセンチメントシグナル。

series[].sentiment_signal.p10
number (double) 必須

ステップ終了時点のセンチメントシグナルの10パーセンタイル。

series[].sentiment_signal.p50
number (double) 必須

ステップ終了時点のセンチメントシグナルの50パーセンタイル。

series[].sentiment_signal.p90
number (double) 必須

ステップ終了時点のセンチメントシグナルの90パーセンタイル。

series[].sentiment_signal.quantiles
array<number (double)> 必須

ステップ終了時点のセンチメントシグナルの21分位点。0、5、10、…、100パーセンタイルを低い順に並べたものです。任意の範囲に収まる確率を求めるには、これらの間を補間してください。

series[].timestamp
string (date-time) 必須

ステップが終了するUTC時刻。as_of に4、8、…、72時間を加えたものです。

series[].total_posts
object 必須

この4時間ステップのみで見込まれる投稿数(強気・弱気・中立の合計、ボットを除く)。/sentiment の interval 投稿と同様であり、直近24時間のカウントとは異なります。そのパーセンタイルは合計自体のものであるため、3種類それぞれのパーセンタイルの合計にはなりません。

series[].total_posts.mean
number (double) 必須

そのステップで見込まれる投稿数(強気・弱気・中立の合計)。

series[].total_posts.p10
number (double) 必須

そのステップにおける投稿数(強気・弱気・中立の合計)の10パーセンタイル。

series[].total_posts.p25
number (double) 必須

そのステップにおける投稿数(強気・弱気・中立の合計)の25パーセンタイル。

series[].total_posts.p50
number (double) 必須

そのステップにおける投稿数(強気・弱気・中立の合計)の50パーセンタイル。

series[].total_posts.p75
number (double) 必須

そのステップにおける投稿数(強気・弱気・中立の合計)の75パーセンタイル。

series[].total_posts.p90
number (double) 必須

そのステップにおける投稿数(強気・弱気・中立の合計)の90パーセンタイル。

status
string 必須

ok、または資産を予測できない場合は not_forecastable です(その場合、summary のフィールドは null になり、series は空になります。理由は reason に示されます)。

指定可能な値
oknot_forecastable
turning
integer 必須

センチメントが強気に転じている間は1(直近数時間が直近1日より明らかに強気に傾いている場合)、弱気に転じている間は-1、それ以外は0。

指定可能な値
-101null
{
  "as_of": "2026-09-14T09:15:00Z",
  "chance_higher_24h": 0.74,
  "chance_higher_24h_confident": true,
  "chance_higher_72h": 0.61,
  "chance_higher_72h_confident": false,
  "current_sentiment_signal": 128.6,
  "horizon_hours": 72,
  "reason": null,
  "refreshed": false,
  "sample_paths": [
    [
      133.2,
      141.7
    ],
    [
      126.4,
      118.9
    ]
  ],
  "series": [
    {
      "bearish_posts": {
        "mean": 18,
        "p10": 9.9,
        "p25": 13.5,
        "p50": 17.1,
        "p75": 21.6,
        "p90": 27.9
      },
      "bullish_posts": {
        "mean": 46,
        "p10": 25.3,
        "p25": 34.5,
        "p50": 43.7,
        "p75": 55.2,
        "p90": 71.3
      },
      "neutral_posts": {
        "mean": 29,
        "p10": 16,
        "p25": 21.8,
        "p50": 27.6,
        "p75": 34.8,
        "p90": 45
      },
      "sentiment_signal": {
        "mean": 131.4,
        "p10": 92.9,
        "p50": 129.6,
        "p90": 175.5,
        "quantiles": [
          21.6,
          70.2,
          92.9,
          104.8,
          113.1,
          119.4,
          124.2,
          127.6,
          130.5,
          132.7,
          134.5,
          136.4,
          138.7,
          141.3,
          144.9,
          149.2,
          155.1,
          163.8,
          179.4,
          202.6,
          287.3
        ]
      },
      "timestamp": "2026-09-14T13:15:00Z",
      "total_posts": {
        "mean": 93,
        "p10": 51.2,
        "p25": 69.8,
        "p50": 88.4,
        "p75": 111.6,
        "p90": 144.2
      }
    },
    {
      "bearish_posts": {
        "mean": 19,
        "p10": 10.5,
        "p25": 14.3,
        "p50": 18.1,
        "p75": 22.8,
        "p90": 29.5
      },
      "bullish_posts": {
        "mean": 50,
        "p10": 27.5,
        "p25": 37.5,
        "p50": 47.5,
        "p75": 60,
        "p90": 77.5
      },
      "neutral_posts": {
        "mean": 31,
        "p10": 17.1,
        "p25": 23.3,
        "p50": 29.5,
        "p75": 37.2,
        "p90": 48.1
      },
      "sentiment_signal": {
        "mean": 137.6,
        "p10": 99.1,
        "p50": 135.79999999999998,
        "p90": 181.7,
        "quantiles": [
          21.6,
          70.2,
          92.9,
          104.8,
          113.1,
          119.4,
          124.2,
          127.6,
          130.5,
          132.7,
          134.5,
          136.4,
          138.7,
          141.3,
          144.9,
          149.2,
          155.1,
          163.8,
          179.4,
          202.6,
          287.3
        ]
      },
      "timestamp": "2026-09-14T17:15:00Z",
      "total_posts": {
        "mean": 100,
        "p10": 55,
        "p25": 75,
        "p50": 95,
        "p75": 120,
        "p90": 155
      }
    }
  ],
  "status": "ok",
  "turning": 0
}