# Charts and OHLCV

> Render currency-correct stock and ETF charts using chart-ready series or OHLCV candles from MyStocks.

Use `/stocks/{symbol}/candles` as the canonical stock-chart endpoint. It provides explicit dates, sparse intraday buckets, daily/weekly/monthly aggregation, instrument names, and OHLCV-quality metadata. All listed equities have EOD closes, so a line chart is the universal baseline; render candlesticks only when `meta.recommendedChartType` is `candlestick`. A `line` recommendation covers EOD-only, incomplete, highly flat, or sparse-intraday series. `/stocks/{symbol}/chart` and `/history` are deprecated compatibility routes scheduled for removal on 2026-10-01. Use `/market/ohlcv` when an analytics pipeline supplies symbol and exchange separately.

<Callout type="info" title="Chart freshness">
  African equity data is supplied by the exchanges on a 15-minute-delayed basis. The API targets a
  15-minute refresh cadence, but it is not a real-time or tick-by-tick chart feed. Show `meta.asOf`
  (or the latest candle timestamp) in the chart UI. This delay is unrelated to licensing: MyStocks
  holds full data rights for every supported exchange.
</Callout>

<TryEndpoint id="getStockCandles" />

## Rendering checklist

- Label the exchange and native currency.
- Show the data timestamp and freshness.
- Do not mix local-currency and USD series on the same axis.
- Handle markets with sparse history or closed sessions.
- Treat volume `0` as unavailable unless `meta.volumeAvailable` is true.
- Label current African equity data **“15-minute delayed”**; do not label it live or real-time.
- Show `meta.asOf` or the latest candle timestamp, because the HTTP response time is not market time.
- Show that candles are unadjusted; do not label them split-adjusted.
- Include the instrument symbol and exchange in exports.

See [Historical Market Data](/partners/docs/historical-market-data) for endpoint selection and [Quotes and Market Status](/partners/docs/market-data-quotes) for current-market context.
