Zaif Exchange 取引API

取引APIは、Zaif Exchange上で取引を行うためのAPIです。取引APIにはAPI Keyの取得が必要です。

公開情報の取得用APIはこちらです。

認証

取引APIを利用するには、アカウント情報のページからAPI Keyの発行をおこなってください。
取得したAPI Keyを利用して、下記のようにHTTPヘッダを設定し、認証情報を送信します。
  • Key – APIキー。 例: 490f983a-5fab-49b2-b789-9d1f130874d3
  • Sign – POSTする全てのパラメータ(nonceとmethodおよびメソッド毎のパラメータ)をURLエンコードしたクエリ形式(param1=val1&param2=val2)のメッセージとして、Secret Keyを用いてHMAC-SHA512で署名します。

使用方法

https://api.zaif.jp/tapi にPOSTします
  • 全てのリクエストには”nonce”という名称でPOSTパラメータを付与し、1以上の数にて都度増分して送信します。
    例えば:
    リクエストその1: nonce=1
    リクエストその2: nonce=2
    リクエストその3: nonce=10
    リクエストその4: nonce=10 前のものと同数なのでエラーとなる
    リクエストその5: nonce=11
    リクエストその6: nonce=10 前の物より小さいのでエラーとなる
    nonceのリセットにはキーを再取得する必要がありますので、タイムスタンプなどの数値をご利用頂くことをお勧めいたします。
    nonceの値につきまして小数点以下をサポートするようになりましたので、マイクロタイムを使用したタイムスタンプをご利用いただくと、簡単に管理することができると思います。
  • APIメソッド名は”method”という名称でPOSTパラメータにて指定します。
  • その他のメソッド毎の固有のパラメータも全てPOSTパラメータにて送信します。
  • 結果は全てJSONフォーマットにて返されます。
  • 成功時の結果JSONデータは以下のようになります。
{"success":1,"return":{<return>}}
  • 処理に失敗した場合、以下のようなJSONデータが返されます。
{"success":0,"error":"<error text>"}

APIメソッド一覧

  • get_info
    現在の残高(余力および残高・トークン)、APIキーの権限、過去のトレード数、アクティブな注文数、サーバーのタイムスタンプを取得します。
    • パラメータ
      無し
    • レスポンス例
{
	"success":1,
	"return":{
		"funds":{
			"jpy":15320,
			"btc":1.389,
                        "xem":100.2,
			"mona":2600,
			"kaori":0.1
		},
		"deposit":{
			"jpy":20440,
			"btc":1.479,
                        "xem":100.2,
			"mona":3200,
			"kaori":0.1
		},
		"rights":{
			"info":1,
			"trade":1,
			"withdraw":0,
			"personal_info":0
		},
		"trade_count":18,
		"open_orders":3,
		"server_time":1401950833
	}
}
  • get_info2
    get_infoの軽量版で、過去のトレード数を除く項目を返します。
    • パラメータ
      無し
    • レスポンス例
{
	"success":1,
	"return":{
		"funds":{
			"jpy":15320,
			"btc":1.389,
                        "xem":100.2,
			"mona":2600,
			"kaori":0.1
		},
		"deposit":{
			"jpy":20440,
			"btc":1.479,
                        "xem":100.2,
			"mona":3200,
			"kaori":0.1
		},
		"rights":{
			"info":1,
			"trade":1,
			"withdraw":0,
			"personal_info":0
		},
		"open_orders":3,
		"server_time":1401950833
	}
}
  • get_personal_info
    チャットに使用されるニックネームと画像のパスを返します。
    • パラメータ
      無し
    • レスポンス例
{
	"success":1,
	"return":{
		"ranking_nickname":"ニックネーム",
		"icon_path":"https://abs.twimg.com/sticky/default_profile_images/default_profile_0_normal.png"
	}
}
  •  trade_history
    ユーザー自身の取引履歴を取得します。
    • パラメータ
parameter
required
description
data type
default
fromNoこの順番のレコードから取得 numerical0
countNo取得するレコード数numerical1000
from_idNoこのトランザクションIDのレコードから取得numerical0
end_idNoこのトランザクションIDのレコードまで取得numericalinfinity
orderNoソート順ASC (昇順)もしくは DESC (降順)DESC
sinceNo開始タイムスタンプUNIX time0
endNo終了タイムスタンプUNIX timeinfinity
currency_pairNo通貨ペア。指定なしで全ての通貨ペア(例) btc_jpy全ペア
is_tokenNotrue:カウンターパーティトークンの情報を取得
false:カウンターパーティトークン以外の情報を取得
booleanfalse

    • 注意: “since”もしくは”end”をセットした場合、”order”は強制的に”ASC”となります。
    • “currency_pair”と”is_token”の両方を指定した場合は”currency_pair”が優先されます。両方指定しない場合はカウンターパーティトークン以外の情報を取得します。
    • レスポンス例
{
	"success":1,
	"return":{
		"182":{
			"currency_pair":"btc_jpy",
			"action":"bid",
			"amount":0.03,
			"price":56000,
			"fee":0,
			"your_action":"ask",
			"bonus":1.6,
			"timestamp":1402018713
		}
	}
}
  • active_orders
    現在有効な注文一覧を取得します(未約定注文一覧)。
    • パラメータ
parameter
required
description
data type
default
currency_pairNo取得する通貨ペア。指定なしで全ての通貨ペア(例) btc_jpy全てのペア
is_tokenNotrue:カウンターパーティトークンの情報を取得
false:カウンターパーティトークン以外の情報を取得
booleanfalse
is_token_bothNotrue:全てのアクティブなオーダー情報を取得
false:currency_pairやis_tokenに従ったオーダー情報を取得
booleanfalse

    • レスポンス例
{
	"success":1,
	"return":{
		"184":{
			"currency_pair":"btc_jpy",
			"action":"ask",
			"amount":0.03,
			"price":56000,
			"timestamp":1402021125
		}
	}
}

is_token_bothがtrueの時は下記
{
	"success":1,
	"return":{
		"active_orders":{
			"184":{
				"currency_pair":"btc_jpy",
				"action":"ask",
				"amount":0.03,
				"price":56000,
				"timestamp":1402021125
		},
		"token_active_orders":{
			"235":{
				"currency_pair":"kaori_jpy",
				"action":"ask",
				"amount":0.3,
				"price":10,
				"timestamp":1402064525
		}
	}
}


  • trade
    注文を行います。
    • パラメータ
parameter
required
description
data type
default
currency_pairYes発注する通貨ペア(例) btc_jpy-
actionYes注文の種類 bid もしくは ask-
priceYes指値注文価格numerical-
amountYes数量(例: 0.3)numerical-
limitNoリミット注文価格numerical

  • 価格および数量の数値について
    下記の単位以外で注文しようとした場合、invalid price parameterまたはinvalid amount parameterというエラーが返されます
    • 価格(priceおよびlimit)
      • btc_jpy : 5円単位
      • mona_jpy : 0.1円単位
      • mona_btc : 0.00000001BTC単位
    • 数量(amount)
      • btc_jpy : 0.0001BTC単位
      • mona_jpy : 1MONA単位
      • mona_btc : 1MONA単位
    • レスポンス例
{
	"success":1,
	"return":{
		"received":0.1,
		"remains":0,
		"order_id":0,
		"funds":{
			"jpy":325,
			"btc":1.392,
			"mona":2600
		}
	}
}
  • cancel_order
    注文の取消
    • パラメータ
parameter
required
description
data type
default
order_idYes注文ID(tradeまたはactive_ordersで取得できます)numerical-
is_tokenNotrue:カウンターパーティトークンのオーダーを取り消したい時
false:カウンターパーティトークン以外のオーダーを取り消したい時
booleanfalse

    • レスポンス例
{
	"success":1,
	"return":{
		"order_id":184,
		"funds":{
			"jpy":15320,
			"btc":1.392,
			"mona":2600,
			"kaori":0.1
		}
	}
}
  • withdraw
    資金の引き出しリクエストを送信します。
    2015年12月15日より、リクエスト時には一旦トランザクションIDは空で帰るようになりました。通常1〜2分でトランザクションが発生しますので、後ほどwithdraw_historyメソッドを利用して確認してください。
    xemの出金時には、手数料は自動計算され、opt_feeに値をセットして送信しますとエラーを返しますのでご注意ください。
    • パラメータ
parameter
required
description
data type
default
currencyYes引き出す通貨btc もしくは mona-
addressYes送信先のアドレスaddress string-
messageNo送信メッセージ(XEMのみ)ASCII string-
amountYes引き出す金額(例: 0.3)numerical-
opt_feeNo採掘者への手数料(例: 0.003) (XEM以外)numerical-

    • レスポンス例
{
	"success":1,
	"return":{
		"txid":,
		"funds":{
			"jpy":15320,
			"btc":1.392,
                        "xem":100.2,
			"mona":2600
		}
	}
}
  • deposit_history
    入金履歴を取得します。
    • パラメータ
parameter
required
description
data type
default
currencyYes通貨。jpy / btc / mona 等を指定TEXT
fromNoこの順番のレコードから取得 numerical0
countNo取得するレコード数numerical1000
from_idNoこの入金IDのレコードから取得numerical0
end_idNoこの入金IDのレコードまで取得numericalinfinity
orderNoソート順ASC (昇順)もしくは DESC (降順)DESC
sinceNo開始タイムスタンプUNIX time0
endNo終了タイムスタンプUNIX timeinfinity

    • 注意: “since”もしくは”end”をセットした場合、”order”は強制的に”ASC”となります。
    • レスポンス例
{
	"success":1,
	"return":{
		"3816":{
			"timestamp":1435745065,
			"address":"12qwQ3sPJJAosodSUhSpMds4WfUPBeFEM2",
			"amount":0.001,
			"txid":"64dcf59523379ba282ae8cd61d2e9382c7849afe3a3802c0abb08a60067a159f",
		},
		"3814":{
			"timestamp":1435548083,
			"address":"12qwQ3sPJJAosodSUhSpMds4WfUPBeFEM2",
			"amount":0.001,
			"txid":"7d012cfff6e67a8938f93215367eef4177604459631ea62c85550980dca71819"
		},
	}
}
  • withdraw_history
    出金履歴を取得します。
    • パラメータ
parameter
required
description
data type
default
currencyYes通貨。jpy / btc / mona 等を指定TEXT
fromNoこの順番のレコードから取得 numerical0
countNo取得するレコード数numerical1000
from_idNoこの出金IDのレコードから取得numerical0
end_idNoこの出金IDのレコードまで取得numericalinfinity
orderNoソート順ASC (昇順)もしくは DESC (降順)DESC
sinceNo開始タイムスタンプUNIX time0
endNo終了タイムスタンプUNIX timeinfinity

    • 注意: “since”もしくは”end”をセットした場合、”order”は強制的に”ASC”となります。
    • レスポンス例
{
	"success":1,
	"return":{
		"5882":{
			"timestamp":1435807614,
			"address":"MTpPCeCzSywzhUPEn1k1q9JnBFBRoHaViR",
			"amount":1,
			"fee":0.001,
			"txid":"6904d1ab967d85840b56d913ef89bd8723f5de3303061befb1a88129c7e74efe"
		},
		"5881":{
			"timestamp":1435807539,
			"address":"MR6LXaCP9F9C46LbY8Fq7jYswwBMPKYLgf",
			"amount":0.766,
			"fee":0.001,
			"txid":"b84d48ca37316bebfa15cf301fddb0550ada340f42a056307253825f665698f8"
		},
	}
}