Skip to main content

Python asyncio client for Kraken API REST and Kraken Websockets API using httpx and websockets

Project description

Kraky

Python asyncio client for Kraken API REST and Kraken Websockets API using httpx and websockets

Installation

pip install kraky

Docs

https://kraky.readthedocs.io/en/latest/

Usage

REST

from kraky import KrakyApiClient

async def get_web_sockets_token():
    kraken_api_key = ""
    kraken_secret = ""
    kraky_api_client = KrakyApiClient(
        api_key=kraken_api_key, secret=kraken_secret
    )

    ws_token = await self.kraky_api_client.get_web_sockets_token()
    return ws_token

Websocket

from kraky import KrakyApiClient, KrakyWsClient

async def get_ws_token():
    kraken_api_key = ""
    kraken_secret = ""
    kraky_api_client = KrakyApiClient(
        api_key=kraken_api_key, secret=kraken_secret
    )

    ws_token = await self.kraky_api_client.get_web_sockets_token()
    return ws_token

async def public_handler(self, response):
    print(response)

async def private_handler(self, response):
    print(response)

async def main():

    interval = 30

    ws_pairs = ["XBT/USD", "ETH/USD]

    ws_token = get_token()

    kraky_public_ws_client = KrakyWsClient("production")
    kraky_private_ws_client = KrakyWsClient("production-auth")

    asyncio.create_task(
        kraky_public_ws_client.connect(
            public_handler, connection_name="public"
        )
    )

    asyncio.create_task(
        kraky_private_ws_client.connect(
            private_handler, connection_name="private"
        )
    )

    await kraky_public_ws_client.subscribe(
        {"name": "ohlc", "interval": interval},
        ws_pairs,
        connection_name="public",
    )

    await kraky_private_ws_client.subscribe(
        {
            "interval": interval,
            "token": ws_token,
            "name": "openOrders",
        },
        connection_name="private",
    )

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.create_task(main())
    loop.run_forever()

Compatibility

  • Python 3.7 and above

Licence

MIT License

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

kraky-0.9.8.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

kraky-0.9.8-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file kraky-0.9.8.tar.gz.

File metadata

  • Download URL: kraky-0.9.8.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for kraky-0.9.8.tar.gz
Algorithm Hash digest
SHA256 518c078b695a60c7ff2a53683d95183fa767730dc3acd5761b48fc8ddf1d472b
MD5 1e8b05105aef764eb4d5283c49d3a83d
BLAKE2b-256 e66a4964a89503f2653df87d206333bd70fa76e18c29cd5f1d8b529aadf03326

See more details on using hashes here.

File details

Details for the file kraky-0.9.8-py3-none-any.whl.

File metadata

  • Download URL: kraky-0.9.8-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for kraky-0.9.8-py3-none-any.whl
Algorithm Hash digest
SHA256 0c7340c672f849d9ee6a760e91e4e84e84ecafec3dfdb4a8af1d78d460950c76
MD5 43acbfecb5d843bd6f55271ef5f50a3c
BLAKE2b-256 987ddb893cb27a8e3d447ffa26635979d4ce78ae6f42d6e8c34b1de19045200d

See more details on using hashes here.

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