Get Real-Time Bitcoin Futures Price on Binance Using WebSocket
As a trader or investor, having access to real-time prices is essential for making informed decisions. In this article, we will explore how to establish a real-time price WebSocket connection for the Spot Market and Futures BTCUSDT on Binance.
Prerequisites
Before you begin, make sure that:
- You have a Binance API key or access token.
- Your trading account is verified and connected to your Binance account.
- You have installed the pandas library in your Python environment (install using “pip install pandas”).
Creating a Real-Time Price WebSocket Connection for the Spot Market
To connect to the Bitcoin (BTC) spot market on Binance, you need to use the “klines_1m” endpoint and specify the “futures” indicator. Here is an example code snippet:
import pandas as pd

Set your API key or access tokenapi_key = 'YOUR_API_KEY'
api_secret = 'YOUR_API_SECRET'
Connect to the Binance APIclient = binary. Client(api_id=api_key, api_key_secret=api_secret)
Define WebSocket endpoint and channel (dot market)ws_endpoint = f"wss://stream.binance.com:9443/ws/dotusdt@kline_1m"
channel = "BTCUSDT"
Initialize an empty data frame to store datadf = pd.DataFrame()
while true:
Get new lines from the WebSocket connectionresponse = client.get_channel(ws_endpoint, channel)
Iterate over each line (1 minute interval)for response line:
Extract the relevant data (e.g. timestamp, open, high, low, close, volume)data = {
'timestamp': pd.to_datetime(line['t']),
'open': float(line['o']),
'high': float(line['h']),
'low': float(line['l']),
'close': float(line['c']),
'volume': float(line['v'])
}
Add data to the DataFrame.
df = pd.concat([df, pd.DataFrame(data)], ignore_index=True)
Check for new data pointsif not df.empty:
Print real-time prices (optional)print(f"Real-time BTCUSDT price: {df['close'].max()}")
Update your trading logic or notification mechanisms here
Break out of the loop when you're ready to stop listeningbreak
Close the WebSocket connection when you're doneclient.disconnect()
Get real-time BTCUSDT futures price
To connect to the Binance Futures (FUT) market, you need to use the “kline_1m” endpoint and specify the “futures” indicator. Here is an example code snippet:
“` python
… same as above
while true:
Get new lines from the WebSocket connection
response = client.get_channel(ws_endpoint, channel)
Iterate over each line (1 minute interval)
for response line:
Extract the relevant data (e.g. timestamp, open, high, low, close, volume)
data = {
‘timestamp’: pd.to_datetime(line[‘t’]),
‘open’: float(line[‘o’]),
‘high’: float(line[‘h’]),
‘low’: float(line[‘l’]),
‘close’: float(line[‘c’]),
‘volume’: float(line[‘v’])
}
Add the data to the DataFrame.
df = pd.concat([df, pd.DataFrame(data)], ignore_index=True)
Check for new data points
if not df.empty:
Print real-time prices (optional)
print(f”Real-time BTCUSDT futures price: {df[‘close’].max()}”)
Update your trading logic or notification mechanisms here
Break out of the loop when you’re ready to stop listening
break
Close the WebSocket connection when you’re done
client.