Інтеграція з WhiteBIT API на Python: Покрокове керівництво
Розробка автоматизованих торгових систем потребує прямої взаємодії з API біржі. У цьому посібнику ми розберемо, як підключитися до WhiteBIT REST API v4 за допомогою мови Python, реалізувати авторизацію запитів через HMAC-SHA512, отримати баланс акаунту та розмістити перший лімітний ордер без використання сторонніх SDK.
WhiteBIT API Integration in Python: A Step-by-Step Guide
Building automated trading systems requires a direct connection to the exchange's backend. In this tutorial, we will write a clean Python implementation to connect to the WhiteBIT REST API v4, implement HMAC-SHA512 request signing, fetch account balances, and execute your first spot limit order without relying on third-party SDKs.
---
1. Авторизація та безпека у v4 API
Усі запити до приватних ендпоінтів WhiteBIT (баланси, ордери, трансфери) мають містити спеціальні HTTP-заголовки авторизації:
X-TXC-APIKEY: Ваш публічний API Key.X-TXC-PAYLOAD: JSON-рядок параметрів запиту, закодований у Base64.X-TXC-SIGNATURE: Підпис корисного навантаження (payload), створений за допомогою HMAC-SHA512 із використанням вашого API Secret.
Завжди зберігайте API Key та API Secret у файлі конфігурації .env та завантажуйте через змінні середовища, щоб не допустити витоку ключів у публічні репозиторії.
1. Authentication & Signature Protocol in API v4
All secure requests to WhiteBIT's private endpoints (balances, trading, transfers) must contain specific HTTP headers:
X-TXC-APIKEY: Your public API key string.X-TXC-PAYLOAD: The query arguments formatted as JSON and encoded in Base64.X-TXC-SIGNATURE: A secure signature generated with HMAC-SHA512 using your private API Secret over the Base64 payload.
Always store your API credentials in a .env configuration file and access them using environment variables to prevent leaking them into public git repositories.
WHITEBIT_API_KEY=your_public_api_key_here
WHITEBIT_API_SECRET=your_private_api_secret_here
---
2. Реалізація підпису HMAC-SHA512 на Python
Розглянемо чистий код на Python для створення правильної авторизації. Ми будемо використовувати стандартні модулі hashlib, hmac, base64, json та бібліотеку requests для мережевих запитів.
2. Implementing HMAC-SHA512 Signature in Python
Here is the clean Python implementation for generating valid headers and dispatching signed requests. We will utilize Python's standard library modules (hashlib, hmac, base64, json, time) along with requests for network transport.
import os
import time
import json
import hmac
import hashlib
import base64
import requests
from dotenv import load_dotenv
# Load credentials
load_dotenv()
API_KEY = os.getenv('WHITEBIT_API_KEY')
API_SECRET = os.getenv('WHITEBIT_API_SECRET')
API_URL = 'https://api.whitebit.com'
def send_signed_request(endpoint, request_data=None):
if request_data is None:
request_data = {}
url = f"{API_URL}{endpoint}"
# 1. Add required routing parameters to payload
request_data['request'] = endpoint
request_data['nonce'] = int(time.time() * 1000) # millisecond nonce
# 2. Serialize payload to JSON (without whitespace separators for consistency)
json_payload = json.dumps(request_data, separators=(',', ':'))
# 3. Base64 encode the JSON string
b64_payload = base64.b64encode(json_payload.encode('utf-8')).decode('utf-8')
# 4. Generate signature with HMAC-SHA512
signature = hmac.new(
API_SECRET.encode('utf-8'),
b64_payload.encode('utf-8'),
hashlib.sha512
).hexdigest()
# 5. Define headers
headers = {
'Content-Type': 'application/json',
'X-TXC-APIKEY': API_KEY,
'X-TXC-PAYLOAD': b64_payload,
'X-TXC-SIGNATURE': signature
}
# 6. Send POST request
response = requests.post(url, data=json_payload, headers=headers)
return response.json()
---
3. Перевірка балансу гаманця
Для отримання залишків на торговому (спотовому) балансі використовуйте ендпоінт /api/v4/trade-account/balance. Запит поверне словник із доступними та заблокованими коштами для кожної монети.
3. Retrieving Spot Wallet Balances
To view funds available for trading, call the /api/v4/trade-account/balance endpoint. This returns a dictionary containing available and locked balances for active assets in your trading wallet.
# Fetch balances
try:
balances = send_signed_request('/api/v4/trade-account/balance')
print("WhiteBIT Trading Balances:")
for asset, data in balances.items():
available = float(data.get('available', 0))
freeze = float(data.get('freeze', 0))
if available > 0 or freeze > 0:
print(f"Asset: {asset} | Available: {available} | Locked: {freeze}")
except Exception as e:
print(f"Failed to query balances: {e}")
---
4. Створення лімітного ордера (Spot Limit Order)
Щоб надіслати новий лімітний ордер на купівлю або продаж, надішліть POST запит на /api/v4/order/new. Обов'язково вкажіть торгову пару (наприклад, BTC_USDT), напрямок (buy або sell), кількість (amount) та ціну (price).
4. Creating a Spot Limit Order
To submit a new order to the exchange book, send a POST request to /api/v4/order/new. The payload must specify the market symbol (e.g., BTC_USDT), side (buy or sell), quantity (amount), and limit rate (price).
# Define order parameters
order_params = {
'market': 'BTC_USDT',
'side': 'buy',
'amount': '0.001',
'price': '62000.00',
'clientOrderId': 'bot_limit_buy_01'
}
# Dispatch order
try:
order_result = send_signed_request('/api/v4/order/new', order_params)
if 'orderId' in order_result:
print(f"Order created successfully! ID: {order_result['orderId']}")
print(f"Status: {order_result['status']} | Remaining amount: {order_result['left']}")
else:
print(f"API rejection: {order_result}")
except Exception as e:
print(f"Error placing order: {e}")
---
Резюме та комісійні привілеї
Протокол API v4 від WhiteBIT пропонує низькі мережеві затримки та стабільні WebSocket стріми для алготрейдерів.
Щоб зменшити витрати під час роботи ваших торгових алгоритмів, зареєструйтесь на біржі за нашим партнерським посиланням (або введіть реферальний код 1ae7c718-eb73-4667-812f-e0a53f994844 під час реєстрації). Ви отримаєте вигідні умови на торгові комісії, а холдинг токенів WBT дозволить знизити maker-комісію до 0.00%.
Summary & Staking Incentives
WhiteBIT's API v4 delivers microsecond execution and reliable WebSocket feeds, making it an excellent platform for grid trading and quantitative strategies.
To optimize the profitability of your trading systems, register your account using our referral link (or enter code 1ae7c718-eb73-4667-812f-e0a53f994844 manually during signup). Staking WhiteBIT Coin (WBT) further scales down your costs, allowing you to pay 0.00% maker fees on large execution volumes.
🚀 Готові оптимізувати свої активи?
🚀 Ready to Optimize Your Assets?
Створіть акаунт на WhiteBIT з кодом 1ae7c718-eb73-4667-812f-e0a53f994844, щоб отримати максимальні реферальні умови та замовити платіжну картку Nova Card.
Create an account on WhiteBIT using referral code 1ae7c718-eb73-4667-812f-e0a53f994844 to secure maximum benefits and order your Visa Nova Card.