That's true. You get quote data to update a bar in a timeframe.
For IB, you have to correct the data.
The live data - tickPrice - misses some bar high and lows.
Have you looked into RTVolume?
https://www.interactivebrokers.com/en/software/api/apiguide/tables/rtvolume.htm
There is "Total volume".
"To implement this, you must include 233 in the genericTicklist parameter in your market data request. You will receive the RTVolume update through the tickString() event within field value 48."
It's a string. Split it. It's the fourth value.