Skip to main content

IDEX REST API python implementation

Project description

https://img.shields.io/pypi/v/python-idex.svg https://img.shields.io/pypi/l/python-idex.svg https://img.shields.io/travis/sammchardy/python-idex.svg https://img.shields.io/coveralls/sammchardy/python-idex.svg https://img.shields.io/pypi/wheel/python-idex.svg https://img.shields.io/pypi/pyversions/python-idex.svg

This is an unofficial Python wrapper for the IDEX exchanges REST API v1. I am in no way affiliated with IDEX, use at your own risk.

PyPi
https://pypi.python.org/pypi/python-idex
Source code
https://github.com/sammchardy/python-idex
Documentation
https://python-idex.readthedocs.io/en/latest/

Features

  • Implementation of all REST endpoints except for deposit.
  • Helper functions for your wallet address
  • Response exception handling
  • Websockets for Python 3.5+

Upgrading

If you’ve been using an older version of python-idex < 1.0.0 you will need to use an API Key for the REST client and websocket client. See examples below.

Quick Start

Register an account with IDEX.

pip install python-idex

Synchronous Examples

api_key = 'api:jVXLd5h1bEYcKgZbQru2k'
address = '<address_string>'
private_key = '<private_key_string>'

from idex.client import Client
client = Client(api_key, address, private_key)

# get currencies
currencies = client.get_currencies()

# get market depth
depth = client.get_order_book('ETH_SENT')

# get your balances
balances = client.get_my_balances()

# get your open orders
orders = client.get_my_open_orders('ETH_SENT')

# create a limit order
order = client.create_order('SENT', 'ETH', '0.001', '10000')

Async Examples for Python 3.5+

from idex.asyncio import AsyncClient, IdexSocketManager, SubscribeCategory

loop = None

async def main():
    global loop

    # Initialise the client
    client = await AsyncClient(api_key, address, private_key)

    # get currencies
    currencies = await client.get_currencies()

    # get market depth
    depth = await client.get_order_book('ETH_SENT')

    # get your balances
    balances = await client.get_my_balances()

    # get your open orders
    orders = await client.get_my_open_orders('ETH_SENT')

    # create a limit order
    order = await client.create_order('SENT', 'ETH', '0.001', '10000')

    # Coroutine to receive messages
    async def handle_evt(msg):
        print(f"event:{msg['event']} payload:{msg['payload']}")
        # do something with this event

    # Initialise the socket manager with the callback funciton
    ism = await IdexSocketManager.create(loop, handle_evt, api_key)

    # Subscribe to updates for the ETH_SENT, ETH_AURA and ETH_IDXM market for cancels, orders and trades
    await ism.subscribe(
        SubscribeCategory.markets,
        ['ETH_SENT', 'ETH_AURA', 'ETH_IDXM'],
        ['market_cancels', 'market_orders', 'market_trades']
    )

    # keep the script running so we can retrieve websocket events
    while True:
        await asyncio.sleep(20, loop=loop)


if __name__ == "__main__":
    # get a loop and switch from synchronous to async
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

For more check out the documentation.

TODO

  • Deposit endpoints

Other Exchanges

If you use Binance check out my python-binance library.

If you use Binance Chain check out my python-binance-chain library.

If you use Kucoin check out my python-kucoin library.

If you use Quoinex or Qryptos check out my python-quoine library.

If you use Allcoin check out my python-allucoin library.

If you use Exx check out my python-exx library.

If you use BigONE check out my python-bigone library.

https://analytics-pixel.appspot.com/UA-111417213-1/github/python-idex?pixel

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 python-idex, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size python_idex-1.0.0-py2.py3-none-any.whl (20.4 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size python-idex-1.0.0.tar.gz (20.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page