Welcome to crix’s documentation!

This official client of CRIX.io crypto exchange.

Environment requirements:

  • python 3.5+
  • requests 2.*

For several operations like create/cancel orders you should also be registered in the exchange and got BOT API token and secret.

To access historical data you should get explicit permission by exchange support.

Installation

  • over pip: pip install crix
  • manually: pip install git+https://github.com/blockwise/crix-client-py.git#egg=crix

Rate limit

Currently for BOT API there is a rate limit about 100 requests/second, however several functions in the library can use multiple requests inside as noted in their documentation.

Sample usage

Unauthorized (public) access

import crix

client = crix.Client(env='prod')

# get all symbols
for symbol in client.fetch_markets():
    print(symbol)

# get some order book
depth = client.fetch_order_book('BTC_BCH')
print(depth)

Authorized (clients-only) access

Warning

BOT API token and secret are required and should be obtained for each client from the exchange

import crix
from crix.models import NewOrder

client = crix.AuthorizedClient(
    env='prod',
    token='xxyyzz',
    secret='aabbcc'
) # replace token and secret value for your personal API credentials


# list all open orders
for order in client.fetch_open_orders('BTC_BCH'):
    print(order)

# prepare order
new_order = NewOrder.market('BTC_BCH', is_buy=True, quantity=0.1) # or use NewOrder constructor
# place order
order = client.create_order(new_order)
print(order)

Authorized asynchronous access - get balance

import crix
from crix.models import NewOrder
from aiohttp import ClientSession


async def run():
   # initialize HTTP(s) session
   async with ClientSession() as session:
      client = crix.AsyncAuthorizedClient(token='xxyyzz',
                                         secret='aabbcc',
                                         env='prod',
                                         session=session) # replace token and secret value for your personal API credentials
      # list opened and closed orders
      async for x in client.fetch_orders('ETH_BTC'):
         print(x)


asyncio.get_event_loop().run_until_complete(run())

Indices and tables