| 注文イベント | order_event |
|---|---|
| 逆指値注文の発火 | TRIGGERED |
| 部分約定 | PARTIALLY_FILL |
| 約定 | FILL |
| 失効 | EXPIRY |
| キャンセル | CANCEL |
取引所 API 概要
取引所APIでは、大きく分けて2つのAPIが利用できます。認証の必要ない Public API と必要のある Private API です。
Public API では取引所の注文状況や公開されている取引の履歴、板情報を参照することができます。
Private API では取引所での新規注文やそのキャンセル、自分の残高などを確認することができます。
リクエスト先
https://coincheck.com
認証
Private API では認証が必要となります。ここではその認証方法について説明します。
API Key の作成
まずは、API Keyを作成しなければなりません。APIキーから作成することができます。
ここで生成される、アクセスキー、シークレットアクセスキーは外部に公開してはなりません。
この作成されたキーを使ってリクエストを作成します。
パーミッションの設定
なお、キーを生成する際、機能ごとにパーミッションを設定することができます。
また、任意のIPアドレスに使用を許可するよう設定することも可能です。
リクエストの作成
認証が必要なリクエストでは、以下の情報を HTTP Header に含めてリクエストする必要があります。
- ACCESS-KEYAPIキー で作成したアクセスキー
- ACCESS-NONCE毎リクエストごとに増加する必要のある正の整数。通常はUNIXタイムスタンプを用います。最大値は 9223372036854775807 です。APIキーごとに管理されます。
- ACCESS-SIGNATURE後述するSIGNATURE
SIGNATUREの作成
SIGNATUREは、ACCESS-NONCE, リクエスト先URL, リクエストのボディ を全て文字列にし連結したものを、HMAC-SHA256 hash形式でシークレットキーを使って署名した結果です。
Ruby
require "openssl"
nonce = (Time.now.to_f * 1000).to_i.to_s
url = "https://coincheck.com/api/accounts/balance"
body = "hoge=foo"
message = nonce + url + body
secret = "API_SECRET"
OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha256"), secret, message)
# => "3919705fea4b0cd073b9c6e01e139f3b056782c57c5cffd5aea6d8c4ac98bef7"
PHP
$strUrl = "https://coincheck.com/api/accounts/balance";
$intNonce = (int) (microtime(true) * 1000);
$arrQuery = array("hoge" => "foo");
$strAccessSecret = "API_SECRET";
$strMessage = $intNonce . $strUrl . http_build_query($arrQuery);
$strSignature = hash_hmac("sha256", $strMessage, $strAccessSecret);
# => "3bc1f33d802056c61ba8c8108f6ffb7527bcd184461a3ea0fed3cee0a22ae15d"
リクエストのサンプル
Ruby
require 'net/http'
require 'uri'
require 'openssl'
key = "API_KEY"
secret = "API_SECRET"
uri = URI.parse "https://coincheck.com/api/accounts/balance"
nonce = (Time.now.to_f * 1000).to_i.to_s
message = nonce + uri.to_s
signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha256"), secret, message)
headers = {
"ACCESS-KEY" => key,
"ACCESS-NONCE" => nonce,
"ACCESS-SIGNATURE" => signature
}
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
response = https.start {
https.get(uri.request_uri, headers)
}
puts response.body
Java
import com.google.api.client.http.*;
import com.google.api.client.http.apache.ApacheHttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import org.apache.commons.codec.binary.Hex;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
public class CoincheckApi {
private String apiKey;
private String apiSecret;
public static void main(String[] args) {
String key = "API_KEY";
String secret = "API_SECRET";
CoincheckApi api = new CoincheckApi(key, secret);
System.out.println(api.getTicker());
System.out.println(api.getBalance());
}
public CoincheckApi(String apiKey, String apiSecret) {
this.apiKey = apiKey;
this.apiSecret = apiSecret;
}
public String getTicker() {
String url = "https://coincheck.com/api/accounts/ticker";
String jsonString = requestByUrlWithHeader(url, createHeader(url));
return jsonString;
}
public String getBalance() {
String url = "https://coincheck.com/api/accounts/balance";
String jsonString = requestByUrlWithHeader(url, createHeader(url));
return jsonString;
}
private Map<String, String> createHeader(String url) {
Map<String, String> map = new HashMap<String, String>();
String nonce = createNonce();
map.put("ACCESS-KEY", apiKey);
map.put("ACCESS-NONCE", nonce);
map.put("ACCESS-SIGNATURE", createSignature(apiSecret, url, nonce));
return map;
}
private String createSignature(String apiSecret, String url, String nonce) {
String message = nonce + url;
return HMAC_SHA256Encode(apiSecret, message);
}
private String createNonce() {
long currentUnixTime = System.currentTimeMillis();
String nonce = String.valueOf(currentUnixTime);
return nonce;
}
private String requestByUrlWithHeader(String url, final Map<String, String> headers){
ApacheHttpTransport transport = new ApacheHttpTransport();
HttpRequestFactory factory = transport.createRequestFactory(new HttpRequestInitializer() {
public void initialize(final HttpRequest request) throws IOException {
request.setConnectTimeout(0);
request.setReadTimeout(0);
request.setParser(new JacksonFactory().createJsonObjectParser());
final HttpHeaders httpHeaders = new HttpHeaders();
for (Map.Entry<String, String> e : headers.entrySet()) {
httpHeaders.set(e.getKey(), e.getValue());
}
request.setHeaders(httpHeaders);
}
});
String jsonString;
try {
HttpRequest request = factory.buildGetRequest(new GenericUrl(url));
HttpResponse response = request.execute();
jsonString = response.parseAsString();
} catch (IOException e) {
e.printStackTrace();
jsonString = null;
}
return jsonString;
}
public static String HMAC_SHA256Encode(String secretKey, String message) {
SecretKeySpec keySpec = new SecretKeySpec(
secretKey.getBytes(),
"hmacSHA256");
Mac mac = null;
try {
mac = Mac.getInstance("hmacSHA256");
mac.init(keySpec);
} catch (NoSuchAlgorithmException e) {
// can't recover
throw new RuntimeException(e);
} catch (InvalidKeyException e) {
// can't recover
throw new RuntimeException(e);
}
byte[] rawHmac = mac.doFinal(message.getBytes());
return Hex.encodeHexString(rawHmac);
}
}
ライブラリ
coincheckのAPIを利用する際に役立つ各プログラミング言語向けのライブラリを開発、配布しています。
Ruby
コマンドラインより、以下のコマンドを実行するか、
$ gem install ruby_coincheck_client
Bundler環境下でGemfileに以下の通りに記述して利用できます。
gem 'ruby_coincheck_client'
また、gemファイルはGitHubからダウンロードできます。
coincheckjp/ruby_coincheck_client
PHP
composer.json にパッケージを定義します。
{
"require": {
"coincheck/coincheck": "1.0.0"
}
}
installします。
$ composer install
また、パッケージはGitHubからダウンロードできます。
Scala
val key = "YOUR-KEY-HERE" val secret = "YOUR-SECRET-HERE" import net.pocketengineer.coincheckscala.CoinCheckApiService import net.pocketengineer.coincheckscala.model._ val cc = new CoinCheckApiService(key, secret) // Ticker val ticker: Ticker = cc.getTicker // OrderBook val orderBook: OrderBook = cc.getOrderBook // Account Info val balance: Balance = cc.getAccountInfo // Trade val orderId: Long = cc.tradeBtc(28400, 0.01F, BUY) // OpenOrder val openOrders: List[OpenOrder] = cc.getOpenOrder // Cancel Order val isSuccess: Boolean = cc.cancelOrder(ORDER_ID)
Build
sbt assembly
ページネーション
coincheckの一部APIではページネーションにてデータを分割して取得することが可能です。
PARAMETERS
- limit1ページあたりの取得件数を指定できます。
- order"desc", "asc" を指定できます。
- starting_afterIDを指定すると絞り込みの開始位置を設定できます。
- ending_beforeIDを指定すると絞り込みの終了位置を設定できます。
{
"success": true,
"pagination": {
"limit": 1,
"order": "desc",
"starting_after": null,
"ending_before": null
},
"data": [
{
"id": 10,
"pair": "btc_jpy",
"status": "open",
"created_at": "2015-12-02T05:27:53.000Z",
"closed_at": null,
"open_rate": "43553.0",
"closed_rate": null,
"amount": "1.51347797",
"all_amount": "1.51045705",
"side": "sell",
"pl": "-8490.81029287",
"new_order": {
"id": 23104033,
"side": "sell",
"rate": null,
"amount": null,
"pending_amount": "0",
"status": "complete",
"created_at": "2015-12-02T05:27:52.000Z"
},
"close_orders": [
{
"id": 23755132,
"side": "buy",
"rate": "10000.0",
"amount": "1.0",
"pending_amount": "0.0",
"status": "cancel",
"created_at": "2015-12-05T05:03:56.000Z"
}
]
}
]
}Public API
取引所の注文状況や公開されている取引の履歴、板情報を参照することができます。
ティッカー
各種最新情報を簡易に取得することができます。
pairを指定していない場合、btc_jpyの情報を取得できます。
HTTP REQUEST
GET /api/ticker
PARAMETERS
- pair取引ペア。現在は btc_jpy, eth_jpy, etc_jpy, lsk_jpy, xrp_jpy, xem_jpy, bch_jpy, mona_jpy, iost_jpy, enj_jpy, chz_jpy, imx_jpy, shib_jpy, avax_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_jpy, doge_jpy, pepe_jpy, mask_jpy, mana_jpy, grt_jpyが利用可能です。
{
"last": 27390,
"bid": 26900,
"ask": 27390,
"high": 27659,
"low": 26400,
"volume": "50.29627103",
"timestamp": 1423377841
}RESPONSE ITEMS
- last最後の取引の価格
- bid現在の買い注文の最高価格
- ask現在の売り注文の最安価格
- high24時間での最高取引価格
- low24時間での最安取引価格
- volume24時間での取引量
- timestamp現在の時刻
全取引履歴
最新の取引履歴を取得できます。
HTTP REQUEST
GET /api/trades
PARAMETERS
- *pair取引ペア。現在は btc_jpy, eth_jpy, etc_jpy, lsk_jpy, xrp_jpy, xem_jpy, bch_jpy, mona_jpy, iost_jpy, enj_jpy, chz_jpy, imx_jpy, shib_jpy, avax_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_jpy, doge_jpy, pepe_jpy, mask_jpy, mana_jpy, grt_jpyが利用可能です。
{
"success": true,
"pagination": {
"limit": 1,
"order": "desc",
"starting_after": null,
"ending_before": null
},
"data": [
{
"id": 82,
"amount": "0.28391",
"rate": "35400.0",
"pair": "btc_jpy",
"order_type": "sell",
"created_at": "2015-01-10T05:55:38.000Z"
},
{
"id": 81,
"amount": "0.1",
"rate": "36120.0",
"pair": "btc_jpy",
"order_type": "buy",
"created_at": "2015-01-09T15:25:13.000Z"
}
]
}※板寄せの場合はorder_typeはnullになります。
板情報
板情報を取得できます。
HTTP REQUEST
GET /api/order_books
{
"asks": [
[
27330,
"2.25"
],
[
27340,
"0.45"
]
],
"bids": [
[
27240,
"1.1543"
],
[
26800,
"1.2226"
]
]
}RESPONSE ITEMS
- asks売り注文の情報
- bids買い注文の情報
レート取得
取引所の注文を元にレートを算出します。
HTTP REQUEST
GET /api/exchange/orders/rate
PARAMETERS
- *order_type注文のタイプ("sell" or "buy")
- *pair取引ペア。現在は btc_jpy, eth_jpy, etc_jpy, lsk_jpy, xrp_jpy, xem_jpy, bch_jpy, mona_jpy, iost_jpy, enj_jpy, chz_jpy, imx_jpy, shib_jpy, avax_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_jpy, doge_jpy, pepe_jpy, mask_jpy, mana_jpy, grt_jpyが利用可能です。
- amount注文での量。(例)0.1
- price注文での金額。(例)28000
- ※ priceまたはamountのいずれかをパラメータとして指定する必要があります。
{
"success": true,
"rate": 60000,
"price": 60000,
"amount": 1
}RESPONSE ITEMS
- rate注文のレート
- price注文の金額
- amount注文の量
基準レート取得
基準レートを取得します。
HTTP REQUEST
GET /api/rate/[pair]
PARAMETERS
- *pair通貨ペア (例 "btc_jpy" )
{
"rate": "60000"
}RESPONSE ITEMS
- rateレート
ステータス取得
取引所のステータスを取得します。
取引所のステータスの説明は こちら をご参照ください。
HTTP REQUEST
GET /api/exchange_status
PARAMETERS
- pairを指定していない場合は取引可能な全ペアの情報を返す
- pairを指定した場合はその通貨のみ返す
- 現在は btc_jpy, eth_jpy, etc_jpy, lsk_jpy, xrp_jpy, xem_jpy, bch_jpy, mona_jpy, iost_jpy, enj_jpy, chz_jpy, imx_jpy, shib_jpy, avax_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_jpy, doge_jpy, pepe_jpy, mask_jpy, mana_jpy, grt_jpyが利用可能です。
{
"exchange_status": [
{
"pair": "btc_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "eth_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "etc_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "lsk_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "xrp_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "xem_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "bch_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "mona_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "iost_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "enj_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "chz_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "imx_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "shib_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "avax_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "fnct_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "dai_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "wbtc_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "bril_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "bc_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "doge_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "pepe_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "mask_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "mana_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
},
{
"pair": "grt_jpy",
"status": "available",
"timestamp": 1762703169,
"availability": {
"order": true,
"market_order": true,
"cancel": true
}
}
]
}RESPONSE ITEMS
- pair通貨ペア
- status取引所ステータス ( available, itayose, stop )
- timestampステータスを取得した時間
- availability指値注文 ( order ) ができるか、 成行注文 ( market_order ) ができるか、 キャンセル注文 ( cancel ) ができるかを応答
Private API
取引所での新規注文やそのキャンセル、自分の残高などを確認することができます。
注文
取引所での注文に関するAPIを利用できます。
新規注文
取引所に新規注文を発行します。
たとえば、10 BTC を 30000 JPY/BTC で買いたい場合は、以下のように指定します。
rate: 30000, amount: 10, order_type: "buy", pair: "btc_jpy"
買い注文の場合、指定した価格よりも低い価格での売り注文が既に存在していれば、その売り注文を安い順に決済します。売り注文が足りなかった場合は未決済の注文として残ります。売り注文の場合も同様です。
リクエスト制限について
取引所への新規注文は秒間5リクエストまで可能です。
秒間6リクエスト以上実行されると、429:too_many_requestsエラーが返されます。
制限は通貨ペアごとではありませんのでご注意ください。
システム負荷状況によって制限内容を変更する場合があります。予めご了承ください。
注文方法について
order_type は全部で4つあります。
- "buy"指値注文 現物取引 買い
- "sell"指値注文 現物取引 売り
- "market_buy"成行注文 現物取引 買い
- "market_sell"成行注文 現物取引 売り
"buy"
指値注文 現物取引 買い
- *rate注文のレート。(例)28000
- *amount注文での量。(例)0.1
"sell"
指値注文 現物取引 売り
- *rate注文のレート。(例)28000
- *amount注文での量。(例)0.1
"market_buy"
成行注文 現物取引 買い
買いの成行注文ではBTCではなく利用するJPYの数量を送信する必要があります。
- *market_buy_amount成行買で利用する日本円の金額。(例)10000
"market_sell"
成行注文 現物取引 売り
- *amount注文での量。(例)0.1
HTTP REQUEST
POST /api/exchange/orders
PARAMETERS
- *pair取引ペア。現在は btc_jpy, eth_jpy, etc_jpy, lsk_jpy, xrp_jpy, xem_jpy, bch_jpy, mona_jpy, iost_jpy, enj_jpy, chz_jpy, imx_jpy, shib_jpy, avax_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_jpy, doge_jpy, pepe_jpy, mask_jpy, mana_jpy, grt_jpyが利用可能です。
- *order_type注文方法
- rate注文のレート。(例)28000
- amount注文での量。(例)0.1
- market_buy_amount成行買で利用する日本円の金額。(例)10000
- stop_loss_rate逆指値レート ( 逆指値とは? )
- time_in_force注文有効期間(optional)。"good_til_cancelled"(キャンセルされるまで有効。デフォルト) あるいは "post_only"( postonlyとは? )が指定できます。
{
"success": true,
"id": 12345,
"rate": "30010.0",
"amount": "1.3",
"order_type": "sell",
"time_in_force": "good_til_cancelled",
"stop_loss_rate": null,
"pair": "btc_jpy",
"created_at": "2015-01-10T05:55:38.000Z"
}RESPONSE ITEMS
- id新規注文のID
- rate注文のレート
- amount注文の量
- order_type注文方法
- time_in_force注文有効期間
- stop_loss_rate逆指値レート
- pair取引ぺア
- created_at注文の作成日時
注文の詳細
注文の詳細を取得します。
リクエスト制限について
注文の詳細は秒間1リクエストまで可能です。
秒間2リクエスト以上実行されると、429:too_many_requestsエラーが返されます。
制限は通貨ペアごとではありませんのでご注意ください。
システム負荷状況によって制限内容を変更する場合があります。予めご了承ください。
HTTP REQUEST
GET /api/exchange/orders/[id]
PARAMETERS
- *id注文のID(新規注文でのIDと同一です)
{
"success": true,
"id": 12345,
"pair": "btc_jpy",
"status": "PARTIALLY_FILLED_EXPIRED",
"order_type": "buy",
"rate": "0.1",
"stop_loss_rate": null,
"maker_fee_rate": "0.001",
"taker_fee_rate": "0.001",
"amount": "1.0",
"market_buy_amount": null,
"executed_amount": "0",
"executed_market_buy_amount": null,
"expired_type": "self_trade_prevention",
"prevented_match_id": 123,
"expired_amount": "1.0",
"expired_market_buy_amount": null,
"time_in_force": "good_til_cancelled",
"created_at": "2015-01-10T05:55:38.000Z"
}RESPONSE ITEMS
- id注文のID(新規注文でのIDと同一です)
- pair取引ペア
- status注文のステータス
- *NEW注文受理済
- *WAITING_FOR_TRIGGERstoploss等の条件発動前
- *PARTIALLY_FILLED部分約定済
- *FILLED全約定済
- *CANCELEDキャンセル済
- *EXPIRED失効済
- *PARTIALLY_FILLED_CANCELED部分約定済かつキャンセル済
- *PARTIALLY_FILLED_EXPIRED部分約定済かつ失効済
- order_type注文のタイプ(新規注文でのorder_typeと同一です)
- rate注文のレート( null の場合は成り行き注文です)
- stop_loss_rate逆指値レート
- maker_fee_rateMakerとして注文を行った場合の手数料
- taker_fee_rateTakerとして注文を行った場合の手数料
- amount注文の量
- market_buy_amount成行買で注文した日本円の金額
- executed_amount約定した量
- executed_market_buy_amount成行買で約定した日本円の金額
- expired_type失効した理由
- *self_trade_prevention対当売買による失効
- *price_limit値幅制限による失効
- *post_onlypost_only注文がMakerにならなかったため失効
- *unfilled_market成行注文が全約定せず失効
- *itayose_market板寄せ注文受付中に成行注文が失効
- prevented_match_id対当した注文のID
- expired_amount失効した量
- expired_market_buy_amount成行買で失効した日本円の金額
- time_in_force注文有効期間(新規注文でのtime in forceと同一です)
- created_at注文の作成日時
未決済の注文一覧
アカウントの未決済の注文を一覧で表示します。
HTTP REQUEST
GET /api/exchange/orders/opens
{
"success": true,
"orders": [
{
"id": 202835,
"order_type": "buy",
"rate": 26890,
"pair": "btc_jpy",
"pending_amount": "0.5527",
"pending_market_buy_amount": null,
"stop_loss_rate": null,
"created_at": "2015-01-10T05:55:38.000Z"
},
{
"id": 202836,
"order_type": "sell",
"rate": 26990,
"pair": "btc_jpy",
"pending_amount": "0.77",
"pending_market_buy_amount": null,
"stop_loss_rate": null,
"created_at": "2015-01-10T05:55:38.000Z"
},
{
"id": 38632107,
"order_type": "buy",
"rate": null,
"pair": "btc_jpy",
"pending_amount": null,
"pending_market_buy_amount": "10000.0",
"stop_loss_rate": "50000.0",
"created_at": "2016-02-23T12:14:50.000Z"
}
]
}RESPONSE ITEMS
- id注文のID(新規注文でのIDと同一です)
- rate注文のレート( null の場合は成り行き注文です)
- pending_amount注文の未決済の量
- pending_market_buy_amount注文の未決済の量(現物成行買いの場合のみ)
- order_type注文のタイプ("sell" or "buy")
- stop_loss_rate逆指値レート
- pair取引ペア
- created_at注文の作成日時
注文のキャンセル
新規注文または未決済の注文一覧のIDを指定してキャンセルすることができます。
HTTP REQUEST
DELETE /api/exchange/orders/[id]
PARAMETERS
{
"success": true,
"id": 12345
}RESPONSE ITEMS
- idキャンセルした注文のID
注文のキャンセルステータス
オーダーのキャンセル処理状況を参照出来ます。
HTTP REQUEST
GET /api/exchange/orders/cancel_status?id=[id]
PARAMETERS
{
"success": true,
"id": 12345,
"cancel": true,
"created_at": "2020-07-29T17:09:33.000Z"
}RESPONSE ITEMS
- id注文のID
- cancelキャンセル済みか(true or false)※1
- created_at注文の作成日時
※1 失効した注文もキャンセルとして扱います。
取引履歴
自分の最近の取引履歴を参照できます。
HTTP REQUEST
GET /api/exchange/orders/transactions
{
"success": true,
"transactions": [
{
"id": 38,
"order_id": 49,
"created_at": "2015-11-18T07:02:21.000Z",
"funds": {
"btc": "0.1",
"jpy": "-4096.135"
},
"pair": "btc_jpy",
"rate": "40900.0",
"fee_currency": "JPY",
"fee": "6.135",
"liquidity": "T",
"side": "buy"
},
{
"id": 37,
"order_id": 48,
"created_at": "2015-11-18T07:02:21.000Z",
"funds": {
"btc": "-0.1",
"jpy": "4094.09"
},
"pair": "btc_jpy",
"rate": "40900.0",
"fee_currency": "JPY",
"fee": "-4.09",
"liquidity": "M",
"side": "sell"
}
]
}RESPONSE ITEMS
- idID
- order_id注文のID
- created_at取引が行われた時間
- funds各残高の増減分
- pair取引ペア
- rate約定価格
- fee_currency手数料の通貨
- fee発生した手数料
- liquidity"T" ( Taker ) or "M" ( Maker ) or "itayose" ( Itayose )
- side"sell" or "buy"
取引履歴(ページネーション)
自分の最近の取引履歴を参照できます。
HTTP REQUEST
GET /api/exchange/orders/transactions_pagination
{
"success": true,
"pagination": {
"limit": 1,
"order": "desc",
"starting_after": null,
"ending_before": null
},
"data": [
{
"id": 38,
"order_id": 49,
"created_at": "2015-11-18T07:02:21.000Z",
"funds": {
"btc": "0.1",
"jpy": "-4096.135"
},
"pair": "btc_jpy",
"rate": "40900.0",
"fee_currency": "JPY",
"fee": "6.135",
"liquidity": "T",
"side": "buy"
},
{
"id": 37,
"order_id": 48,
"created_at": "2015-11-18T07:02:21.000Z",
"funds": {
"btc": "-0.1",
"jpy": "4094.09"
},
"pair": "btc_jpy",
"rate": "40900.0",
"fee_currency": "JPY",
"fee": "-4.09",
"liquidity": "M",
"side": "sell"
}
]
}RESPONSE ITEMS
- idID
- order_id注文のID
- created_at取引が行われた時間
- funds各残高の増減分
- pair取引ペア
- rate約定価格
- fee_currency手数料の通貨
- fee発生した手数料
- liquidity"T" ( Taker ) or "M" ( Maker ) or "itayose" ( Itayose )
- side"sell" or "buy"
アカウント
自分のアカウントの残高や、各種情報を取得することができます。
残高
アカウントの残高を確認できます。
jpy, btc には未決済の注文に利用している jpy_reserved, btc_reserved は含まれていません。
HTTP REQUEST
GET /api/accounts/balance
{
"success": true,
"jpy": "0.8401",
"btc": "7.75052654",
"jpy_reserved": "3000.0",
"btc_reserved": "3.5002",
"jpy_lending": "0",
"btc_lending": "0.1",
"jpy_lend_in_use": "0",
"btc_lend_in_use": "0.3",
"jpy_lent": "0",
"btc_lent": "1.2",
"jpy_debt": "0",
"btc_debt": "0",
"jpy_tsumitate": "10000.0",
"btc_tsumitate": "0.4034"
}RESPONSE ITEMS
- jpy日本円の残高
- btcビットコインの残高
- jpy_reserved未決済の買い注文に利用している日本円の合計
- btc_reserved未決済の売り注文に利用しているビットコインの合計
- jpy_lending貸暗号資産アカウント内の貸出申請前の日本円の合計(現在は日本円貸出の機能を提供していません)
- btc_lending貸暗号資産アカウント内の貸出申請前のビットコインの合計
- jpy_lend_in_use貸暗号資産アカウント内の貸出申請をしている日本円の合計(現在は日本円貸出の機能を提供していません)
- btc_lend_in_use貸暗号資産アカウント内の貸出申請をしているビットコインの合計
- jpy_lent貸暗号資産アカウント内の貸出をしている日本円の合計(現在は日本円貸出の機能を提供していません)
- btc_lent貸暗号資産アカウント内の貸出をしているビットコインの合計
- jpy_debt借りている日本円の合計
- btc_debt借りているビットコインの合計
- jpy_tsumitateつみたて中の日本円の合計
- btc_tsumitateつみたて中のビットコインの合計
暗号通貨の送金
指定のアドレスにビットコインを送ります。
HTTP REQUEST
POST /api/send_money
PARAMETERS
- *remittee_list_id送り先の宛先リストのID
- *amount送金数量
- *purpose_type送金目的の種別
- purpose_details送金目的の詳細
{
"remittee_list_id": 12345,
"amount": "0.000001",
"purpose_type": "payment_of_importing",
"purpose_details": {
"specific_items_of_goods": "食料品",
"place_of_origin": "カナダ",
"place_of_loading": "アメリカ"
}
}PURPOSE TYPES
purpose_type に指定可能な Key 一覧です。送金目的に合致する値を指定してください。purpose_type の値によっては、詳細情報を purpose_details にオブジェクト形式で指定する必要がございます。
- inheritance_or_donating相続、生活費の贈与
- payment_of_importing輸入代金の決済
- purpose_details に追加指定が必要なフィールド
- *specific_items_of_goods商品の具体的品目
- *place_of_origin原産地
- *place_of_loading船積地
- payment_of_intermediary_trade仲介貿易代金の決済
- purpose_details に追加指定が必要なフィールド
- *specific_items_of_goods商品の具体的品目
- *place_of_origin原産地
- *place_of_loading船積地
- *place_of_destination仕向地
- payment_of_domestic_transactions国内取引での商品代金の決済
- keep_own_account他の取引所、サービス等の自己口座での保管
- keep_own_private_wallet自己のプライベートウォレット(MetaMask等)での保管
- otherその他
- purpose_details に追加指定が必要なフィールド
- *extra_text具体的な送金目的
{
"success": true,
"id": "276",
"address": "1v6zFvyNPgdRvhUufkRoTtgyiw1xigncc",
"amount": "1.5",
"fee": "0.002"
}RESPONSE ITEMS
- id送金のIDです
- address送り先のアドレス
- amount送金した数量
- fee手数料
送金履歴
ビットコインの送金履歴です。
HTTP REQUEST
GET /api/send_money
PARAMETERS
- *currency通貨(現在は BTC のみ対応)
{
"success": true,
"sends": [
{
"id": 2,
"amount": "0.05",
"currency": "BTC",
"fee": "0.0",
"address": "13PhzoK8me3u5nHzzFD85qT9RqEWR9M4Ty",
"created_at": "2015-06-13T08:25:20.000Z"
},
{
"id": 1,
"amount": "0.05",
"currency": "BTC",
"fee": "0.0001",
"address": "118ekvRwx6uc4241jkuQt5eYvLiuWdMW2",
"created_at": "2015-06-13T08:21:18.000Z"
}
]
}RESPONSE ITEMS
- id送金のIDです
- amount送ったbitcoinの量
- fee手数料
- currency通貨
- address送った先のbitcoinアドレス
- created_at送金処理の作成日時
受け取り履歴
ビットコインの受け取り履歴です。
HTTP REQUEST
GET /api/deposit_money
PARAMETERS
- *currency通貨(現在は BTC のみ対応)
{
"success": true,
"deposits": [
{
"id": 2,
"amount": "0.05",
"currency": "BTC",
"address": "13PhzoK8me3u5nHzzFD85qT9RqEWR9M4Ty",
"status": "confirmed",
"confirmed_at": "2015-06-13T08:29:18.000Z",
"created_at": "2015-06-13T08:22:18.000Z"
},
{
"id": 1,
"amount": "0.01",
"currency": "BTC",
"address": "13PhzoK8me3u5nHzzFD85qT9RqEWR9M4Ty",
"status": "received",
"confirmed_at": "2015-06-13T08:21:18.000Z",
"created_at": "2015-06-13T08:21:18.000Z"
}
]
}RESPONSE ITEMS
- id受け取りのID
- amount受け取ったビットコインの量
- currency通貨
- address受け取り元のビットコインアドレス
- statusステータス
- confirmed_at受け取りの承認日時
- created_at受け取り処理の作成日時
アカウント情報
アカウントの情報を表示します。
HTTP REQUEST
GET /api/accounts
{
"success": true,
"id": 10000,
"email": "test@gmail.com",
"identity_status": "identity_pending",
"bitcoin_address": "1v6zFvyNPgdRvhUufkRoTtgyiw1xigncc",
"taker_fee": "0.15",
"maker_fee": "0.0",
"exchange_fees": {
"btc_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"eth_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"etc_jpy": {
"maker_fee_rate": "0.05",
"taker_fee_rate": "0.1"
},
"lsk_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"xrp_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"xem_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"bch_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"mona_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"iost_jpy": {
"maker_fee_rate": "0.05",
"taker_fee_rate": "0.1"
},
"enj_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"chz_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"imx_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"shib_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"avax_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"fnct_jpy": {
"maker_fee_rate": "0.05",
"taker_fee_rate": "0.1"
},
"dai_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"wbtc_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"bril_jpy": {
"maker_fee_rate": "0.05",
"taker_fee_rate": "0.1"
},
"bc_jpy": {
"maker_fee_rate": "0.05",
"taker_fee_rate": "0.1"
},
"doge_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"pepe_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"mask_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"mana_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
},
"grt_jpy": {
"maker_fee_rate": "0.0",
"taker_fee_rate": "0.0"
}
}
}RESPONSE ITEMS
- idアカウントのID。日本円入金の際に指定するIDと一致します。
- email登録されたメールアドレス
- identity_status本人確認書類の提出状況を表示します。
- bitcoin_addressあなたのデポジット用ビットコインのアドレス
- taker_feeTakerとして注文を行った場合の手数料(%)を表示します。(BTC_JPY)
- maker_feeMakerとして注文を行った場合の手数料(%)を表示します。(BTC_JPY)
- exchange_fees板ごとの手数料を表示します。
日本円出金
日本円を銀行振込で出金できます。
銀行口座一覧
お客様の出金用に登録された銀行口座の一覧を返します。
HTTP REQUEST
GET /api/bank_accounts
{
"success": true,
"data": [
{
"id": 243,
"bank_name": "みずほ",
"branch_name": "東京営業部",
"bank_account_type": "futsu",
"number": "0123456",
"name": "タナカ タロウ"
}
]
}RESPONSE ITEMS
- idID
- bank_name銀行名
- branch_name支店名
- bank_account_type銀行口座の種類(futsu : 普通口座, toza : 当座預金口座)
- number口座番号
- name口座名義
銀行口座の登録
出金先の銀行口座を登録します。
HTTP REQUEST
POST /api/bank_accounts
PARAMETERS
- *bank_name銀行名
- *branch_name支店名
- *bank_account_type銀行口座の種類(futsu : 普通口座, toza : 当座預金口座)
- *number口座番号(例)"0123456"
- *name口座名義
{
"success": true,
"data": {
"id": 641,
"bank_name": "熊本",
"branch_name": "田中",
"bank_account_type": "futsu",
"number": "0123456",
"name": "hoge"
}
}RESPONSE ITEMS
- idID
- bank_name銀行名
- branch_name支店名
- bank_account_type銀行口座の種類(futsu : 普通口座, toza : 当座預金口座)
- number口座番号(例)"0123456"
- name口座名義
銀行口座の削除
出金先の銀行口座を削除します。
HTTP REQUEST
DELETE /api/bank_accounts/[id]
PARAMETERS
- *id銀行口座一覧のID
{
"success": true
}出金履歴
日本円出金の申請の履歴を表示します。
HTTP REQUEST
GET /api/withdraws
{
"success": true,
"pagination": {
"limit": 25,
"order": "desc",
"starting_after": null,
"ending_before": null
},
"data": [
{
"id": 398,
"status": "finished",
"amount": "242742.0",
"currency": "JPY",
"created_at": "2014-12-04T15:00:00.000Z",
"bank_account_id": 243,
"fee": "400.0",
"is_fast": true
}
]
}RESPONSE ITEMS
- idID
- status出金の状態 ( pending 未処理, processing 手続き中, finished 完了, canceled キャンセル済み)
- amount金額
- currency通貨
- created_at作成日時
- bank_account_id銀行口座のID
- fee振込手数料
- is_fast高速出金のオプション 現在、停止中
出金申請の作成
日本円の出金申請をします。
HTTP REQUEST
POST /api/withdraws
PARAMETERS
- *bank_account_id銀行口座のID
- *amount金額
- *currency通貨 ( 現在は "JPY" のみ対応)
{
"success": true,
"data": {
"id": 1043,
"status": "pending",
"amount": "10000.0",
"currency": "JPY",
"created_at": "2015-08-31T11:32:45.213Z",
"bank_account_id": 243,
"fee": "300.0"
}
}RESPONSE ITEMS
- idID
- status出金の状態 ( pending 未処理, processing 手続き中, finished 完了, canceled キャンセル済み)
- amount金額
- currency通貨 ( 現在は "JPY" のみ対応)
- created_at作成日時
- bank_account_id銀行口座のID
- fee振込手数料
出金申請のキャンセル
出金申請をキャンセルします。
status が pending の出金申請のみキャンセルできます。
HTTP REQUEST
DELETE /api/withdraws/[id]
PARAMETERS
- *id出金申請のID
{
"success": true
}WebSocket API
Coincheck取引所では、REST API に加えて WebSocket API を提供しています。WebSocket API を用いることで、マーケット情報やお客様の注文の状態などをリアルタイムに受信することが可能です。 従来の REST API を利用した HTTP ポーリングと異なり、サーバーからクライアントへの能動的なデータ配信により、低遅延かつ効率的な通信を実現します。 取引データは発生した瞬間に配信されるため、リアルタイム監視アプリケーションなどへのご利用に最適です。
WebSocket API には、以下の2種類があります。
Public WebSocket API
マーケット情報(取引履歴や板情報など)を誰でもリアルタイムに受信することが可能です。 認証不要で利用でき、価格変動の監視やチャート表示、アラート機能の実装に活用できます。
Private WebSocket API
注文イベントや約定イベントなどをリアルタイムに受信することが可能で、ご利用には認証が必要となります。 お客様の取引状況をリアルタイムでモニタリングでき、自動取引システムや注文管理ツールの構築に適しています。
Public WebSocket API
概要
Public WebSocket API は認証不要でご利用頂くことができます。 接続後は複数の通貨ペアのチャンネルを購読でき、1つの WebSocket 接続で効率的にマーケット全体を監視できます。 データは取引発生の0.1秒間隔で配信され、ネットワーク切断時の自動再接続機能の実装を推奨します。
接続フロー
1. WebSocket 接続の確立
以下の URI に接続してください。
wss://ws-api.coincheck.com
2. チャンネル購読(subscribe)
接続を確立したら、購読したいチャンネルを subscribe してください。
テスト方法
//JavaScript
//Chrome環境にて実行
socket = new WebSocket("wss://ws-api.coincheck.com/")
socket.send(JSON.stringify({type: "subscribe", channel: "btc_jpy-orderbook"}))
socket.send(JSON.stringify({type: "subscribe", channel: "btc_jpy-trades"}))
利用可能な通貨ペア
btc_jpy, eth_jpy, etc_jpy, lsk_jpy, xrp_jpy, xem_jpy, bch_jpy, mona_jpy, iost_jpy, enj_jpy, chz_jpy, imx_jpy, shib_jpy, avax_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_jpy, doge_jpy, pepe_jpy, mask_jpy, mana_jpy, grt_jpy
コマンド
subscribe コマンド
チャンネルの購読を開始します。 Public WebSocket API では1つの subscribe コマンドで1つのチャンネルを購読します。複数チャンネルを購読する場合は、チャンネルごとに個別に subscribe コマンドを送信してください。
REQUEST ITEMS
{
"type": "subscribe",
"channel": "購読を開始するチャンネル"
}REQUEST EXAMPLE
{"type":"subscribe","channel":"btc_jpy-trades"}取引履歴チャンネル
0.1秒間隔で発生した取引を、配信タイムスタンプ付きで1件ずつ受信できます。 利用可能な通貨ペア を参照の上、購読する通貨ペアを [pair] にご指定ください。
REQUEST ITEMS
{
"type": "subscribe",
"channel": "[pair]-trades"
}RESPONSE ITEMS
[ "約定タイムスタンプ (unix時間)", "約定ID", "取引ペア", "約定のレート", "約定の量", "注文方法", "Takerの注文ID", "Makerの注文ID", "Itayoseの注文ID" ]
※ TakerあるいはItayoseの注文情報のみが配信されます。
※ Itayoseの場合はTaker/Makerとは別の区別となり、マッチングした双方のBuyとSellの情報をすべて配信していることから、一連の合算した数量は実際の取引高合計と一致しません。
※ 通常約常時はItayoseの注文IDは、nullになり、板寄せ約常時はTaker/Makerの注文IDはnullが配信されます。
REQUEST EXAMPLE
{"type":"subscribe","channel":"btc_jpy-trades"}RESPONSE EXAMPLES
※ 2次元配列として配信されます。
[
[
"1663318663",
"2357062",
"btc_jpy",
"2820896.0",
"5.0",
"sell",
"1193401",
"2078767",
null
],
[
"1663318892",
"2357068",
"btc_jpy",
"2820357.0",
"0.7828",
"buy",
"4456513",
"8046665",
null
]
]板情報チャンネル
板情報の差分を一定間隔で送信します。 利用可能な通貨ペア を参照の上、購読する通貨ペアを [pair] にご指定ください。
REQUEST ITEMS
{
"type": "subscribe",
"channel": "[pair]-orderbook"
}RESPONSE ITEMS
[ "[pair]", { "bids": [ [ "注文のレート", "注文の量" ], [ "注文のレート", "注文の量" ] ], "asks": [ [ "注文のレート", "注文の量" ], [ "注文のレート", "注文の量" ] ], "last_update_at": "最終更新時刻(unix時間)" } ]
※ “bids”は買い注文の情報、”asks”は売り注文の情報となっています。
REQUEST EXAMPLE
{"type":"subscribe","channel":"btc_jpy-orderbook"}RESPONSE EXAMPLES
[ "btc_jpy", { "bids": [ [ "148634.0", "0.12" ], [ "148633.0", "0.0574" ] ], "asks": [ [ "148834.0", "0.0812" ], [ "148833.0", "1.0581" ] ], "last_update_at": "1659321701" } ]
Private WebSocket API
概要
Private WebSocket API のご利用にあたっては認証が必要です。 REST APIの認証と同様の ACCESS-KEY、ACCESS-NONCE、ACCESS-SIGNATURE を使用してログイン後、注文や約定に関するイベントを受信できます。 購読可能なチャンネルは利用する API キーのパーミッション設定によって制限されます。
通信が切断された場合や API キーが更新や無効化された場合、Private WebSocket は自動で切断されます。 お客様のプログラムで自動的な再接続機能の実装を推奨します。
接続フロー
1. 事前準備
- API キーの作成とパーミッション設定
- WebSocket にある購読するチャンネルにチェックを入れてください
- ACCESS-KEY と SECRET-KEY の取得
- 必要に応じて接続元の IP アドレスを設定してください
2. WebSocket 接続の確立
以下の URI に接続してください。
wss://stream.coincheck.com
3. 認証(login)
認証するには 認証 で前述した ACCESS-KEY、ACCESS-NONCE、ACCESS-SIGNATURE が必要となります。
4. チャンネル購読(subscribe)
認証に成功したら、購読したいチャンネルを subscribe してください。
Ruby 実装例
WebSocket API プライベートチャンネルの場合、uri は固定値で wss://stream.coincheck.com/private を指定する必要があります。
require 'uri'
require 'openssl'
key = "API_KEY"
secret = "API_SECRET"
# URI は固定値です
uri = URI.parse "wss://stream.coincheck.com/private"
nonce = (Time.now.to_f * 1000).to_i.to_s
# => "1756746080103"
message = nonce + uri.to_s
signature = OpenSSL::HMAC.hexdigest(
OpenSSL::Digest.new("sha256"),
secret,
message
)
# => "577ea3f3900bac682d65751d76fcc21ea11a8a57431e6e8e83efbba8effd4265"websocat を利用した接続例
websocat はコマンドライン上で WebSocket に接続できるツールです。Private WebSocket API の接続確認には websocat を使うことで、手軽にログインやチャンネル購読の動作を試すことができます。
上述の ACCESS-KEY、ACCESS-NONCE、ACCESS-SIGNATURE を用いて login したのち、プライベートチャンネルを subscribe します。subscribe したチャンネルを unsubscribe することも可能です。なお、subscribe を行うためには対象のチャンネルが 認証 で前述した「パーミッションの設定」で有効化されている必要があります。
$ websocat wss://stream.coincheck.com/
{"type":"login","access_key":"ACCESS_KEY","access_nonce":"1756746080103","access_signature":"577ea3f3900bac682d65751d76fcc21ea11a8a57431e6e8e83efbba8effd4265"}
{"success":true,"available_channels":["order-events","execution-events"]}
{"type":"subscribe","channels":["order-events","execution-events"]}
{"type":"unsubscribe","channels":["order-events"]}
^Cコマンド
login コマンド
認証を行います。
REQUEST ITEMS
{
"type":"login",
"access_key":"ACCESS-KEY",
"access_nonce":"ACCESS-NONCE",
"access_signature":"ACCESS-SIGNATURE"
}REQUEST EXAMPLE
{"type":"login","access_key":"ACCESS_KEY","access_nonce":"1756746080103","access_signature":"577ea3f3900bac682d65751d76fcc21ea11a8a57431e6e8e83efbba8effd4265"}RESPONSE ITEMS
{
"success": "認証が成功した場合 true, 失敗した場合 false",
"available_channels": "使用中の ACCESS-KEY で認可されているチャンネルの一覧"
}RESPONSE EXAMPLE
{
"success":true,
"available_channels":["order-events","execution-events"]
}subscribe コマンド
チャンネルの購読を開始します。
Private WebSocket API では1つの subscribe コマンドで複数のチャンネルを同時に購読できます。
REQUEST ITEMS
{
"type":"subscribe",
"channels": "購読を開始するチャンネル(配列形式で複数指定可能)"
}REQUEST EXAMPLE
{"type":"subscribe","channels":["order-events","execution-events"]}unsubscribe コマンド
チャンネルの購読を停止します。
REQUEST ITEMS
{
"type":"unsubscribe",
"channels": "購読を停止するチャンネルの一覧(配列形式で複数指定可能)"
}REQUEST EXAMPLE
{"type":"unsubscribe","channels":["order-events","execution-events"]}注文イベント通知チャンネル
注文イベント通知が配信されるチャンネルです。
配信対象の注文イベントの一覧は以下の通りです。
メッセージの再配信は行われませんので、受信できなかったメッセージの補完には REST API の 注文の詳細 をご利用ください。
REQUEST ITEMS
{"type":"subscribe","channels":["order-events"]}RESPONSE ITEMS
{
"channel": "チャンネル名称",
"id": "注文のID( 注文の詳細 のIDと同一です)",
"pair": "取引ペア",
"order_event": "注文イベント",
"order_type": "注文方法",
"rate": "注文のレート",
"stop_loss_rate": "逆指値レート",
"maker_fee_rate": "Makerとして注文を行った場合の手数料",
"taker_fee_rate": "Takerとして注文を行った場合の手数料",
"amount": "注文の量",
"market_buy_amount": "成行買で注文した日本円の金額",
"latest_executed_amount": "約定した量",
"latest_executed_market_buy_amount": "成行買で約定した日本円の金額",
"expired_type": "失効した理由",
"prevented_match_id": "対当した注文のID",
"expired_amount": "失効した量",
"expired_market_buy_amount": "成行買で失効した日本円の金額",
"time_in_force": "注文有効期間",
"event_time": "注文の作成日時"
}RESPONSE EXAMPLE
{
"channel": "order-events",
"id": 12345,
"pair": "btc_jpy",
"order_event": "EXPIRY",
"order_type": "buy",
"rate": "0.1",
"stop_loss_rate": null,
"maker_fee_rate": "0.001",
"taker_fee_rate": "0.001",
"amount": "1.0",
"market_buy_amount": null,
"latest_executed_amount": "0",
"latest_executed_market_buy_amount": null,
"expired_type": "self_trade_prevention",
"prevented_match_id": 123,
"expired_amount": "1.0",
"expired_market_buy_amount": null,
"time_in_force": "good_til_cancelled",
"event_time": "2015-01-10T05:55:38.000Z"
}約定イベント通知チャンネル
約定イベント通知が配信されるチャンネルです。
メッセージの再配信は行われませんので、受信できなかったメッセージの補完には REST API の 取引履歴 をご利用ください。
REQUEST ITEMS
{"type":"subscribe","channels":["execution-events"]}RESPONSE ITEMS
{
"channel": "チャンネル名称",
"id": "ID( 取引履歴 のIDと同一です)",
"order_id": "注文のID",
"event_time": "取引が行われた時間",
"funds": {
"btc": "各残高の増減分",
"jpy": "各残高の増減分"
},
"pair": "取引ペア",
"rate": "約定価格",
"fee_currency": "手数料の通貨",
"fee": "発生した手数料",
"liquidity": "'T' (Taker) or 'M' (Maker) or 'itayose'",
"side": "buy"
}RESPONSE EXAMPLE
{
"channel": "execution-events",
"id": 38,
"order_id": 49,
"event_time": "2015-11-18T07:02:21.000Z",
"funds": {
"btc": "0.1",
"jpy": "-4096.135"
},
"pair": "btc_jpy",
"rate": "40900.0",
"fee_currency": "JPY",
"fee": "6.135",
"liquidity": "T",
"side": "buy"
}