Skip to main content

An advanced api client for python botters.

Project description

pytest

[Preview] pybotters

An advanced api client for python botters.

📌 Description

pybotters仮想通貨botter向けのPythonライブラリです。

複数取引所に対応した非同期I/OのAPIクライアントであり、bot開発により素晴らしいDXを提供します。

👩‍💻👨‍💻 In development

pybotters は現在 ** Previewバージョン ** です。 一部機能は開発中です。

開発状況については こちら(Issues) を参照してください。

🚀 Features

  • ✨ HTTP / WebSocket Client
    • 複数取引所のプライベートAPIを自動認証
    • aiohttpライブラリを基盤とした非同期通信
    • WebSocketの自動再接続、自動ハートビート
  • ✨ DataStore
    • WebSocket用の自動データ保管クラス
    • 参照渡しによる高速なデータ参照
    • 取引所別データモデルの実装
  • ✨ Developer Experience
    • asyncioライブラリを利用した非同期プログラミング
    • 型ヒントのサポート

🏦 Exchanges

Name API auth DataStore API docs
Bybit Official
Binance ✅(USDⓈ-M) Official
FTX Official
Phemex Official
OKX Official
BitMEX Official
bitFlyer Official
GMO Coin Official
Liquid WIP Official
bitbank Official
Coincheck Official

🐍 Requires

Python 3.7+

🛠 Installation

pip install pybotters

🔰 Usage

Single exchange

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

Multiple exchanges

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', ...: ...})
        ...

📖 Wiki

詳しい利用方法は👉Wikiページへ

現在こちらにに移行中です👉Read the Docs

🗽 License

MIT

💖 Author

Twitter: https://twitter.com/MtkN1XBt

Discord: https://discord.com/invite/CxuWSX9U69

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybotters-0.11.0.tar.gz (33.6 kB view hashes)

Uploaded Source

Built Distribution

pybotters-0.11.0-py3-none-any.whl (44.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page