Skip to main content

Python bindings for the Cryptowatch API. Cryptocurrency markets, assets, instruments and exchanges data.

Project description

Cryptowatch Python SDK

The Cryptowatch Python library provides a convenient access to the Cryptowatch API from applications written in the Python language.

It includes the following features:

  • Auto-serialization of API responses into Python objects
  • API credentials automatically read from your ~/.cw/credentials.yml config file
  • Custom exceptions for API-specific issues (e.g.: Requests Allowance)
  • Smart back-off retries in case of API connectivity loss


pip install cryptowatch-sdk


  • python v3.7+
  • requests v0.8.8+
  • marshmallow v3.2.2+
  • pyyaml v5.1.2+

API Crendential

Using a credential file will allow you to authenticate your requests and grant you the API access of your account tier (Free, Basic or Pro).

Setup your credential file

  1. Generate an Cryptowatch API key from your account
  2. Create your credential file on your machine by running in order: 2.1 mkdir $HOME/.cw 2.2 echo "apikey: 123" > $HOME/.cw/credentials.yml (where 123 is your 20 digits public key)
  3. Verify with cat $HOME/.cw/credentials.yml that you see something like below (123 being your public key):
apikey: 123

The SDK will read your public key as soon as import cryptowatch is ran in your script.



import cryptowatch as cw

# Assets

# Exchanges

# Instruments

# Markets # Returns list of all markets on all exchanges"BINANCE") # Returns all markets on Binance

# Returns market summary (last, high, low, change, volume)"KRAKEN:BTCUSD")
# Return market candlestick info (open, high, low, close, volume) on some timeframes"KRAKEN:BTCUSD", ohlc=True, periods=["4h", "1h", "1d"])

# Returns market last trades"KRAKEN:BTCUSD", trades=True)

# Return market current orderbook"KRAKEN:BTCUSD", orderbook=True)
# Return market current orderbook liquidity"KRAKEN:BTCUSD", liquidity=True)


Logging can be enabled through Python's logging module:

import logging



The library exposes a simple utility, named cryptowatch, to return last market prices.

By default it returns Kraken's BTCUSD market

> cryptowatch

Add another Kraken market to return this market last price

> cryptowatch btceur

You can also specify your own exchange

> cryptowatch binance:ethbtc

When the market doesn't exist a return code of 1 will be set (0 otherwise):

> cryptowatch binance:nosuchmarketusd
> echo $?


Unit tests are under the tests folder and use pytest, run them all with:

make test

Integration tests sending real HTTP requests to the Cryptowatch API can be run with:

make test-http-real


Testing and developement dependencies are in the requirements.txt file, install them with:

pip install -r requirements.txt

The code base use the Black linter, run it with:

make lint



Project details

Download files

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

Files for cryptowatch-sdk, version 0.0.3
Filename, size File type Python version Upload date Hashes
Filename, size cryptowatch_sdk-0.0.3-py3-none-any.whl (14.3 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size cryptowatch-sdk-0.0.3.tar.gz (11.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page