December 11, 2025

Why Crypto Candles Don’t Match Exchange Charts

featured image

If you’ve ever stared at a chart and thought

“Why do these crypto candles not match what I see on Binance/Bybit/TradingView?”

  • you’re not alone.

Searches like crypto candles not matching, OHLCV mismatches, candle data discrepancy, and missing 1-minute candles are among the most common technical queries in the crypto-trading world.

And there's a simple reason:

Exchanges typically show synthetic, UI-friendly candle data. APIs (like CoinAPI) show real market data based strictly on executed trades.

To use an analogy:

  • Exchange UIs are like movie CGI: smooth, interpolated, and designed to look continuous.
  • CoinAPI is like raw satellite weather data: truthful, sometimes messy, and never fabricated.

Once you understand this, nearly every “candle mismatch” suddenly makes sense.

One of the most frequent questions developers ask is:

“Why are my OHLCV candles not matching the exchange UI?”

Here’s the core difference:

Exchange charts frequently build candles from:

  • mark price
  • index price
  • mid-price (bid+ask/2)
  • smoothed or interpolated values
  • blended cross-exchange data

This is why searches like binance candles wrong, okx candles different, and crypto chart looks different are so common.

CoinAPI uses:

  • the actual executed trades for open, high, low, close
  • order book values only when no trades occur
  • zero-volume candles instead of fabricating missing data
  • real timestamps, not rounded UI timestamps

This is why our candles can look “off” compared to UI charts - in reality, they are more correct.

Many discrepancies come from one question:

“What price is the exchange using to draw candles?”

Here’s the breakdown:

  • Mark price (derivatives)
  • Index price (basket of exchanges)
  • Mid price (bid/ask midpoint)
  • Smoothed/interpolated last values
  • Aggregated or synthetic prices
  • Last trade price for OHLC
  • Actual order book activity only when no trades exist
  • Never fabricates candles

This explains many high-intent searches like:

  • why candle high/low doesn’t match
  • crypto price discrepancy
  • why crypto candles are different

If your candle highs/lows don’t match Binance - it’s because Binance isn’t using actual trades 100% of the time.

This is one of the top searched topics:

  • missing OHLCV
  • 1 minute candles missing
  • zero volume candles
  • no trade candle
  • candle gaps crypto

CoinAPI does not generate fake candles when no trades occur.

If a one-minute window has:

  • no BTCUSDT trade
  • only order-book changes
  • no executed volume

Then the period will appear as:

  • volume = 0
  • trades_count = 0
  • valid OHLC values (from order book), or
  • skipped by your charting library if you interpolate incorrectly

Most exchanges will hide this gap by fabricating a candle.

CoinAPI will not.

This is correct and is essential for:

  • backtesting
  • execution modeling
  • algorithmic trading
  • machine learning datasets

Fake continuity = fake signals.

Many of the questions in this guide come directly from patterns we see in support tickets. A typical example is when a user compares CoinAPI OHLCV to an exchange UI and reports “wrong data,” “missing candles,” or “high/low mismatch.”

In nearly every case, the root cause is one of the following:

  • Different price sources: Exchange UIs often build candles from mark, index, or mid prices, while CoinAPI uses executed trades only.
  • No-trade periods: If a one-minute window has no executed trades, CoinAPI will not fabricate a candle, resulting in “missing/dashed” candles that don’t appear on UI charts.
  • Exclusive time boundaries: Candle alignment differences can occur because time_end is exclusive, while UIs often round timestamps visually.
  • Instrument mapping differences: Exchange-perp aliases and UI tickers may differ from the underlying API instrument identifiers.
  • Real-time vs canonical history: Live UI charts may reflect in-progress data, while our T+1 pipeline applies final reconciliation, which can shift values slightly when viewed retrospectively.

When users report a mismatch, the data is almost always correct - the comparison basis is not.

This article expands on those explanations so developers can understand why candles differ and how to interpret CoinAPI’s trade-based OHLCV accurately.

Below is a real sample of 1-minute candles.

Notice:

  • realistic micro-movements
  • varying trade counts
  • real open/close timestamps (not aligned to the second)
  • true price continuity without smoothing
1[
2  {
3    "time_period_start": "2025-08-22T07:01:00.000Z",
4    "time_period_end":   "2025-08-22T07:02:00.000Z",
5    "time_open":         "2025-08-22T07:01:00.014Z",
6    "time_close":        "2025-08-22T07:01:18.914Z",
7    "price_open": 113008.595,
8    "price_high": 113008.60,
9    "price_low":  113008.59,
10    "price_close":113008.595,
11    "volume_traded": 1.00712,
12    "trades_count": 61
13  },
14  {
15    "time_period_start": "2025-08-22T07:00:00.000Z",
16    "time_period_end":   "2025-08-22T07:01:00.000Z",
17    "time_open":         "2025-08-22T07:00:00.014Z",
18    "time_close":        "2025-08-22T07:00:59.814Z",
19    "price_open": 112998.295,
20    "price_high": 113008.60,
21    "price_low":  112952.29,
22    "price_close":113008.595,
23    "volume_traded": 7.10776,
24    "trades_count": 2613
25  }
26]

This is what real raw crypto market data looks like.

Not smoothed. Not synthetic. Not interpolated.

These searches appear constantly:

  • high low mismatch crypto
  • why candle high differs
  • crypto candle discrepancy

Exchanges often compute those values from:

  • the best bid/ask
  • index or mark price
  • aggregation across multiple venues

CoinAPI computes them from:

  • actual executed trades
  • (or order book only if the period has no trades)

So if the exchange UI uses mark price (common for perps), and CoinAPI uses last trade:

The charts will not match - and should not match.

CoinAPI sends OHLCV every:

  • time a trade updates the candle
  • time the order book updates during a no-trade period
  • every 5 seconds while the candle is open
  • once again when the candle closes

This ensures:

  • No-lag real-time candle building
  • Accurate intra-period price evolution
  • High-frequency trading correctness

If you prefer one update per candle, use the REST “latest OHLCV” endpoint.

Here’s a quick checklist that directly addresses thousands of monthly searches:

Problem Users Search ForRoot Cause
crypto candles not matchingUI uses synthetic/mid/mark/index prices
missing 1 minute candlesno trades → CoinAPI does not fabricate candles
zero-volume candlesperiod had order book events but no trades
binance candles wrongBinance UI uses mark/index price
candle high/low mismatchUI price ≠ trade price
ohlcv not matching exchangestrict trade-based candles vs smoothed UI candles
why crypto price is different across exchangesevery venue uses its own data source

FAQ

Because Binance often uses mark price and smooths candles visually.

CoinAPI uses executed trades, which differ.

If no trade occurs, CoinAPI does not fabricate a candle, unlike many UIs.

Because no trades happened in that period.

This is expected behavior — not an error.

You are comparing different price sources (mark/index vs last trade).

Different exchanges use different trade flows, liquidity, and charting logic.

CoinAPI updates each candle in real time, not in fixed batches.

If your candles "look different" from Binance, Bybit, OKX, or TradingView…

That’s not a bug.

It’s the truth.

CoinAPI gives you:

  • raw, unmodified, per-exchange data
  • zero synthetic candles
  • no smoothing
  • no interpolation
  • no UI magic

This is the market as it really happened, and for trading, modeling, and AI, that’s your unfair advantage.

Explore the CoinAPI OHLCV endpoints and build on data you can trust.

background

Stay up-to-date with the latest CoinApi News.

By subscribing to our newsletter, you accept our website terms and privacy policy.

Recent Articles

Crypto API made simple: Try now or speak to our sales team