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.
/v2/polymarket/candlesticks/{condition_id}Query Parameters
Polymarket condition ID (path parameter).
Bucket size in minutes. Allowed: 0 (auto-pick), 1, 5, 15, 60, 1440. Default: 0.
Start of range, unix seconds. Optional.
End of range, unix seconds. Optional.
Response Schema
OHLCV candles in ascending timestamp order.
Unix timestamp (seconds) of the bucket start.
Open price (mid).
High price. Currently equals open (degenerate — see _meta).
Low price. Currently equals open (degenerate).
Close price. Currently equals open (degenerate).
Volume. Currently null — coming in a follow-up via market_trades aggregation.
Resolved interval in minutes (1, 5, 15, 60, or 1440).
Resolved interval in seconds.
Earliest timestamp in the response.
Latest timestamp in the response.
The YES token ID resolved from the requested condition_id.
The condition_id from the request.
Source metadata.
polymarket_clob_prices_history.
Currently false. True once market_trades-based aggregation lands.
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.
X-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:
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: 412If 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
Parameters
Response
—Click EXECUTE to send a request →