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.
Why Crypto Candles Don’t Match Binance, Bybit, OKX, or TradingView
One of the most frequent questions developers ask is:
“Why are my OHLCV candles not matching the exchange UI?”
Here’s the core difference:
1. Exchanges often use non-trade price sources
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.
2. CoinAPI candles are strictly trade-based
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.
How Crypto Exchanges Build Candle Data (Mark Price vs Last Trade vs Index Price)
Many discrepancies come from one question:
“What price is the exchange using to draw candles?”
Here’s the breakdown:
Exchange UIs may use:
- Mark price (derivatives)
- Index price (basket of exchanges)
- Mid price (bid/ask midpoint)
- Smoothed/interpolated last values
- Aggregated or synthetic prices
CoinAPI uses:
- 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.
Why Some 1-Minute Crypto Candles Are Missing (Zero-Volume or No-Trade Periods)
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.
How This Relates to Real Support Cases
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_endis 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.
Real Example: What True Trade-Based OHLCV Looks Like
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
This is what real raw crypto market data looks like.
Not smoothed. Not synthetic. Not interpolated.
Why Candle High/Low Often Doesn’t Match the Exchange Chart
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.
Why CoinAPI Streaming OHLCV Sends Multiple Updates (Not One Per Period)
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.
Why Your OHLCV API Data Won’t Match Exchange UIs (Summary)
Here’s a quick checklist that directly addresses thousands of monthly searches:
| Problem Users Search For | Root Cause |
| crypto candles not matching | UI uses synthetic/mid/mark/index prices |
| missing 1 minute candles | no trades → CoinAPI does not fabricate candles |
| zero-volume candles | period had order book events but no trades |
| binance candles wrong | Binance UI uses mark/index price |
| candle high/low mismatch | UI price ≠ trade price |
| ohlcv not matching exchange | strict trade-based candles vs smoothed UI candles |
| why crypto price is different across exchanges | every venue uses its own data source |
FAQ
Why do my candles not match Binance?
Because Binance often uses mark price and smooths candles visually.
CoinAPI uses executed trades, which differ.
Why are candles missing?
If no trade occurs, CoinAPI does not fabricate a candle, unlike many UIs.
Why is the volume zero?
Because no trades happened in that period.
This is expected behavior — not an error.
Why does candle high/low not match?
You are comparing different price sources (mark/index vs last trade).
Why do candles look different across exchanges?
Different exchanges use different trade flows, liquidity, and charting logic.
Why does OHLCV stream send multiple messages?
CoinAPI updates each candle in real time, not in fixed batches.
Final Thoughts: Accuracy Beats Aesthetics
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.












