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.6.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

kraky-0.9.6-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kraky-0.9.6.tar.gz
  • Upload date:
  • Size: 7.9 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.0 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.8.7

File hashes

Hashes for kraky-0.9.6.tar.gz
Algorithm Hash digest
SHA256 6b67f3108a1c76daa6a4e14f22a068d97f834bbf551aa29b8ac8c5d782247db5
MD5 9b5285a053cae086c9d609027aa858c1
BLAKE2b-256 bd76ab5de1d39815d19caf867b94724bb282ab7f57e4d0c793daa784554beac6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kraky-0.9.6-py3-none-any.whl
  • Upload date:
  • Size: 8.7 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.0 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.8.7

File hashes

Hashes for kraky-0.9.6-py3-none-any.whl
Algorithm Hash digest
SHA256 779f46975c6e362604f2c6d6c0e0d77bd7ccc806b94a602497cfaca408b72ea7
MD5 8cbbdcd5bcb919dd6c81a764280b420e
BLAKE2b-256 f99b245b6d698b9084dda5d4966a112056ccf1478affc1d655e012a2a33595b9

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