/api/v1/markets/{id}/candlesGETak_ prefix), sent as a Bearer token or an ?api_key= query parameter. Each endpoint requires the read scope for its resource (e.g. org:rates:read for rates). Token in: header1Min: 1100Min: 1Max: 500timestamptimestamp60Min: 1interval minutes ending at this instant.yes_bid and yes_ask when both are present, otherwise the period's mean traded price, otherwise the closing traded price. It is therefore not always a book midpoint and can be identical to close, so do not read it as a quote without checking yes_bid and yes_ask.polymarket_clob_history rows are built from the CLOB prices-history midpoint feed rather than from a trade tape.per_page. It is at least 1, even when nothing matched.message. One of bad_request, unauthorized, forbidden, not_found, conflict, service_unavailable, upstream_error, service_error, or internal_error.rate_limited. Branch on this to detect a throttled request.rpm for the per-minute cap or daily for the daily one.curl -X GET "https://api.adjacent.markets/api/v1/markets/<id>/candles" \ -H "Authorization: Bearer <token>"
{ "data": [ { "timestamp": "2026-06-01T14:00:00Z", "yes_bid": 47, "yes_ask": 49, "mid": 48, "close": 48, "volume": 12500, "source": "kalshi_candlestick", "synthetic_book": false }, { "timestamp": "2026-06-01T13:00:00Z", "yes_bid": 47, "yes_ask": 47, "mid": 47, "close": 47, "volume": 9800, "source": "polymarket_clob_history", "synthetic_book": true } ], "meta": { "total": 2, "page": 1, "per_page": 100, "total_pages": 1, "has_next": false, "has_prev": false } }