MENU Navbar
shell

APIの紹介

前書き

Huobi APIへようこそ。当社のAPIを使用して、マーケットデータ、取引、およびアカウント管理のエンドポイントにアクセスできます。

*現在、レバレッジ取引には未対応です。

下記の2種類のAPIを用意いたします。

右側のコード領域にはサンプルコードが表示されます。

Rest API共通情報

本APIを使って、取引プログラムの実装ができます。

APIを使えば以下の機能が使用できます。

セキュリティ認証

1. API KEYの申請

keyの種類 説明
AccessKey アクセスキー
SecretKey 署名時に必要な秘密鍵

2. API KEYの権限設定

権限 説明
読取 アカウント情報、取引履歴、入出金履歴の参照ができます
出金 暗号資産の出金申請ができます
取引 取引所、販売所の取引注文、キャンセルができます

3. リクエストの共通仕様

セキュリティ上の理由で、マーケットAPI以外のAPIリクエストには全て署名が必要となります。これから共通の仕様を説明します。

リクエストの例

curl -X GET \  
      https://api-cloud.huobi.co.jp/v1/order/orders? \ 
      AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx \ 
      &SignatureMethod=HmacSHA256 \ 
      &SignatureVersion=2 \ 
      &Timestamp=2017-05-11T15%3A19%3A30 \ 
      &order-id=1234567890 \ 
      &Signature=$(some calculated value)

HOST

https://api-cloud.huobi.co.jp

共通仕様

Header 説明
User Agent User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
Language Accept-Language: ja-JP
POST Request Content-Type: application/json
GET Request Content-Type: application/x-www-form-urlencoded
Response Format json

認証用共通パラメータ

パラメータ 詳細説明
AccessKeyId アクセスキー
SignatureMethod 署名の演算時に用いるハッシュベースプロトコル、ここではHmacSHA256を指定します
SignatureVersion 署名プロトコルのバージョン、ここでは2を指定します
Timestamp リクエスト時のタイムスタンプ(UTC 時間) 。
タイムスタンプをクエリに含めることで、第三者がリクエストを傍受するのを防ぐことができます。例:2017-05-11T16:22:06。タイムスタンプはUTC 時間であることに注意してください。
Signature 署名に基づいて計算された値。署名が有効で改ざんされていないことを保証するために使用されます。
必須、オプションのパラメーター各メソッドには、API呼び出しを定義するための一連の必須、オプションのパラメーターがあります。これらのパラメータとその意味は、各メソッドの説明で確認できます。

署名処理

署名処理手順

# 元のリクエスト
https://api-cloud.huobi.co.jp/v1/order/orders?
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx
&order-id=1234567890
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Timestamp=2017-05-11T15:19:30

# 1. 改行入れる
GET\n

# 2. 改行入れる
api-cloud.huobi.co.jp\n

# 3. 改行入れる
/v1/order/orders\n

# 4. パラメータソートする
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx
SignatureMethod=HmacSHA256
SignatureVersion=2
Timestamp=2017-05-11T15%3A19%3A30
order-id=1234567890

# 5. '&'で連結
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30&order-id=1234567890

# 6. 署名用文字列
GET\n
api-cloud.huobi.co.jp\n
/v1/order/orders\n
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30&order-id=1234567890

# 7. 署名処理 - サンプルコードに参照
SecretKey: b0xxxxxx-c6xxxxxx-94xxxxxx-dxxxx
Signature: 4F65x5A2bLyMWVQj3Aqp+B4w+ivaA7n5Oi2SuYtCJ9o=

# 8. 署名後の文字列をURLに付加する
https://api-cloud.huobi.co.jp/v1/order/orders?AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&order-id=1234567890&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30&Signature=4F65x5A2bLyMWVQj3Aqp%2BB4w%2BivaA7n5Oi2SuYtCJ9o%3D
  1. リクエスト方法(GET 或いは POST),続けて改行を追加する

  2. 小文字のアクセスアドレスに続けて改行を追加する

  3. アクセスメソッドへのパス、続けて改行を追加する

  4. パラメータ名は、ASCIIコードの順にソートされます(UTF-8エンコーディングとURIエンコーディングを使用すると、16進文字は大文字にする必要があり、 ':'は '%3A'、スペースは'%20'といった具合にエンコードされます) 例えば、エンコード後の要求パラメータの元の順序は次のとおりです

  5. 上記の順序で、各パラメーターは文字 '&'を使用して接続されます

  6. 計算のために署名される最後の文字列は次のとおりです

  7. 秘密キー(SecretKey)と変換後のリクエスト文字列を使って、署名処理を行い、その結果はBase64エンコードします。
    上記の値をパラメータSignatureの値としてAPIリクエストに追加します。 このパラメータをリクエストに追加する場合、その値はURIエンコードされている必要があります

  8. 最終的に、サーバーに送信するAPIリクエストは次のようになります

マスター情報関連

取引ペア精度

curl -X GET \
      "https://api-cloud.huobi.co.jp/v1/common/symbols"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": [
    {
      "base-currency": "ltc",
      "quote-currency": "jpy",
      "price-precision": 4,
      "amount-precision": 4,
      "symbol-partition": "default",
      "symbol": "ltcjpy"
    },
    {
      "base-currency": "xrp",
      "quote-currency": "jpy",
      "price-precision": 4,
      "amount-precision": 2,
      "symbol-partition": "default",
      "symbol": "xrpjpy"
    }
  ]
}

このエンドポイントは各取引ペアの精度を返します。

HTTP Request

GET /v1/common/symbols

Query Parameters

Parameter Required Description

Response Data

Parameter Required Type Description
status true string リクエスト处理结果, 例えば: "ok","error"
data true list 精度データ

対応取引通貨ペア

curl -X GET \
     "https://api-cloud.huobi.co.jp/v1/common/currencys"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": [
    "jpy",
    "btc",
    "xrp",
    "eth",
    "ltc",
    "bch",
    "mona"
  ]
}

このエンドポイントは各取引通貨ペアを返します。

HTTP Request

GET /v1/common/currencys

Query Parameters

Parameter Required Description

Response Data

Parameter Required Type Description
status true string リクエスト处理结果, 例えば: "ok","error"
data true list 精度データ

システム時間を調べる

curl -X GET \
      "https://api-cloud.huobi.co.jp/v1/common/timestamp"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": 1555667124908
}

このエンドポイントはシステムのタイムスタンプ(ミリ秒)を返します。

HTTP Request

GET /v1/common/timestamp

Query Parameters

Parameter Required Description

Response Data

Parameter Required Type Description
status true string リクエスト处理结果, 例えば: "ok","error"
data true int システムのUNIX Timestamp (ミリ秒)

マーケット関連

KLineデータの取得

curl -X GET \
      "https://api-cloud.huobi.co.jp/market/history/kline?period=1day&size=200&symbol=btcjpy"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "ch": "market.btcjpy.kline.1day",
  "ts": 1499223904680,
  "data": [
    {
      "id": 1499184000,
      "amount": 37593.0266,
      "count": 0,
      "open": 1935.2000,
      "close": 1879.0000,
      "low": 1856.0000,
      "high": 1940.0000,
      "vol": 71031537.97866500
    }
  ]
}
curl -X GET \
      https://api-cloud.huobi.co.jp/market/history/kline?period=not-exist&size=200&symbol=ethjpy

期間エラーのとき、下記のようなレスポンスを返します。

{
  "ts": 1490758171271,
  "status": "error",
  "err-code": "invalid-parameter",
  "err-msg": "invalid period"
}
GET /market/history/kline?period=1day&size=not-exist&symbol=ethjpy

サイズエラーのとき、下記のようなレスポンスを返します。

{
  "ts": 1490758221221,
  "status": "error",
  "err-code": "bad-request",
  "err-msg": "invalid size, valid range: [1,2000]"
}
GET /market/history/kline?period=1day&size=200&symbol=not-exist

取引通貨ペアが存在しない場合は、下記のようなレスポンスを返します。

{
  "ts": 1490758171271,
  "status": "error",
  "err-code": "invalid-parameter",
  "err-msg": "invalid symbol"
}

URI

GET /market/history/kline

Request Params

Params Required Type Description
symbol true string 取引ペア - btceth
period true string チャートタイプ
size false int サイズ - default=150 max=2000

Response Data

Field Type Description
status string リクエスト処理結果 ["ok" , "error"]
ts number 生成応答時間点,单位:ミリ秒
tick object KLine データ
ch string チャンネル
Example: market.$symbol.kline.$period

板データの取得 (Ticker)

curl -X GET "https://api-cloud.huobi.co.jp/market/detail/merged?symbol=ethjpy"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "ch": "market.ethjpy.detail.merged",
  "ts": 1499225276950,
  "tick": {
    "id": 1499225271,
    "ts": 1499225271000,
    "close": 1885.0000,
    "open": 1960.0000,
    "high": 1985.0000,
    "low": 1856.0000,
    "amount": 81486.2926,
    "count": 42122,
    "vol": 157052744.85708200, 
    "ask": [ 
      1885.0000, 
      21.8804 
    ],
    "bid": [ 
      1884.0000,
      1.6702 
    ]
  }
}

取引ペアがないとき、下記のレスポンスになります


{
  "ts": 1490758171271,
  "status": "error",
  "err-code": "invalid-parameter",
  "err-msg": "invalid symbol"
}

このエンドポイントは集約されたチャート情報を返します。

HTTP Request

GET /market/detail/merged

Query Parameters

Parameter Required Description
symbol true トレードペア, 例えば btcjpy

Response Data

Parameter Required Type Description
status true string リクエスト处理结果, 例えば: "ok","error"
ts true number 生成応答時間点,单位:ミリ秒
tick true object チャートデータ
ch true string データの所属 channel,例えば: market.btcjpy.detail.merged

すべての取引ペアの取引相場

curl -X GET "https://api-cloud.huobi.co.jp/market/tickers"

上記のコマンドは、次のような構造のJSONを返します。

{  
    "status":"ok",
    "ts":1510885463001,
    "data":[  
        {  
            "open":0.044297,      // チャート(日) 始値
            "close":0.042178,     // チャート(日) 終値
            "low":0.040110,       // チャート(日) 最安値
            "high":0.045255,      // チャート(日) 最高値
            "amount":12880.8510,  // 24時間の約定量
            "count":12838,        // 24時間の約定数数
            "vol":563.0388715740, // 24時間の取引高
            "symbol":"ethbtc"     // 通貨ペア
        },
        {  
            "open":0.008545,
            "close":0.008656,
            "low":0.008088,
            "high":0.009388,
            "amount":88056.1860,
            "count":16077,
            "vol":771.7975953754,
            "symbol":"ltcbtc"
        }
    ]
}

このエンドポイントはすべての取引ペアの取引相場を取得できます。

HTTP Request

GET /market/tickers

Query Parameters

Parameter Required Description

Response Data

Parameter Required Type Description
status true string リクエスト处理结果, 例えば: "ok","error"
ts true number 生成応答時間点,单位:ミリ秒
data true object 取引相場のリスト

マーケットデプス (Depth)

curl -X GET "https://api-cloud.huobi.co.jp/market/depth?symbol=btcjpy&type=step1"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "ch": "market.btcjpy.depth.step1",
  "ts": 1489472598812,
  "tick": {
    "id": 1489464585407,
    "ts": 1489464585407,
    "bids": [
      [7964, 0.0678], // [価格, 注文数量]
      [7963, 0.9162],
      [7961, 0.1],
      [7960, 12.8898],
      [7958, 1.2],
      [7955, 2.1009],
      [7954, 0.4708],
      [7953, 0.0564],
      [7951, 2.8031],
      [7950, 13.7785],
      [7949, 0.125],
      [7948, 4],
      [7942, 0.4337],
      [7940, 6.1612],
      [7936, 0.02],
      [7935, 1.3575],
      [7933, 2.002],
      [7932, 1.3449],
      [7930, 10.2974],
      [7929, 3.2226]
    ],
    "asks": [
      [7979, 0.0736],
      [7980, 1.0292],
      [7981, 5.5652],
      [7986, 0.2416],
      [7990, 1.9970],
      [7995, 0.88],
      [7996, 0.0212],
      [8000, 9.2609],
      [8002, 0.02],
      [8008, 1],
      [8010, 0.8735],
      [8011, 2.36],
      [8012, 0.02],
      [8014, 0.1067],
      [8015, 12.9118],
      [8016, 2.5206],
      [8017, 0.0166],
      [8018, 1.3218],
      [8019, 0.01],
      [8020, 13.6584]
    ]
  }
}
GET /market/depth?symbol=btcjpy&type=not-exist

集約レベルがないとき、下記のレスポンスになります

{
  "ts": 1490759358099,
  "status": "error",
  "err-code": "invalid-parameter",
  "err-msg": "invalid type"
}

このエンドポイントは集約されたチャート情報を返します。

HTTP Request

GET /market/depth

Query Parameters

Parameter Required Description
symbol true 取引ペア, 例えば btcjpy
type true 集約レベル, [step0, step1, step2, step3, step4, step5]

Response Data

Parameter Required Type Description
status true string リクエスト处理结果, ["ok","error"]
ts true number 生成応答時間点,单位:ミリ秒
tick true object チャートデータ
ch true string データの所属 channel,例えば: market.btcjpy.detail.merged

取引詳細データの取得

curl -X GET "https://api-cloud.huobi.co.jp/market/trade?symbol=ethjpy"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "ch": "market.btcjpy.trade.detail",
  "ts": 1489473346905,
  "tick": {
    "id": 600848670,
    "ts": 1489464451000,
    "data": [
      {
        "id": 600848670,
        "price": 7962.62,
        "amount": 0.0122,
        "direction": "buy",
        "ts": 1489464451000
      }
    ]
  }
}

取引ペアがないとき、下記のレスポンスになります

{
  "ts": 1490759506429,
  "status": "error",
  "err-code": "invalid-parameter",
  "err-msg": "invalid symbol"
}

このエンドポイントは集約されたチャート情報を返します。

HTTP Request

GET /market/trade

Query Parameters

Parameter Required Description
symbol true トレードペア, 例えば btcjpy

Response Data

Parameter Required Type Description
status true string リクエスト处理结果, 例えば: "ok","error"
ts true number 生成応答時間点,单位:ミリ秒
tick true object 取引データ
ch true string データの所属 channel,例えば: market.btcjpy.detail.merged

取引履歴の取得

curl -X GET \
      "https://api-cloud.huobi.co.jp/market/history/trade?symbol=ethjpy"

上記のコマンドは、次のような構造のJSONを返します。

{
    "status": "ok",
    "ch": "market.ethjpy.trade.detail",
    "ts": 1502448925216,
    "data": [
        {
            "id": 31459998,
            "ts": 1502448920106,
            "data": [
                {
                    "id": 17592256642623,
                    "amount": 0.04,
                    "price": 1997,
                    "direction": "buy",
                    "ts": 1502448920106
                }
            ]
        }
    ]
}

取引ペアがないとき、下記のレスポンスになります


{
  "ts": 1490758171271,
  "status": "error",
  "err-code": "invalid-parameter",
  "err-msg": "invalid symbol"
}

このエンドポイントは集約されたチャート情報を返します。

HTTP Request

GET /market/history/trade

Query Parameters

Parameter Required Description
symbol true トレードペア, 例えば btcjpy
size false データサイズ, Range: {1, 2000}

Response Data

Parameter Required Type Description
status true string リクエスト处理结果, 例えば: "ok","error"
ts true number 生成応答時間点,单位:ミリ秒
data true object 約定記録のリスト
ch true string データの所属 channel,例えば: market.$symbol.trade.detail

エラーコード

エラーコード 説明
bad-request リクエストエラー
invalid-parameter パラメーターエラー
invalid-command 命令エラー

アカウント関連

ユーザアカウント

curl -X GET "https://api-cloud.huobi.co.jp/v1/account/accounts"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": [
    {
      "id": 100009,
      "type": "spot",
      "state": "working",
      "user-id": 1000
    }
  ]
}

このエンドポイントはユーザのアカウント情報を返します。

HTTP Request

GET /v1/account/accounts

Query Parameters

Parameter Required Description

Response Data

Parameter Required Type Description
id true long アカウントID
type true string アカウントタイプ, spot - スポットアカウント
state true string アカウントステータス, Range: {"work","lock"}
user-id true int ユーザID

残高照合

curl -X GET "https://api-cloud.huobi.co.jp/v1/account/accounts/{account-id}/balance"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": {
    "id": 100009,
    "type": "spot",
    "state": "working",
    "list": [
      {
        "currency": "jpy",
        "type": "trade",
        "balance": "500009195917.4362872650"
      },
      {
        "currency": "jpy",
        "type": "frozen",
        "balance": "328048.1199920000"
      },
      {
        "currency": "etc",
        "type": "trade",
        "balance": "499999894616.1302471000"
      },
      {
        "currency": "etc",
        "type": "frozen",
        "balance": "9786.6783000000"
      },
      {
        "currency": "eth",
        "type": "trade",
        "balance": "499999894616.1302471000"
      },
      {
        "currency": "eth",
        "type": "frozen",
        "balance": "9786.6783000000"
      }
    ],
    "user-id": 1000
  }
}

このエンドポイントはユーザの残高情報を返します。

HTTP Request

GET /v1/account/accounts/{account-id}/balance

Query Parameters

Parameter Required Description
 account-id true アカウントID

Response Data

Parameter Required Type Description
id true long アカウントID
state true string アカウントステータス, Range: {"work","lock"}
type true string アカウントタイプ, spot - スポットアカウント
list true list 残高情報

Listのデータ構造

Parameter Required Type Description
balance true long 残高
currency true string 暗号資産
type true string タイプ, trade: トレード残高,frozen: 凍結残高

取引関連

注文実行

curl -X POST \
     -H "Content-Type: application/json" \
     "https://api-cloud.huobi.co.jp/v1/order/orders/place" \
     -d \
{
   "account-id": "100009",
   "amount": "10.1",
   "price": "100.1",
   "source": "api",
   "symbol": "ethjpy",
   "type": "buy-limit"
}

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": "59378"
}

このエンドポイントは注文を出すAPIです。

HTTP Request

POST /v1/order/orders/place

Query Parameters

Parameter Required Description
account-id true アカウントID,accounts APIを使用して取得できる。取引使用するのはspotのアカウントIDになります。
amount true 取引数量
price false 指値の注文価格
source false 注文のソース, default: api
symbol true 取引通貨ペア
type true 注文タイプ
buy-market:成行買い
sell-market:成行売り
buy-limit:指値買い
sell-limit:指値売り
buy-ioc:IOC買い注文
sell-ioc:IOC売り注文
buy-limit-maker
sell-limit-maker

Response Data

Parameter Required Type Description
data false string 订单ID

未約定注文一覧

curl -X GET \
    "https://api-cloud.huobi.co.jp/v1/order/openOrders" 

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": [
    {
      "id": 5454937,
      "symbol": "ethjpy",
      "account-id": 30925,
      "amount": "1.000000000000000000",
      "price": "0.453000000000000000",
      "created-at": 1530604762277,
      "type": "sell-limit",
      "filled-amount": "0.0",
      "filled-cash-amount": "0.0",
      "filled-fees": "0.0",
      "source": "web",
      "state": "submitted"
    }
  ]
}

このエンドポイントは未約定注文一覧を返します。

HTTP Request

GET /v1/order/openOrders

Query Parameters

Parameter Required Description
account-id true アカウントID
symbol true 取引通貨ペア
side false 取引方向, Range: {'buy', 'sell'}
size false 必要な記録数

Response Data

Parameter Required Type Description
id true long 注文番号
symbol true string 取引通貨ペア
price true string 注文価格
created-at true int 注文時間(ミリ秒
type true string 注文タイプ, Range: {buy-market, sell-market, buy-limit, sell-limit, buy-ioc, sell-ioc}
filled-amount true string 注文時間(ミリ秒)
部分取引注文でない場合、このフィールドは0 になります
filled-cash-amount true string 約定された部品の注文価格(=約定された注文の数量x注文の価格)
部分取引注文でない場合、このフィールドは0になります
filled-fees true string 取引の一部における手数料
部分取引注文でない場合、このフィールドは0 になります
source true string 注文ソース, Range: {sys, web, api, app}
state true string この注文ステータス, Range: {submitted(約定済), partial-filled(部分約定), cancelling(キャンセル)}

注文キャンセル

curl -X POST \
     -H "Content-Type: application/json" \
     "https://api-cloud.huobi.co.jp/v1/order/orders/{order-id}/submitcancel"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": 59378
}

本APIはキャンセルリクエストを送信します。実際のキャンセル結果は注文詳細APIにてご確認してください。

HTTP Request

POST /v1/order/orders/{order-id}/submitcancel

Query Parameters

Parameter Required Description
order-id true 注文ID

Response Data

Parameter Required Type Description
status true string リクエストの状態
data false string 注文ID

注文の一括キャンセル

curl -X POST \
    -H "Content-Type: application/json" \
    "https://api-cloud.huobi.co.jp/v1/order/orders/batchcancel"
{
  "order-ids": [
    "1",
    "2",
    "3"
  ]
}

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": {
    "success": [
      "1",
      "2",
      "3"
    ]
  }
}

一部失敗する場合、下記のようなレスポンスが返します。

{
  "status": "ok",
  "data": {
    "success": [
      "1",
      "3"
    ],
    "failed": [
      {
        "err-msg": " Invalid record",
        "order-id": "2",
        "err-code": "base-record-invalid"
      }
    ]
  }
}

本APIは注文の一括キャンセルを実行します。

HTTP Request

POST /v1/order/orders/batchcancel

Query Parameters

Parameter Required Description

Response Data

Parameter Required Type Description
status true string リクエストの状態
data true string キャンセルの結果

条件付き注文の一括キャンセル

curl -X POST \
     -H "Content-Type: application/json" \
     "https://api-cloud.huobi.co.jp/v1/order/orders/batchCancelOpenOrders"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": {
    "success-count": 2,
    "failed-count": 0,
    "next-id": 5454600
  }
}

本APIは条件付き注文を一括でキャンセルする。

HTTP Request

POST /v1/order/orders/batchCancelOpenOrders

Query Parameters

Parameter Required Description
account-id true アカウントID
symbol false 取引通貨ペア, 単一トレードペアの文字列は、デフォルトでは条件が満たされていない全ての注文を返します
side false 取引方向 , Range: {“buy”,“sell”}, デフォルトでは、条件が満たされていない全ての注文が返されます。
size false 必要な記録数, default: 100, Range: {0,100}

Response Data

Parameter Required Type Description
success-count true int キャンセル注文成功数
failed-count true int キャンセル注文失敗数
next-id true long キャンセル基準を満たす次の注文番号

注文の詳細の照会

curl -X GET \
    "https://api-cloud.huobi.co.jp/v1/order/orders/{order-id}" 

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": {
    "id": 59378,
    "symbol": "ethjpy",
    "account-id": 100009,
    "amount": "10.1000000000",
    "price": "100.1000000000",
    "created-at": 1494901162595,
    "type": "buy-limit",
    "field-amount": "10.1000000000",
    "field-cash-amount": "1011.0100000000",
    "field-fees": "0.0202000000",
    "finished-at": 1494901400468,
    "user-id": 1000,
    "source": "api",
    "state": "filled",
    "canceled-at": 0,
    "exchange": "xxx",
    "batch": ""
  }
}

このエンドポイントは注文の詳細情報を返します。

HTTP Request

GET /v1/order/orders/{order-id}

Query Parameters

Parameter Required Description
order-id true 注文ID

Response Data

Parameter Required Type Description
account-id true long アカウント ID
amount true string 注文数量
canceled-at false long 注文キャンセル時間
created-at true long 注文作成時間
field-amount true string 約定数量
field-cash-amount true string 約定総額
field-fees true string 約定手数料
finished-at false long 注文の終了時間は約定した時間ではなく、キャンセル済の時も含みます
id true long 注文ID
price true string 注文価格
source true string 注文ソース, default: api
state true string 注文ステータス, Range: {"submitting" // 送信中, "submitted" // 送信済, "partial-filled" // 部分約定, "partial-canceled" //部分約定キャンセル, "filled" //完全約定, canceled キャンセル済み
symbol true string 取引通貨ペア
type true string 注文種類, Range: {"buy-market" // 成り行き買い, "sell-market" //成り行き売り, "buy-limit" //指値買い, "sell-limit" //指値売り, "buy-ioc" //IOC買い注文, "sell-ioc" //IOC売り注文

注文の約定詳細の照会

curl -X GET \
  "https://api-cloud.huobi.co.jp/v1/order/orders/{order-id}/matchresults" 

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": [
    {
      "id": 59378,
      "symbol": "ethjpy",
      "account-id": 100009,
      "amount": "10.1000000000",
      "price": "100.1000000000",
      "created-at": 1494901162595,
      "type": "buy-limit",
      "field-amount": "10.1000000000",
      "field-cash-amount": "1011.0100000000",
      "field-fees": "0.0202000000",
      "finished-at": 1494901400468,
      "user-id": 1000,
      "source": "api",
      "state": "filled",
      "canceled-at": 0,
      "exchange": "xxx",
      "batch": ""
    }
  ]
}

このエンドポイントは注文の約定詳細情報を返します。

HTTP Request

GET /v1/order/orders/{order-id}/matchresults

Query Parameters

Parameter Required Description
order-id true パスに記載された注文ID

Response Data

Parameter Required Type Description
account-id true long アカウント ID
amount true string 注文数量
canceled-at false long キャンセル申請を受ける時間
created-at true long 注文作成時間
field-amount true string 約定数量
field-cash-amount true string 約定総金額
field-fees true string 約定済み手数料
finished-at false long 最終的な約定時間
id true long 注文ID
price true string 注文価格
source true string 注文ソース, default: api
state true string 注文ステータス
symbol true string 取引通貨ペア
type true string 注文タイプ

約定履歴の照会

curl -X GET \
  "https://api-cloud.huobi.co.jp/v1/order/orders" 

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": [
    {
      "id": 59378,
      "symbol": "ethusdt",
      "account-id": 100009,
      "amount": "10.1000000000",
      "price": "100.1000000000",
      "created-at": 1494901162595,
      "type": "buy-limit",
      "field-amount": "10.1000000000",
      "field-cash-amount": "1011.0100000000",
      "field-fees": "0.0202000000",
      "finished-at": 1494901400468,
      "user-id": 1000,
      "source": "api",
      "state": "filled",
      "canceled-at": 0,
      "exchange": "xxx",
      "batch": ""
    }
  ]
}

このエンドポイントは約定履歴を返します。

HTTP Request

GET /v1/order/orders

Query Parameters

Parameter Required Description
symbol true 取引ペア, [btcjpy, bchbtc,...]
types false オーダータイプの組み合わせ照会,使用','分割, [buy-market:成り行き買い, sell-market:成り行き売り, buy-limit:指値買い, sell-limit:指値売り, buy-ioc:IOC買い注文, sell-ioc:IOC売り注文]
start-date false 開始日の照会, 日時フォマットyyyy-mm-dd, default:-61 days, range:[-61day, now]
end-date false 終了日の照会, 日時フォマットyyyy-mm-dd, default:Now, range:[start-date, now]
states true オーダーのタイプの組み合わせ照会,区切り記号は','を使用。[submitted 提出済み, partial-filled 部分約定, partial-canceled 部分約定キャンセル, filled 完全約定, canceled キャンセル済み]
from false 開始照会ID, 注文約定記録ID(最大值)
direct false 照会方向,約定IDの新着順 default: next, Range: {"prev", "next"}
size false 大小記録の照会, default:100, max: 100

Response Data

Parameter Required Type Description
created-at true long 約定時間
filled-amount true string 約定数量
filled-fees true string 約定手数料
id true long 約定注文記録ID
match-id true long マッチングID
order-id true long 注文 ID
price true string 約定価格
source true string 注文ソース, default: api
symbol true string 取引通貨ペア
type true string 注文タイプ

現在の約定、約定履歴の照会

curl -X GET \
  "https://api-cloud.huobi.co.jp/v1/order/matchresults" 

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": [
    {
      "id": 29555,
      "order-id": 59378,
      "match-id": 59335,
      "symbol": "ethjpy",
      "type": "buy-limit",
      "source": "api",
      "price": "100.1000000000",
      "filled-amount": "0.9845000000",
      "filled-fees": "0.0019690000",
      "created-at": 1494901400487
    }
  ]
}

このエンドポイントは約定履歴を返します。

HTTP Request

GET /v1/order/matchresults

Query Parameters

Parameter Required Description
symbol true 取引通貨ペア
types false オーダータイプの組み合わせ照会,複数可, カンマ区切り
start-date false 開始日の照会, 日時フォマットyyyy-mm-dd, Range: [-61日, Now]
end-date false 終了日の照会, 日時フォマットyyyy-mm-dd
states true オーダーのタイプの組み合わせ照会,区切り記号は','を使用。[submitted 提出済み, partial-filled 部分約定, partial-canceled 部分約定キャンセル, filled 完全約定, canceled キャンセル済み]
from false 開始ID
direct false 照会方向,約定IDの新着順 default: next, Range: {"prev", "next"}
size false 大小記録の照会, Range: [0, 100]

Response Data

Parameter Required Type Description
account-id true long アカウント ID
amount true string 注文数量
canceled-at false long キャンセル申請を受ける時間
created-at true long 注文作成時間
field-amount true string 約定数量
field-cash-amount true string 約定総金額
field-fees true string 約定済み手数料
finished-at false long 最終的な約定時間
id true long 注文ID
price true string 注文価格
source true string 注文ソース, api
state true string 注文ステータス, [submitting , submitted 提出済, partial-filled 部分約定, partial-canceled 部分約定キャンセル, filled 完全約定, canceled キャンセル済]
symbol true string 取引ペア, [btcjpy, bchbtc,...]
type true string 注文タイプ, [submit-cancel:キャンセル申請済 ,buy-market:成り行き買い, sell-market:成り行き売り, buy-limit:指値買い, sell-limit:指値売り, buy-ioc:IOC買い注文, sell-ioc:IOC売り注文]

エラーコード一覧

エラーコード 説明
base-symbol-error トレードペアが存在していない
base-currency-error 銘柄が存在していない
base-date-error 日時フォマットのエラー
account-transfer-balance-insufficient-error 残高不足により凍結できません
bad-argument パラメーターの期限切れ
api-signature-not-valid API署名エラー
gateway-internal-error システムビジー,少し時間をあけて再度お試しください
security-require-assets-password 資金パスワードの入力が必要
audit-failed 注文失敗
ad-ethereum-address 有効なETHのアドレスを入力してください
order-accountbalance-error アカウント残高不足
order-limitorder-price-error 指値の注文価格が制限を超えている
order-limitorder-amount-error 指値の注文量が制限を超えている
order-orderprice-precision-error 注文価格が制限精度を超えている
order-orderamount-precision-error 注文量が制限精度を超えている
order-marketorder-amount-error 注文量が制限を超えている
order-queryorder-invalid この注文を見つけることができない
order-orderstate-error 注文ステータスエラー
order-datelimit-error 照会時間制限を超えた
order-update-error 注文の更新失敗

ウォレット関連

ステータス一覧

暗号資産出金ステータスの定義:

ステータス 説明
submitted 提出済
reexamine 審査中
canceled キャンセル済
pass 承認
reject 拒否
pre-transfer 处理中
wallet-transfer 送金済
wallet-reject ウオレットの拒否
confirmed ブロックチェーン上で承認済
confirm-error ブロックチェーン上で承認エラー
repealed キャンセル済

暗号資産入金ステータスの定義:

ステータス 説明
unknown 不明
confirming 確認中
confirmed 確認済み
safe 完了
orphan 独立

暗号資産の出金申請

curl -X POST \
     -H "Content-Type: application/json" \
     "https://api-cloud.huobi.co.jp/v1/dw/withdraw/api/create" \
     -d \
{
  "address": "0xde709f2102306220921060314715629080e2fb77",
  "amount": "0.05",
  "currency": "eth",
  "fee": "0.01"
}

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": 700
}

本APIは暗号資産の出金申請を送信する。

HTTP Request

POST /v1/dw/withdraw/api/create

Query Parameters

Parameter Required Description
address true string
amount true string
currency true string
fee true string
addr-tag false string

Response Data

Parameter Required Type Description
data false long 出金レコードID

暗号資産の出金のキャンセル

curl -X POST \
     -H "Content-Type: application/json" \
     "https://api-cloud.huobi.co.jp/v1/dw/withdraw-virtual/{withdraw-id}/cancel"

上記のコマンドは、次のような構造のJSONを返します。

{
  "status": "ok",
  "data": 700
}

本APIは暗号資産出金のキャンセルリクエストを送信する。

HTTP Request

POST /v1/dw/withdraw-virtual/{withdraw-id}/cancel

Query Parameters

Parameter Required Description
withdraw-id true 出金ID,pathの中に記入

Response Data

Parameter Required Type Description
data false string 出金レコードID

入出金記録

curl -X GET \
     "https://api-cloud.huobi.co.jp/v1/query/deposit-withdraw" 

上記のコマンドは、次のような構造のJSONを返します。

{
  "data":
    [
      {
        "id": 1171,
        "type": "deposit",
        "currency": "xrp",
        "tx-hash": "ed03094b84eafbe4bc16e7ef766ee959885ee5bcb265872baaa9c64e1cf86c2b",
        "amount": 7.457467,
        "address": "rae93V8d2mdoUQHwBDBdM4NHCMehRJAsbm",
        "address-tag": "100040",
        "fee": 0,
        "state": "safe",
        "created-at": 1510912472199,
        "updated-at": 1511145876575
      }
    ]
}

このエンドポイントは入出金記録を返します。

HTTP Request

GET /v1/query/deposit-withdraw?currency=xrp&type=deposit&from=5&size=12

Query Parameters

Parameter Required Description
currency true 銘柄
type true 'deposit' or 'withdraw'
from false 照会開始 ID
size false 大小記録の照会

Response Data

Parameter Required Type Description
id true long
type true long タイプ 'deposit' 'withdraw'
currency true string 銘柄
tx-hash true string トレードハッシュ
amount true long 個数
address true string アドレス
address-tag true string アドレスラベル
fee true long 手数料
state true string ステータス, ステータスは下の表を参考に
created-at true long 開始時間
updated-at true long 最後に更新した時間

販売所関連

販売所のAPIを使って、下記のことができます

  1. 販売所各通貨のリアルタイム価格の取得
  2. 販売所の約定履歴の取得
  3. ID指定で暗号資産の売買
  4. ユーザの販売履歴の取得
  5. 販売所のメンテナンス時間の取得

データ購読

$ wscat -P -c wss://api-cloud.huobi.co.jp/retail/ws
Connected (press CTRL+C to quit)

Request

接続後、JSON形式でコマンド発行できます。

$ wscat -P -c wss://api-cloud.huobi.co.jp/retail/ws
Connected (press CTRL+C to quit)

{"action":1,"topic":1} // 各通貨価格を購読
{"action":2,"topic":1} // 価格購読を解除
{"action":1,"topic":2} // 約定履歴を購読
{"action":2,"topic":2} // 約定履歴の購読を解除
{"action":4,"ts":1571388770} // Pingコマンド発行
Field Required Type Description
ts false long timestamp, 10桁
action true int アクション, 1: 購読, 2: 購読解除, 4: ping, 5: pong
topic false int トピック, 1: 販売所価格, 2: 販売所約定履歴

Response

Response Data

Field Type Description
topic int リクエストのトピック値
action int リクエストのアクション値
ts int Timestamp (秒)
offer list Offer Dataに参照
trade list Trade Dataに参照

Offer Data

購読後、自動的に下記のデータがプッシュされます。

// Offer データ
{
  "code": 200,
  "data": {
    "action": 1,
    "offer": [
      {
        "buy_price": "474141.06666666",
        "buy_ratio": "0.11",
        "id": "26cbe6a90df849bca08c32ba53904bb7",
        "market_price": "431035.68333333",
        "market_ratio": "0.11",
        "sell_price": "387930.30000000",
        "sell_ratio": "0.11",
        "symbol": "BTCJPY",
        "buy_min_amount": "1",
        "buy_max_amount": "1000",
        "sell_min_amount": "1",
        "sell_max_amount": "1000"
      },
      {
        "buy_price": "27.51",
        "buy_ratio": "-14.59",
        "id": "ec02bbe57f414f0593ff00c21e6b008e",
        "market_price": "25.00",
        "market_ratio": "-14.56",
        "sell_price": "22.48",
        "sell_ratio": "-14.59",
        "symbol": "XRPJPY",
        "buy_min_amount": "1",
        "buy_max_amount": "1000",
        "sell_min_amount": "1",
        "sell_max_amount": "1000"
      }
    ],
    "topic": 1,
    "ts": 1571388770
  },
  "success": true
}
Field Type Description
id string 一意識別子
symbol string 取引通貨
sell_price string 売値
buy_price string 買値
sell_ratio string 売値の騰落率
buy_ratio string 買値の騰落率
market_price string 平均価格
market_ratio string 騰落率
sell_min_amount string 最小売り数量
sell_max_amount string 最大売り数量
buy_min_amount string 最小買い数量
buy_max_amount string 最大買い数量

Trade Data

// 約定履歴データ
{
  "code": 200,
  "success": true,
  "data": {
    "topic": 2,
    "action": 1,
    "ts": 1553480751,
    "orders": [
      {
        "gmt_trade": "150004343554",
        "symbol": "btcjpy",
        "type": 1,
        "price": "15.21",
        "amount": "3.56",
        "cash_amount": "54.1476"
      },
      {
        "gmt_trade": "150004343554",
        "symbol": "ethjpy",
        "type": 1,
        "price": "15.21",
        "amount": "3.56",
        "cash_amount": "54.1476"
      }
    ]
  }
}
Field Type Description
gmt_trade long 取引時刻(timestamp)
symbol string 取引通貨
type int 取引方向: 1: 買う,2: 売る
price string 価格
amount string 数量
cash_amount string 金額

販売所で注文する

curl -X POST \
     -H "Content-Type: application/json" \
     "https://api-cloud.huobi.co.jp/v1/retail/order/place?AccessKeyId={accessKey}&SignatureVersion=2&Signature={計算された署名}&SignatureMethod=HmacSHA256&Timestamp=2019-12-23T03%3A56%3A59" \
     -d \
{
    "id":"791025bfdc3b45459b96b5d776ede78f",
    "symbol": "btcjpy",
    "type": 1,
    "amount": "10.12",
    "price": "34.23",
    "source": 1
}

上記のコマンドは、次のような構造のJSONを返します。

{
    "code": 200,
    "data": 123456978,
    "message": null,
    "success": true
}

このAPIは、販売所で指定された暗号資産を売買できます。

HTTP Request

POST /v1/retail/order/place

Query Parameters

Parameter Required Type Description
id true string websocketから取得されたリアルタイム価格のID, 32桁
symbol true string 取引ペア
type true int 注文方向, 1:購入, 2:売る
amount false double 取引量, decimal(36,18)
price true string 取引価格, decimal(36,18)
source true string 経路, 4:api固定
client_order_id false string クライアントカスタマイズID
cash_amount false double 現金金額, decimal(36,18)
order-instruction true int 注文種類, 1: FOK

Response Data

Parameter Type Description
code int Http Status Code
data long 注文ID
message string メッセージ
success bool オペレーション成功か

販売所注文履歴

curl -X GET "https://api-cloud.huobi.co.jp/v1/retail/order/list?AccessKeyId={accessKey}&Signature={計算された署名}&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2019-12-23T11%3A44%3A13&direct=1"

上記のコマンドは、次のような構造のJSONを返します。

{
    "code": 200,
    "data": [
        {
            "amount": "1",
            "base_currency": "BTC",
            "cash_amount": "473113.85",
            "gmt_traded": 1556078181000,
            "id": 1234567951,
            "order_type": 1,
            "price": "473113.85",
            "state": 3,
            "symbol": "BTCJPY",
            "symbol_name": "BTC/JPY",
        },
        {
            "amount": "1100",
            "base_currency": "BTC",
            "cash_amount": "425967300",
            "gmt_traded": 1555668195000,
            "id": 1234567942,
            "order_type": 2,
            "price": "387243",
            "state": 4,
            "symbol": "BTCJPY",
            "symbol_name": "BTC/JPY"
        }
    ],
    "message": null,
    "success": true
}

このAPIは、注文履歴を表示することができます。

HTTP Request

GET /v1/retail/order/list

Query Parameters

Parameter Required Type Description
id false long 注文番号
limit false int 表示件数, default=10, max: 100
from false string 開始ID, 1ページ以後必要
direct true int 注文方向, 1:next, 2:previous
base_currency false string 基礎通貨
quote_currency false string 通貨単位
symbol false string 取引ペア
order_type false string 取引タイプ, 1:buy, 2:sell
state true int 成約状態, 1: 進行中, 2: 完全約定, 3: 未成約

Response Data

Parameter Type Description
code int Http Status Code
data list 注文履歴の内容, Data構造に参照
message string メッセージ
success bool 成功したか

DATA構造

Parameter Type Description
id long 注文番号
gmt_traded long 成約時間, timestamp
symbol_name string 取引通貨名
symbol string 取引通貨記号
base_currency string 基礎通貨
order_type int 注文方向, 1: buy, 2: sell
price long 価格
amount long 数量
cash_amount long 金額
state long 注文状態, 1: 進行中, 2: 完全成約, 3: 部分成約, 4: 未成約
client_order_id long クライアント側カスタマイズID
order_source long 経路, 1:web, 2:app, 3:mobile, 4:api
order_instruction long 成約ロジック, 1: FOK

販売所メンテナンス時間

curl -X GET "https://api-cloud.huobi.co.jp/v1/retail/maintain/time" 

上記のコマンドは、次のような構造のJSONを返します。

{
    "code": 200,
    "data": {
        "start_time": "16:30:00",
        "end_time": "17:00:00",
        "ts": 150004343554,
        "state": 0
    },
    "message": null,
    "success": true
}

このAPIは、メンテナンス時刻を表示することができます。

HTTP Request

GET /v1/retail/maintain/time

Query Parameters

Response Data

Parameter Type Description
code int Http Status Code
data data データクラスを参照
message string メッセージ
success bool 成功したか

・データクラス

Parameter Type Description
start_time String メンテナンス開始時間
end_time String メンテナンス終了時間
ts long Timestamp(UTC)
state int メンテナンスステータス, 0: 正常,1: メンテナンス中

Websocket共通

概要

WebSocket規格とはTCPに基づいた新しいコンピューターネットワーク用の通信規格である。1つのtcpコネクションでのクライアントとサーバ間の双方向通信を実装しています。サーバ側からクライアントにデータをプッシュ配信できるため、頻繁な認証等のオーバーヘッドを削減できる。主なメリットが2つ挙げられます。

以上のことからWebSocketプロトコルは、暗号資産相場やその取引のようなリアルタイム性が求められる通信の要件を満たすには最適なインターフェースです。

リクエストとサブスクリプションについて

1. アドレス

2. データ圧縮

3. WebSocketライブラリ

4. ハートビート

WebSocket Server がpingを送信する

{
    "ping": 18212558000
}

WebSocket Client がpongを返信する

{
    "pong": 18212558000
}

注:"pong"の応答値は"ping" の受信時の値と同一の値となります。

WebSocket Client がpingを送信する

{"ping": 18212553000}

注:必ずLong型の"ping"を送信しなければなりません。そうしなければ、誤ったデータが返信されます

{
  "ts": 1492420473027,
  "status": "error",
  "err-code": "bad-request",
  "err-msg": "invalid ping"
}

WebSocket Server がpongを返信する

{"pong": 18212553000}

注:返信される"pong" の応答値は受信した"ping"` の値と同一の値となります。

エラー時の返信フォーマット

{
  "id": "id generate by client",
  "status": "error",
  "err-code": "err-code",
  "err-msg": "err-message",
  "ts": 1487152091345
}

注:tsは誤ったデータより生成されたタイムスタンプになります。単位:ミリ秒

WebSocket Client と WebSocket Server との間でコネクション確立後、WebSocket Server は 5s(変更の可能性がある)ごとに WebSocket Client にpingを送信し、WebSocket Client より2回連続Pingへの応答がなければ、WebSocket Server はコネクションを切断します。WebSocket Clientが直近2回のPingのうちの1つのpingに応答すれば、WebSocket Serverはコネクションを維持します。

注:WebSocket Clientが直近2回のmessageのうちの1つのpingを送信すれば、WebSocket Serverはコネクションを維持します。

注:2回連続WebSocket Client からの応答がなければ、WebSocket Server はコネクションを切断します。

5. Topicのフォーマット

topic タイプ topic 文法 sub/req 説明
KLine market.$symbol.kline.$period sub/req チャート データ 单位時間内の始値、終値、最高値、最安値、取引量、取引高、約定回数等のデータを含む $period 選択可能な値:{ 1min, 5min, 15min, 30min, 60min, 4hour,1day, 1mon, 1week, 1year }
Market Depth market.$symbol.depth.$type sub/req 板の精度、異なる stepで買いⅠ、買いⅡ、買いⅢ等及び売りⅠ、売りⅡ、売りⅢ等の価格を纏める$type 選択できるstep:{ step0, step1, step2, step3, step4, step5, percent10 } (精度0-5);step0の場合,異なる価格の注文を纏めない
Trade Detail market.$symbol.trade.detail sub/req 取引履歴、約定価格、取引量、買/売等の情報を含む
Market Detail market.$symbol.detail sub/req 直近24時間の取引量、取引高、始値、終値、最高値、最安値、約定回数等
Market Tickers market.tickers sub 公開したすべての通貨ペアの1日のチャート、直近24時間の取引量等の情報

6. データリクエスト(req)

データリクエストのフォーマット

{
  "req": "topic to req",
  "id": "id generate by client"
}

データリクエストの正しい例

{
  "req": "market.ethbtc.kline.1min",
  "id": "id10"
}

返信データ例

{
  "status": "ok",
  "rep": "market.btcusdt.kline.1min",
  "tick": [
    {
      "amount": 1.6206,
      "count":  3,
      "id":     1494465840,
      "open":   9887.00,
      "close":  9885.00,
      "low":    9885.00,
      "high":   9887.00,
      "vol":    16021.632026
    },
    {
      "amount": 2.2124,
      "count":  6,
      "id":     1494465900,
      "open":   9885.00,
      "close":  9880.00,
      "low":    9880.00,
      "high":   9885.00,
      "vol":    21859.023500
    }
  ]
}

データリクエストのエラー例

{
  "req": "market.invalidsymbo.kline.1min",
  "id": "id10"
}

エラーメッセージ応答例

{
  "status": "error",
  "id": "id10",
  "err-code": "bad-request",
  "err-msg": "invalid topic market.invalidsymbol.trade.detail",
  "ts": 1494483996521
}

7.データのサブスクリプション(sub)

  • データのサブスクリプションのフォーマット

WebSocket API とのコネクションを行った後、 Serverに以下のフォーマットのデータを送信することにより、データを購読する

{
  "id": "id generate by client",
  "sub": "topic to sub",
  "freq-ms": 1000
}

注:idのパラメータは選択可能です 注:freq-msのパラメータは選択可能であり、選択値は{ 1000, 2000, 3000, 4000, 5000 }になります。freq-ms をアップロードしない限り、デフォルト値を0はとなり、データが更新された際、直ちにClientにプッシュ配信されることになります。 Server のプッシュ配信の頻度はfreq-msにて調整できます。

サブスクリプションの正しい例

{
  "sub": "market.btcusdt.kline.1min",
  "id": "id1"
}

"sub"の値はtopicであり、「5. Topicのフォーマット」のtopic のフォーマット参照

  • サブスクリプション完了後、データを返信された例
{
  "id": "id1",
  "status": "ok",
  "subbed": "market.btcusdt.kline.1min",
  "ts": 1489474081631
}

その後、 KLineが更新されるごとに、clientはデータを受信する

{
  "ch": "market.btcusdt.kline.1min",
  "ts": 1489474082831,
  "tick": {
    "id": 1489464480,
    "amount": 0.0,
    "count": 0,
    "open": 7962.62,
    "close": 7962.62,
    "low": 7962.62,
    "high": 7962.62,
    "vol": 0.0
  }
}

注: topic のサブスクリプション完了後、 topicのデータが更新された際、 Server は一定の頻度でtopicの更新データを Clientにプッシュ配信する

  • tick の説明

{
  "tick": {
    "id": "チャートid",
    "amount": "取引量",
    "count": "約定回数",
    "open": "始値",
    "close": "終値 最後の一本のKラインは最新の約定価格である",
    "low": "最安値",
    "high": "最高値",
    "vol": "取引高, 取引価格*約定の量=取引量合計"
  }
}
  • 誤ったサブスクリプション(誤った symbol)
{
  "sub": "market.invalidsymbol.kline.1min",
  "id": "id2"
}

サブスクリプションが失敗した場合、データが返送された例:

{
  "id": "id2",
  "status": "error",
  "err-code": "bad-request",
  "err-msg": "invalid topic market.invalidsymbol.kline.1min",
  "ts": 1494301904959
}
  • 誤ったサブスクリプション(間違った topic):
{
  "sub": "market.btcusdt.kline.3min",
  "id": "id3"
}

サブスクリプションが失敗した場合、データが返信された例:

{
  "id": "id3",
  "status": "error",
  "err-code": "bad-request",
  "err-msg": "invalid topic market.btcusdt.kline.3min",
  "ts": 1494310283622
}

8.サブスクライブの停止(unsub)

  • サブスクライブの停止フォーマット

サブスクライブ停止のフォーマットについては以下のとおりとなります。

{
  "unsub": "topic to unsub",
  "id": "id generate by client"
}

サブスクライブ停止の正しい例。

{
  "unsub": "market.btcusdt.trade.detail",
  "id": "id4"
}

サブスクライブ停止完了後、データが返信された例。

{
  "id": "id4",
  "status": "ok",
  "unsubbed": "market.btcusdt.trade.detail",
  "ts": 1494326028889
}

サブスクライブ停止の誤った例(未購読のtopicを中止する)

{
  "unsub": "market.btcusdt.trade.detail",
  "id": "id5"
}

誤ったデータが返信された例

{
  "id": "id5",
  "status": "error",
  "err-code": "bad-request",
  "err-msg": "unsub with not subbed topic market.btcusdt.trade.detail",
  "ts": 1494326217428
}
  • サブスクライブ停止の誤った例(存在しないtopicを中止する)
{
  "unsub": "not-exists-topic",
  "id": "id5"
}

誤ったデータが返信された例

{
  "id": "id5",
  "status": "error",
  "err-code": "bad-request",
  "err-msg": "unsub with not subbed topic not-exists-topic",
  "ts": 1494326318809
}

WebSocket Client はデータのサブスクライブ後、そのデータのサブスクライブの停止が可能です。停止後は、WebSocket Serverは 当該topicのデータをプッシュしなくなります。

チャンネルからのデータ受信を停止するには、「unsub」メッセージを送信する必要があります。

Websocketリファレンス

ローソク足 データ

コマンド送信

{
  "sub": "market.symbol.kline.period",
  "id": "id generate by client"
}
{
  "sub": "market.ethbtc.kline.1min",
  "id": "id1"
}

購読結果レスポンス

{
  "id": "id1",
  "status": "ok",
  "subbed": "market.ethbtc.kline.1min",
  "ts": 1489474081631
}

データ受信

{
  "ch": "market.ethbtc.kline.1min",
  "ts": 1489474082831,
  "tick": {
    "id": 1489464480,
    "amount": 0.0,
    "count": 0,
    "open": 7962.62,
    "close": 7962.62,
    "low": 7962.62,
    "high": 7962.62,
    "vol": 0.0
  }
}

market.$symbol$.kline.$period$

key necessary type description value
symbol true string Pairs ethbtc, ltcbtc...
period true string KLine period 1min, 5min, 15min, 30min, 60min, 1day, 1mon, 1week, 1year

KLine Chatデータ

コマンド送信

{
  "req": "market.ethbtc.kline.1min",
  "id": "id10"
}

データ受信

{
  "rep": "market.ethbtc.kline.1min",
  "status": "ok",
  "id": "id10",
  "tick": [
    {
      "amount": 17.4805,
      "count":  27,
      "id":     1494478080,
      "open":   10050.00,
      "close":  10058.00,
      "low":    10050.00,
      "high":   10058.00,
      "vol":    175798.757708
    },
    {
      "amount": 15.7389,
      "count":  28,
      "id":     1494478140,
      "open":   10058.00,
      "close":  10060.00,
      "low":    10056.00,
      "high":   10065.00,
      "vol":    158331.348600
    },
    // more KLine data here
  ]
}

market.$symbol$.kline.$period$

usage

key description
req market.$symbol.kline.$period
id クライアントによって生成されたID
from 任意, 範囲: [t1..t5]
to 任意, 範囲: [t2..t5]

マーケットデプスを購読する

コマンド送信

{
  "sub": "market.ethbtc.depth.step0",
  "id": "id1"
}

購読結果レスポンス

{
  "id": "id1",
  "status": "ok",
  "subbed": "market.ethbtc.depth.step0",
  "ts": 1489474081631
}

データ受信

{
  "ch": "market.ethbtc.depth.step0",
  "ts": 1489474082831,
  "data": {
    "bids": [
      [9999.3900,0.0098], // [price, amount]
      [9992.5947,0.0560],
    ],
    "asks": [
      [10010.9800,0.0099],
      [10011.3900,2.0000]
      //more data here
    ]
  }
}

market.$symbol$.depth.$type$

usage

key description
req market.$symbol.depth.$period
id クライアントによって生成されたID

変数の説明

key necessary type description value
symbol true string Pairs ethbtc, ltcbtc, etcbtc, bccbtc...
type true string Market depth step0, step1, step2, step3, step4, step5

マーケットデプスのリクエスト

コマンド送信

{
  "req": "market.ethbtc.depth.step0",
  "id": "id10"
}

データ受信

{
  "rep": "market.ethbtc.depth.step0",
  "status": "ok",
  "id": "id10",
  "data": {
    "bids": [
    [9999.3900,0.0098], // [price, amount]
    [9992.5947,0.0560],
    ],
    "asks": [
    [10010.9800,0.0099],
    [10011.3900,2.0000]
    ]
  }
}

market.$symbol$.depth.$type$

key description
req market.$symbol.depth.$type"
id クライアントによって生成されたID

取引の詳細

コマンド送信

{
  "sub": "market.ethbtc.trade.detail",
  "id": "id1"
}

購読結果レスポンス

{
  "id": "id1",
  "status": "ok",
  "subbed": "market.ethbtc.trade.detail",
  "ts": 1489474081631
}

デーた受信

{
  "ch": "market.ethbtc.trade.detail",
  "ts": 1489474082831,
  "data": [
            {
                "amount": 0.0099,
                "ts": 1533265950234,
                "id": 146507451359183894799,
                "price": 401.74,
                "direction": "buy"
            },
            // more Trade Detail data here
        ]
}

market.$symbol$.trade.detail

key description
req market.$symbol.trade.detail"
id クライアントによって生成されたID

取引詳細のリクエスト

リクエスト送信

{
  "req": "market.ethbtc.trade.detail",
  "id": "id11"
}

データ受信

{
  "rep": "market.ethbtc.trade.detail",
  "status": "ok",
  "id": "id11",
  "data": [
    {
      "id":        601595424,
      "price":     10195.64,
      "time":      1494495766,
      "amount":    0.2943,
      "direction": "buy",
      "tradeId":   601595424,
      "ts":        1494495766000
    },
    {
      "id":        601595423,
      "price":     10195.64,
      "time":      1494495711,
      "amount":    0.2430,
      "direction": "buy",
      "tradeId":   601595423,
      "ts":        1494495711000
    },
    // more Trade Detail data here
  ]
}

market.$symbol$.trade.detail

key description
req market.$symbol.trade.detail"
id クライアントによって生成されたID

マーケット詳細のリクエスト

リクエスト送信

{
  "req": "market.ethbtc.detail",
  "id": "id12"
}

データ受信

{
  "rep": "market.ethbtc.detail",
  "status": "ok",
  "id": "id12",
  "tick": {
    "amount": 12224.2922,
    "open":   9790.52,
    "close":  10195.00,
    "high":   10300.00,
    "ts":     1494496390000,
    "id":     1494496390,
    "count":  15195,
    "low":    9657.00,
    "vol":    121906001.754751
  }
}

market.$symbol$.detail

key description
req market.$symbol.detail"
id クライアントによって生成されたID