Binance api order example

Published: 2026-10-22 18:54:44

Binance API Order Example: Building a Simple Trading Bot

Binance, one of the world's leading cryptocurrency exchanges, offers an extensive set of APIs that allow developers to interact with its services and platforms programmatically. Among these APIs is the RESTful API, which provides access to order book data and enables the execution of trades from within applications. In this article, we will explore how to use the Binance API to create a simple trading bot, which places buy and sell orders based on predefined conditions.

Understanding the Binance API

Binance's API offers endpoints for fetching order book data (both historical and live), executing trades, retrieving account balances, and more. The RESTful API is suitable for applications running in environments where HTTP requests are supported. To interact with this API, developers need to obtain an access key and a secret key by following Binance's authentication process.

Setting Up the Environment

To create our trading bot using Python, we first need to install the `requests` library:

```bash

pip install requests

```

We also need to ensure that we have valid API keys. Go to [Binance's official website](https://www.binance.com/) and navigate to "Developer" for obtaining your access key and secret key.

Writing the Trading Bot

Our bot will be a simple mean reversion strategy, which buys when prices are low and sells them when they're high. For demonstration purposes, we'll trade Bitcoin (BTC) against USDT (Tether USD) on the Binance exchange using an hourly price chart.

```python

import requests

import json

import time

API keys

API_KEY = 'YOUR_ACCESS_KEY' # Replace with your access key

API_SECRET = 'YOUR_SECRET_KEY' # Replace with your secret key

Binance RESTful API endpoint parameters

BASE_URL = 'https://api.binance.com/api/v3'

MARKET_ORDER_ENDPOINT = '/order'

TRADE_V2_ENDPOINT = '/dance'

ACCOUNT_INFO_ENDPOINT = '/fapi/v1/account'

Trading parameters

PAIR = 'BTCUSDT' # Trading pair (coin against fiat in this case)

AMOUNT = 0.05 # Trading amount in BTC

BUY_LIMIT = 42000 # Buy at prices less than or equal to this value

SELL_LIMIT = 43000 # Sell at prices greater than or equal to this value

def get_order_info(symbol, timestamp):

"""Get the current order book and close price."""

url = f'{BASE_URL}/{TRADE_V2_ENDPOINT}?symbol={symbol}×tamp={timestamp}'

headers = { 'X-MBX-APIKEY': API_KEY }

response = requests.get(url, headers=headers)

return json.loads(response.text)

def place_order(side, quantity, price, symbol):

"""Place a buy or sell order."""

payload = {

'symbol': symbol,

'side': side,

'type': 'LIMIT',

'timeInForce': 'GTC',

'quantity': quantity,

'price': price

}

url = f'{BASE_URL}/{MARKET_ORDER_ENDPOINT}'

headers = { 'X-MBX-APIKEY': API_KEY }

response = requests.post(url, data=json.dumps(payload), headers=headers)

return json.loads(response.text)

def main():

Retrieve the user's account info

url = f'{BASE_URL}/{ACCOUNT_INFO_ENDPOINT}'

headers = { 'X-MBX-APIKEY': API_KEY }

response = requests.get(url, headers=headers)

account_info = json.loads(response.text)

Get the current trading pair price

timestamp = int(time.time()) # Current timestamp in seconds

orderbook = get_order_info(PAIR, timestamp)

last_price = orderbook['b'][-1][0]

if last_price AMOUNT:

print('Buying...')

result = place_order(side='BUY', quantity=AMOUNT, price=last_price, symbol=PAIR)

if result['status'] == 0:

print('Buy order successful!')

elif last_price >= SELL_LIMIT and account_info[f'{PAIR}']['balance'] > AMOUNT:

print('Selling...')

result = place_order(side='SELL', quantity=AMOUNT, price=last_price, symbol=PAIR)

if result['status'] == 0:

print('Sell order successful!')

else:

time.sleep(60) # Wait for a minute and check again

while True:

main()

```

This script checks the current price of BTCUSDT against our buy and sell limits, and places orders accordingly. It also takes into account the user's available balance to ensure they do not exceed their financial risk appetite. The `main` function is designed to continuously check these conditions indefinitely due to the `while True:` loop in the script.

Conclusion

By using Binance API, developers can build a wide array of applications ranging from simple bots like ours to complex trading strategies and automated market makers. Understanding how APIs work and where they fit into an application's architecture is crucial for building efficient, scalable, and secure systems in the cryptocurrency space or any other area requiring interaction with third-party services.

Remember that cryptocurrency markets are highly volatile and involve a high degree of risk. Trading on margin can lead to substantial losses as well as profitable gains. Always ensure you have sufficient knowledge about trading in cryptocurrencies before starting to trade.

Recommended for You

🔥 Recommended Platforms