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.

Source Distribution

python-idex-1.0.0.tar.gz (20.1 kB view hashes)

Uploaded Source

Built Distribution

python_idex-1.0.0-py2.py3-none-any.whl (20.4 kB view hashes)

Uploaded Python 2 Python 3

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