Bybit API

Создавайте собственных торговых ботов, анализируйте рынки и управляйте аккаунтом программно. Полная документация по REST и WebSocket API.

Создать API-ключ

Безопасность

Аутентификация с использованием API-ключа и секрета. Поддерживается HMAC SHA256 и RSA. В каждом запросе обязательны временная метка и параметры.

Высокая производительность

До 50 запросов в секунду для публичных эндпоинтов. Лимиты для приватных эндпоинтов варьируются в зависимости от типа.

Глобальная инфраструктура

API доступен по всему миру. Сервера расположены в нескольких регионах для минимальной задержки.

Данные в реальном времени

Доступ к спотовому и фьючерсному рынкам, стаканам заявок, истории сделок, балансам и многому другому.

Базовые эндпоинты

Базовый URL REST API: https://api.bybit.com

Тестнет: https://api-testnet.bybit.com

Публичные данные (без аутентификации)

GET /v5/market/tickers?category=spot
GET /v5/market/kline?category=spot&symbol=BTCUSDT&interval=5
GET /v5/market/orderbook?category=spot&symbol=BTCUSDT

Приватные эндпоинты (требуют аутентификации)

GET /v5/account/wallet-balance?accountType=UNIFIED
POST /v5/order/create
GET /v5/order/realtime
DELETE /v5/order/cancel

Аутентификация

# Заголовки для приватных запросов
X-BAPI-API-KEY: {api_key}
X-BAPI-TIMESTAMP: {timestamp}
X-BAPI-SIGN: {signature}
X-BAPI-RECV-WINDOW: 5000

Подпись — это HMAC SHA256 от строки: timestamp + api_key + recv_window + params

WebSocket потоки

Публичный WebSocket: wss://stream.bybit.com/v5/public/spot
Приватный WebSocket: wss://stream.bybit.com/v5/private/spot

Подписка на публичные каналы

{
  "op": "subscribe",
  "args": ["tickers.BTCUSDT", "orderbook.50.BTCUSDT", "kline.1m.BTCUSDT"]
}

Приватные каналы (аутентификация)

{
  "op": "auth",
  "args": [api_key, timestamp, signature]
}

После успешной аутентификации вы можете подписаться на order, position, wallet и другие приватные каналы.

Python: Получить цену BTC

import requests

response = requests.get("https://api.bybit.com/v5/market/tickers?category=spot&symbol=BTCUSDT")
data = response.json()
print(data['result']['list'][0]['lastPrice'])

JavaScript: Создать лимитный ордер

const CryptoJS = require('crypto-js');

const apiKey = 'YOUR_API_KEY';
const secret = 'YOUR_API_SECRET';
const timestamp = Date.now();
const params = `&category=spot&symbol=BTCUSDT&side=Buy&orderType=Limit&qty=0.001&price=50000&timeInForce=GTC`;
const signature = CryptoJS.HmacSHA256(timestamp + apiKey + '5000' + params, secret).toString();

fetch('https://api.bybit.com/v5/order/create', {
  method: 'POST',
  headers: {
    'X-BAPI-API-KEY': apiKey,
    'X-BAPI-TIMESTAMP': timestamp,
    'X-BAPI-SIGN': signature,
    'X-BAPI-RECV-WINDOW': '5000',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    category: 'spot',
    symbol: 'BTCUSDT',
    side: 'Buy',
    orderType: 'Limit',
    qty: '0.001',
    price: '50000',
    timeInForce: 'GTC'
  })
});

Пример WebSocket на Python

import websocket
import json

def on_message(ws, message):
    print(message)

ws = websocket.WebSocketApp("wss://stream.bybit.com/v5/public/spot",
                            on_message=on_message)
ws.run_forever()

Официальные библиотеки

Python: pip install bybit
Node.js: npm install bybit-api
Java: bybit-java
Go: bybit-go

Начните разработку с Bybit API

Создайте API-ключи в разделе «Управление API» и получите полный доступ к функционалу биржи.

Создать API-ключи