• Stars
    star
    339
  • Rank 123,875 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created over 3 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An advanced API client for python botters.

PyPI PyPI - Python Version PyPI - License Downloads

pytest publish Code style: black Documentation Status

GitHub Repo stars GitHub forks Discord

[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 ็”จใฎใƒ‡ใƒผใ‚ฟไฟ็ฎกใ‚ฏใƒฉใ‚น
    • ใƒ”ใƒฅใ‚ข Python ใƒ‡ใƒผใ‚ฟใƒขใƒ‡ใƒซใซใ‚ˆใ‚‹้ซ˜้€Ÿใชใƒ‡ใƒผใ‚ฟๅ‚็…ง
    • ๅ–ๅผ•ๆ‰€ๅˆฅใƒขใƒ‡ใƒซใฎๅฎŸ่ฃ…
  • โœจ Developer Experience
    • asyncio ใƒฉใ‚คใƒ–ใƒฉใƒชใ‚’ๅˆฉ็”จใ—ใŸ้žๅŒๆœŸใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐ
    • ๅž‹ใƒ’ใƒณใƒˆใฎใ‚ตใƒใƒผใƒˆ

๐Ÿฆ Exchanges

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

๐Ÿ Requires

Python 3.7+

๐Ÿ”ง Installation

pip install pybotters

๐ŸŒ Quickstart

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

่ฉณใ—ใ„ๅˆฉ็”จๆ–นๆณ•ใฏ ๐Ÿ‘‰ GitHub Wiki

็พๅœจใ“ใกใ‚‰ใซ็งป่กŒไธญใงใ™ ๐Ÿ‘‰ Read the Docs

๐Ÿ—ฝ License

MIT

๐Ÿ’– Author

Twitter:

Twitter Follow

Discord:

Discord Widget