Prediction Hunt/ API
REST API / Polymarket (Admin) / Candlesticks

Candlesticks (Polymarket, by Condition)

ADMIN-ONLY (gated, not yet public). Market-level OHLCV normalized to YES side. Resolves the condition_id to its YES outcome token, then proxies clob.polymarket.com/prices-history. OHLC values are currently degenerate (O=H=L=C=mid) and volume is null — the source returns mid prices only. Real OHLCV with volume is coming in a follow-up PR via market_trades aggregation (data from 2026-04-28). For non-Yes/No outcome labels (e.g. Up/Down crypto markets), falls back to the first token by convention.

GET/v2/polymarket/candlesticks/{condition_id}

Query Parameters

condition_idstring (path)Required

Polymarket condition ID (path parameter).

intervalinteger

Bucket size in minutes. Allowed: 0 (auto-pick), 1, 5, 15, 60, 1440. Default: 0.

start_tsinteger

Start of range, unix seconds. Optional.

end_tsinteger

End of range, unix seconds. Optional.

Response Schema

candlesticksobject[]

OHLCV candles in ascending timestamp order.

tinteger

Unix timestamp (seconds) of the bucket start.

onumber

Open price (mid).

hnumber

High price. Currently equals open (degenerate — see _meta).

lnumber

Low price. Currently equals open (degenerate).

cnumber

Close price. Currently equals open (degenerate).

vnumber | null

Volume. Currently null — coming in a follow-up via market_trades aggregation.

intervalinteger

Resolved interval in minutes (1, 5, 15, 60, or 1440).

interval_secondsinteger

Resolved interval in seconds.

first_trade_tsinteger | null

Earliest timestamp in the response.

last_trade_tsinteger | null

Latest timestamp in the response.

token_idstring

The YES token ID resolved from the requested condition_id.

condition_idstring

The condition_id from the request.

_metaobject

Source metadata.

sourcestring

polymarket_clob_prices_history.

volume_availableboolean

Currently false. True once market_trades-based aggregation lands.

notestring

Human-readable caveat about the degenerate OHLC.

Authentication

API Key

To secure your requests, we strongly recommend passing your API key via the X-API-Key header. This prevents sensitive keys from being exposed in access logs or browser history.

Request HeaderX-API-Key: pmx_test_5e8f...

Rate Limits

API rate limits are enforced based on the tier associated with your API key. Limits are tracked on two dimensions: requests per second and requests per month. Each completed request counts toward the global monthly quota. Separate endpoint-group monthly limits (matched markets, arbitrage, EV) only advance when the response body has success: true.

Usage is returned on responses via headers such as:

Response Headers (global)X-RateLimit-Limit-Second: 10X-RateLimit-Remaining-Second: 9X-RateLimit-Limit-Month: 1000X-RateLimit-Remaining-Month: 842Example (endpoint-group, when applicable)X-RateLimit-Limit-Arb-Month: 500X-RateLimit-Remaining-Arb-Month: 412

If you exceed a rate limit, the API returns a 429 status with a Retry-After header indicating when you can resume.

Request

Live API Key

Demo Mode
Verified

Parameters

Condition IDRequired
Interval (minutes)
Start (unix seconds)
End (unix seconds)

Response

Click EXECUTE to send a request →