Skip to main content

huobi api sdk

Project description

Huobi Python SDK

This is Huobi Python SDK, requires python >= 3.5.

The SDK API supports both RESTful and websocket to get/sub the market, account and order infomation.

It supports Spot trading, Coin-M Futures, Coin-M Swaps and USDT-M.

Table of Contents

Quick Start

The project huobi is a dll project as SDK API. The project tests is a unit test project and you can find usage of each API interface.

If you want to create your own application, you can follow below steps:

  • Create a client instance.
  • Call the method of client instance.
// RESTful 
from huobi.linear_swap.rest.account import Account
client = Account(ACCESS_KEY, SECRET_KEY)
result = client.get_balance_valuation({"valuation_asset": "usdt"})

// websocket
from huobi.linear_swap.ws.account import Account
client = Account(ACCESS_KEY, SECRET_KEY)
client.sub({"op": "sub", "topic": "orders.btc-usdt"},
            lambda x: logger.info(x))
time.sleep(10)

Usage

Configuration

The client constructor must set AccessKey/SecretKey two value when you access private data. And it not need to set AccessKey/SecretKey value when you access public data such as market data.

You can create config.py in your project for config AccessKey/SecretKey and other input data.

ACCESS_KEY = "x-x-x-x"
SECRET_KEY = "x-x-x-x"

And use it as follow:

from config import ACCESS_KEY, SECRET_KEY
# to do something

Folder Structure

This is the folder and namespace structure of SDK source code and the description

  • huobi: The SDK API project
    • spot: the Spot trading api src inclue RESTful and Websocket
    • futures: the Coin-M Futures api src inclue RESTful and Websocket
    • coin_swap: the Coin-M Swaps api src inclue RESTful and Websocket
    • linear_swap: the USDT-M api src inclue RESTful and Websocket
    • utils: http.get/post lib, websocket api lib and log setting
    • host.py: the host name of spot and futures(Coin-M Futures, Coin-M Swaps and USDT-M are using the same host name)
  • tests: The unit test project
    • config.py: config of accessKey and secretKey
    • xxx: The Python unit test folder

You can find all demo in test_xxx.py to get/sub private/public data

Client

In this SDK, the client is the object to access the Huobi API. All the client are listed in below table. Each client is very small and simple.

Access Type Client Privacy Data Category
RESTful Account Private account info
Market Public market info
Order Private about order
Transfer Private transfer assets
TriggerOrder Private about trigger order
Websocket Index Public index infor
Market Public market info
Notify Public/Private market info/ account info

Public vs. Private

There are two types of privacy that is correspondent with privacy of API:

Public client: It invokes public API to get public data (Common data and Market data), therefore you can create a new instance without applying an API Key.

from huobi.linear_swap.rest.market import Market
client = Market()
result = client.get_contract_info({"contract_code": "btc-usdt", "support_margin_mode": "all"})

Private client: It invokes private API to access private data, you need to follow the API document to apply an API Key first, and pass the API Key to the constructor.

from huobi.linear_swap.rest.account import Account
client = Account(ACCESS_KEY, SECRET_KEY)
result = client.get_balance_valuation({"valuation_asset": "usdt"})

The API key is used for authentication. If the authentication cannot pass, the invoking of private interface will fail.

Rest vs. WebSocket

Rest Client: It invokes Rest API and get once-off response.

from huobi.linear_swap.rest.account import Account
client = Account(ACCESS_KEY, SECRET_KEY)
result = client.get_balance_valuation({"valuation_asset": "usdt"})

WebSocket Client: It establishes WebSocket connection with server and data will be pushed from server actively. There are two types of method for WebSocket client:

  • Request method: The method name starts with "req", it will receive the once-off data after sending the request.
  • Subscription: The method name starts with "sub", it will receive update after sending the subscription.
from huobi.linear_swap.ws.market import Market
client = Market()
client.sub({"sub": "market.BTC-USDT.kline.1min"}, lambda x: logger.info(x))
while True:
    time.sleep(1)

Custom host

Each client constructor support an optional host parameter, by default it is in host.py file. If you need to use different host, you can specify the custom host.

from huobi.linear_swap.rest.account import Account
client = Account(ACCESS_KEY, SECRET_KEY, "your_host")

# to do something

Request

In this SDK, the response is the dict type or None. More detail to see: https://docs.huobigroup.com/docs/spot/v1/en/

Response

In this SDK, the response is the json data. More detail to see: https://docs.huobigroup.com/docs/spot/v1/en/

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

huobipy-1.0.1.tar.gz (15.2 kB view hashes)

Uploaded Source

Built Distribution

huobipy-1.0.1-py3-none-any.whl (23.0 kB view hashes)

Uploaded 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