Mindshare forecast
/forecasts/mindshare
Where an asset's mindshare is likely to be over the next 72 hours, as a range of outcomes with their chances. series gives the distribution every 4 hours; chance_higher_72h and likely_low_share to likely_high_share summarise where it lands; takeoff_chance_72h is the chance of a sudden surge in attention.
Forecasts update within a minute of new posts about the asset, and at least every 15 minutes. refresh=true recomputes on the latest data in about 5 seconds; if that takes over 20, you get the latest forecast with refreshed: false, charged at 5. Assets without a forecast return status: not_forecastable with a reason; /forecasts/assets lists the assets that have one.
Costs 5 credits, or 10 with refresh=true. not_forecastable answers are free, up to 30 an hour per account; past that this endpoint returns 429 until the hour clears.
Parameters
Asset ID from /assets or /search, such as NVDA, GLD, SPX, or bitcoin. Send it with the asset_class returned alongside it.
Example:NVDA
Class of the asset named by asset_id: equity (stocks and ETFs), commodity, index, or crypto. Send the asset_class that /assets or /search returned alongside the asset_id.
equitycommodityindexcrypto
Example:equity
true recomputes the forecast on the latest data: 10 credits, about 5 seconds. Defaults to false.
Example:false
cURL Example
curl --get \
--url 'https://nebula-api.hiddensystems.ai/api/v1/public/forecasts/mindshare' \
--data-urlencode 'asset_id=NVDA' \
--data-urlencode 'asset_class=equity' \
--header 'X-API-Key: YOUR_API_KEY'
Responses
Media type application/json
as_of
UTC start of the forecast: the end of the last complete 15 minutes it was computed from. Null when the asset has never been scored.
chance_higher_72h
The chance the share is higher than current_share in 72 hours, from 0 to 1.
current_share
The asset's share at as_of, from 0 to 1: where every path starts, and the value the chances are measured against.
horizon_hours
How far ahead the forecast runs, in hours: always 72.
likely_high_share
The 90th percentile of the share in 72 hours: a 90% chance of ending below it.
likely_low_share
The 10th percentile of the share in 72 hours: a 90% chance of ending above it.
reason
Why the asset cannot be forecast: too_little_history, stale_data, or missing_price. Null when status is ok.
too_little_historystale_datamissing_pricenull
refreshed
True when this request re-ran the forecast (refresh=true and the re-run finished in time); false when it is the latest scheduled five-minute forecast.
sample_paths
24 possible paths for the share, each aligned with series. Draw them to show the spread of outcomes.
series
array<object>
The forecast distribution every 4 hours from as_of: 18 steps, oldest first.
series
The forecast distribution every 4 hours from as_of: 18 steps, oldest first.
series[].mean_share
The expected share at this step.
series[].p10_share
The 10th percentile of the share at this step, from 0 to 1.
series[].p25_share
The 25th percentile of the share at this step, from 0 to 1.
series[].p50_share
The 50th percentile of the share at this step, from 0 to 1.
series[].p75_share
The 75th percentile of the share at this step, from 0 to 1.
series[].p90_share
The 90th percentile of the share at this step, from 0 to 1.
series[].quantile_shares
21 quantiles of the share at this step: the 0th, 5th, 10th, ... 100th percentiles, lowest first. Interpolate between them for the chance of landing in any range.
series[].timestamp
UTC time the step forecasts: as_of plus 4, 8, ... 72 hours.
status
ok, or not_forecastable when the asset cannot be forecast (the summary fields are then null and the series empty; reason says why).
oknot_forecastable
takeoff_chance_72h
The chance of a sudden surge in attention on the asset within 72 hours, from 0 to 1. Null when there is no estimate.
{
"as_of": "2026-09-14T09:15:00Z",
"chance_higher_72h": 0.63,
"current_share": 0.0498,
"horizon_hours": 72,
"likely_high_share": 0.1022,
"likely_low_share": 0.0331,
"reason": null,
"refreshed": false,
"sample_paths": [
[
0.0502,
0.0515,
0.0531
],
[
0.0494,
0.0488,
0.0479
]
],
"series": [
{
"mean_share": 0.0512,
"p10_share": 0.039936000000000006,
"p25_share": 0.045568000000000004,
"p50_share": 0.050176,
"p75_share": 0.055296000000000005,
"p90_share": 0.063488,
"quantile_shares": [
0.0301,
0.0352,
0.0391,
0.0418,
0.0437,
0.0451,
0.0463,
0.0474,
0.0484,
0.0493,
0.0502,
0.0511,
0.0521,
0.0532,
0.0544,
0.0557,
0.0573,
0.0594,
0.0623,
0.0671,
0.0889
],
"timestamp": "2026-09-14T13:15:00Z"
},
{
"mean_share": 0.0523,
"p10_share": 0.040794000000000004,
"p25_share": 0.046547,
"p50_share": 0.051254,
"p75_share": 0.056484,
"p90_share": 0.06485199999999999,
"quantile_shares": [
0.0301,
0.0352,
0.0391,
0.0418,
0.0437,
0.0451,
0.0463,
0.0474,
0.0484,
0.0493,
0.0502,
0.0511,
0.0521,
0.0532,
0.0544,
0.0557,
0.0573,
0.0594,
0.0623,
0.0671,
0.0889
],
"timestamp": "2026-09-14T17:15:00Z"
},
{
"mean_share": 0.0534,
"p10_share": 0.041652,
"p25_share": 0.047526000000000006,
"p50_share": 0.052332000000000004,
"p75_share": 0.05767200000000001,
"p90_share": 0.066216,
"quantile_shares": [
0.0301,
0.0352,
0.0391,
0.0418,
0.0437,
0.0451,
0.0463,
0.0474,
0.0484,
0.0493,
0.0502,
0.0511,
0.0521,
0.0532,
0.0544,
0.0557,
0.0573,
0.0594,
0.0623,
0.0671,
0.0889
],
"timestamp": "2026-09-14T21:15:00Z"
}
],
"status": "ok",
"takeoff_chance_72h": 0.21
}