An advanced API client for python botters.
pybotters
は 仮想通貨 botter 向けの Python ライブラリです。
複数取引所に対応した非同期 I/O の API クライアントであり、bot 開発により素晴らしい DX を提供します。
pybotters
は現在 ** Previewバージョン ** です。
一部機能は開発中です。
開発状況については こちら(Issues) を参照してください。
- ✨ HTTP / WebSocket Client
- 複数取引所のプライベート API を自動認証
aiohttp
ライブラリを基盤とした非同期通信- WebSocket の自動再接続、自動ハートビート
- ✨ DataStore
- WebSocket 用のデータ保管クラス
- ピュア Python データモデルによる高速なデータ参照
- 取引所別モデルの実装
- ✨ Developer Experience
asyncio
ライブラリを利用した非同期プログラミング- 型ヒントのサポート
Name | API auth | DataStore | API docs |
---|---|---|---|
Bybit | ✅ | ✅ (Futures v2) | Official v5 / Futures v2 |
Binance | ✅ | ✅ | Official |
OKX | ✅ | ✅ | Official |
Phemex | ✅ | ✅ | Official |
Bitget | ✅ | ✅ | Official |
MEXC | ✅ | WIP | Official / v3 |
KuCoin | ✅ | ✅ | Official |
BitMEX | ✅ | ✅ | Official |
bitFlyer | ✅ | ✅ | Official |
GMO Coin | ✅ | ✅ | Official |
bitbank | ✅ | ✅ | Official |
Coincheck | ✅ | ✅ | Official |
Python 3.7+
pip install pybotters
import asyncio
import pybotters
apis = {
"bybit": ["BYBIT_API_KEY", "BYBIT_API_SECRET"],
}
async def main():
async with pybotters.Client(apis=apis, base_url="https://api.bybit.com") as client:
# REST API
resp = await client.get("/v2/private/position/list", params={"symbol": "BTCUSD"})
data = await resp.json()
print(data)
# WebSocket API (with defautl print handler)
ws = await client.ws_connect(
url="wss://stream.bybit.com/realtime",
send_json={"op": "subscribe", "args": ["trade.BTCUSD", "order", "position"]},
)
await ws # Ctrl+C to break
try:
asyncio.run(main())
except KeyboardInterrupt:
pass
apis = {
"bybit": ["BYBIT_API_KEY", "BYBIT_API_SECRET"],
"binance": ["BINANCE_API_KEY", "BINANCE_API_SECRET"],
}
async def main():
async with pybotters.Client(apis=apis) as client:
await client.post("https://api.bybit.com/v2/private/order/create", data={"symbol": "BTCUSD", ...: ...})
...
await client.post("https://dapi.binance.com/dapi/v1/order", data={"symbol": "BTCUSD_PERP", ...: ...})
...
MIT
Twitter:
Discord: