---
title: "Get Prediction Market OHLCV Candles"
method: POST
path: "/api/v1/prediction-market/ohlcv"
tags: ["Prediction Markets"]
---

# Get Prediction Market OHLCV Candles

`POST /api/v1/prediction-market/ohlcv`

Get 1-hour OHLCV (Open, High, Low, Close, Volume) candles for a Polymarket
prediction market. Candles are computed from on-chain OrderFilled events on Polygon.

**What it helps to answer:**

1. **What is the price history of a prediction market outcome?**
2. **How has trading volume changed over time?**
3. **What were the high and low prices in each time period?**

## Request body

- OhlcvRequest — Request for OHLCV endpoint.
  - `market_id` string, required — Polymarket market ID
  - `pagination` PaginationRequest — Pagination parameters for API requests.
    - `page` integer — Page number (1-based)
    - `per_page` integer — Number of records per page (max 1000)
  - `date` DateRange — Date range model matching the API schema.
    - `from` string — Start date in ISO 8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01)
    - `to` string — End date in ISO 8601 format (e.g., 2025-01-31T23:59:59Z or 2025-01-31)
  - `order_by` SortOrderOhlcvSortField[] — Sort order
    - `field` 'period_start' | 'volume_usd' | 'trade_count', required — Sortable fields for OHLCV endpoint.
    - `direction` 'ASC' | 'DESC', required — Enum for sort directions.
  - `sort` SortOrderOhlcvSortField[] — Deprecated: use 'order_by' instead.
    - `field` 'period_start' | 'volume_usd' | 'trade_count', required — Sortable fields for OHLCV endpoint.
    - `direction` 'ASC' | 'DESC', required — Enum for sort directions.

## Response `200`

OHLCV candle data

- OhlcvResponse — Response for OHLCV endpoint.
  - `pagination` PaginationInfo — Pagination information for API responses.
    - `page` integer — Current page number
    - `per_page` integer — Number of records per page
    - `is_last_page` boolean — Whether this is the last page
  - `data` OhlcvCandle[], required — List of OHLCV candle records
    - `market_id` string, required — Market ID
    - `token_id` string — CLOB token ID
    - `side` string — Side label (Yes/No)
    - `outcome_index` integer — Outcome index (1/2)
    - `period_start` string, date-time — Candle period start (ISO format)
    - `open` number — Open price
    - `high` number — High price
    - `low` number — Low price
    - `close` number — Close price
    - `volume_usd` number — Volume in USD
    - `trade_count` integer — Number of trades
    - `unique_traders` integer — Unique traders in period

## Other responses

- `400` — Bad Request - Invalid request parameters or malformed request
- `401` — Authentication error - No API key found in request
- `402` — Payment Required - This endpoint supports pay-per-request via x402 and MPP. x402 responses advertise payment options in `Payment-Required`; MPP responses advertise a fresh `WWW-Authenticate: Payment ...` challenge. Successful MPP responses may include `Payment-Receipt`.
- `403` — Forbidden - User does not have required subscription tier or has exceeded credit limit
- `404` — Not Found - The requested resource was not found
- `422` — Validation error - Invalid request parameters
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.net/nansen/apis/nansen-api.md) · [All operations](https://skmtc.net/nansen/apis/nansen-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nansen/nansen-api/versions/02a4d2e7d827/schema)
