Polymarket Price History

GET/gateway/v1/prediction-market/polymarket/prices

Simple price time series for a Polymarket market — one price point per interval. Use this for tracking price trends over time. For OHLCV candlestick data (open/high/low/close for charting libraries), use `price-ohlcv` instead.

Data refresh: ~30 minutes

Query Parameters

condition_idstringrequired

Market condition identifier

Example: 0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092
time_rangeenum<string>

Window of history to return (how much data, from now backward): `7d`, `30d`, `90d`, `180d`, or `1y`. Ignored when `interval=latest`. Distinct from `interval` (which sets bucket size within this window).

Available options:7d30d90d180d1y
Example: 30d
intervalenum<string>

Bucket size for each point in the returned series: `1h` (hourly), `1d` (daily), or `latest` (single most-recent snapshot). Distinct from `time_range` (which sets the window size).

Available options:1h1dlatest
Example: 1d
Polymarket Price History
const options = {method: 'GET'};

fetch('https://api.asksurf.ai/gateway/v1/prediction-market/polymarket/prices?condition_id=0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092&time_range=30d&interval=1d', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
OK
{
  "$schema": "https://example.com/schemas/DataResponsePolymarketPricePoint.json",
  "data": [
    {
      "side_a": {
        "label": "<string>",
        "price": 123,
        "token_id": "<string>"
      },
      "side_b": {
        "label": "<string>",
        "price": 123,
        "token_id": "<string>"
      },
      "timestamp": 123
    }
  ],
  "meta": {
    "cached": true,
    "credits_used": 123,
    "empty_reason": "<string>",
    "has_more": true,
    "limit": 123,
    "offset": 123,
    "total": 123,
    "watermark": 123
  }
}