---
title: "Get OHLC (Open, High, Low, Close) Data for an Asset"
method: GET
path: "/v1/assets/{symbol}/prices/ohlc"
tags: ["Assets"]
---

# Get OHLC (Open, High, Low, Close) Data for an Asset

`GET /v1/assets/{symbol}/prices/ohlc`

This endpoint retrieves historical Open, High, Low, Close (OHLC) price data for both the primary market (on-chain token) and underlying market (off-chain stock) for a specified asset.

This endpoint returns historical candles. To receive live, minute-bucketed OHLC updates as they occur, use the [OHLC Streaming](https://docs.ondo.finance/api-reference/ohlc-streaming) endpoint.

Prices are intended for display only. For real-time trading prices, use the [Soft Attestation Quote](https://docs.ondo.finance/api-reference/attestations/request-a-soft-attestation-quote) API. We do not recommend using the price feeds as an oracle for these assets. An official oracle is in development and will be documented when available. For questions, contact [support@ondo.finance](mailto:support@ondo.finance).

The `interval` parameter determines the bucket size for data points, while the `range` parameter determines how far back historically to look for price data. See below for valid interval/range pairs.

Valid `interval`/`range` pairs:
- 1min/1day *(rolling 24-hour period of open market data)*
- 5min/1day
- 15min/1day
- 1hour/1month
- 4hour/1month
- 12hour/3month
- 1day/3month
- 1day/6month
- 1day/1year
- 1day/all *(all historical data)*

**Note on `range=1day` and off-hours-tradable assets:** For assets that are tradable during the off-hours session, the `1day` range returns a plain rolling 24-hour calendar window so weekend and off-hours candles are included. For all other assets, the `1day` range returns a market-hours-aware rolling 24-hour window over open market data.

For caching details on this endpoint, please see: [Endpoint Caching](https://docs.ondo.finance/api-reference/endpoint-caching).

## Path parameters

- `symbol` string, required

## Query parameters

- `interval` '1min' | '5min' | '15min' | '1hour' | '4hour' | '12hour' | '1day', required — The time interval between data points.
- `range` '1day' | '1month' | '3month' | '6month' | '1year' | 'all', required — The look back range for historical data. (Note that '1day' will return a rolling 24-hour period of data and 'all' will return all historical data.)

## Response `200`

OK

- OHLCResponse
  - `interval` '1min' | '5min' | '15min' | '1hour' | '4hour' | '12hour' | '1day', required — The time interval between data points.
  - `range` '1day' | '1month' | '3month' | '6month' | '1year' | 'all', required — The look back range for historical data. (Note that '1day' will return a rolling 24-hour period of data and 'all' will return all historical data.)
  - `primaryMarket` object, required
    - `symbol` string — The GM symbol associated with the asset.
    - `data` OHLCDataPoint[]
      - `timestamp` number, required — The Unix timestamp in milliseconds when the data point was recorded.
      - `open` string, required — The opening price for the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point.
      - `high` string, required — The highest price during the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point.
      - `low` string, required — The lowest price during the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point.
      - `close` string, required — The closing price for the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point.
  - `underlyingMarket` object, required
    - `ticker` string — The stock ticker associated with the asset.
    - `data` OHLCDataPoint[]
      - `timestamp` number, required — The Unix timestamp in milliseconds when the data point was recorded.
      - `open` string, required — The opening price for the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point.
      - `high` string, required — The highest price during the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point.
      - `low` string, required — The lowest price during the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point.
      - `close` string, required — The closing price for the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point.

## Other responses

- `400` — One of the request parameters is invalid. Please see the returned message and documentation for details.
- `401` — Missing or invalid API key.
- `404` — The provided asset symbol does not exist and cannot be found. Please see the returned message and documentation for details.
- `429` — The account has exceeded its rate limits. Please see the returned message and documentation for details.
- `500` — An internal server error occurred. Please see the returned message and documentation for details.

---

[API](https://skmtc.net/ondo/apis/gm-backend-api.md) · [All operations](https://skmtc.net/ondo/apis/gm-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ondo/gm-backend-api/versions/12953a4908b2/schema)
