---
title: "Price Candles"
url: https://docs.truemarkets.co/api/websocket/market-data/price-candles
description: "Batch of OHLC price candles for tracked assets across the standard intervals."
---

Docs index: https://docs.truemarkets.co/llms.txt

# Price Candles

True Markets Market Data WebSocket sends these messages to you.

Address: `/v1/defi/market`

## Servers

- `wss://api.truemarkets.co` (Production, wss)
- `wss://api.uat.truemarkets.co` (Uat, wss)

## Messages

### priceCandles

Batch of OHLC price candles for tracked assets.

Payload: `PriceCandlesPayload`

Example payload:

```json
{
  "type": "price_candles",
  "timestamp": 0,
  "topics": [
    "all"
  ],
  "data": [
    {
      "symbol": "string",
      "address": "string",
      "chain": "string",
      "product_type": "spot",
      "interval": "string",
      "open": "string",
      "high": "string",
      "low": "string",
      "close": "string"
    }
  ]
}
```

## Types

```ts
export type PriceCandlesMessage = PriceCandlesPayload;

export interface PriceCandlesPayload {
  type: "price_candles";

  /** Unix timestamp (seconds) when the message was generated. */
  timestamp: number;

  /** The concrete topic this message belongs to, e.g. `["price_candles"]` — even for `all` subscribers. */
  topics: Topic[];
  data: PriceCandle[];
}

/**
 * Topic identifier. `all` is a wildcard alias for every stream (per-instrument
 * topics excluded). Per-instrument topics are parameterized:
 * `orderbook.{venue}.{pair}` (e.g. `orderbook.hyperliquid-perp.BTC-USD`),
 * `price.{SYMBOL}` (e.g. `price.BTC`, `price.BTC-PERP`),
 * `candles.{SYMBOL}.{interval}` (e.g. `candles.ETH.1h`) and
 * `reference.{SYMBOL}` (e.g. `reference.BTC`). They are subscribable but not
 * part of the fixed enum below and are never delivered to `all` subscribers.
 *
 */
export type Topic =
  | "all"
  | "price_candles"
  | "trending_assets"
  | "surging_assets"
  | "reference_prices";

/** OHLC price data for a single asset and interval. */
export interface PriceCandle {
  /** Asset symbol. */
  symbol?: string;

  /** Asset contract address. */
  address?: string;

  /** Blockchain the asset lives on. */
  chain?: string;

  /** How the asset trades. A spot and a perp listing can share a symbol (e.g. `NVDA`); this tells them apart. */
  product_type?: "spot" | "perp";

  /** Candle interval (e.g. `1h`, `4h`, `24h`). */
  interval?: string;

  /** Opening price for the interval. */
  open?: string;

  /** Highest price during the interval. */
  high?: string;

  /** Lowest price during the interval. */
  low?: string;

  /** Closing price for the interval. */
  close?: string;
}
```