Prediction outcome history

GET /predictions/history
GetPredictionHistory

Observed prices for one venue outcome. Prices are fractions from 0 to 1. Up to 1002 points retain the last actual observation per bucket; gaps are not interpolated. History begins when Nebula first observes the listing.

Wallet payment available at https://nebula-api.hiddensystems.ai/api/v1/x402/predictions/history. No Nebula account or API key required; check the payment offer before signing. x402 payment guide.

Parameters

listing_id string QUERY required

Listing ID

Example:polymarket:123

outcome_id string QUERY required

Outcome ID within the listing

Example:yes

hours integer QUERY

Lookback window in hours. Free plans reach back 90 days; further returns 403.

Default:168

cURL Example

curl --get \
  --url 'https://nebula-api.hiddensystems.ai/api/v1/public/predictions/history' \
  --data-urlencode 'listing_id=polymarket:123' \
  --data-urlencode 'outcome_id=yes' \
  --header 'X-API-Key: YOUR_API_KEY'

Responses

200 OK
400 Bad Request
401 Unauthorized
402 Credits used up; response includes renewal timing and purchased credit balance
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

listing_id
string required

Venue-prefixed native market identity.

outcome_id
string required

Native outcome identity within the listing.

points
array<object> required

Actual observations in chronological order, downsampled without interpolation.

points[].price
number (double) required

Outcome quote as a fraction from 0 to 1; null when unavailable. Not subject sentiment.

points[].price_basis
string required

provider, last_trade, midpoint or unavailable.

points[].time
string (date-time) required

UTC observation time.

{
  "listing_id": "polymarket:123",
  "outcome_id": "yes",
  "points": [
    {
      "price": 0.65,
      "price_basis": "provider",
      "time": "2026-10-06T12:00:00Z"
    }
  ]
}