取引所 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-KEY APIキー で作成したアクセスキー
- ACCESS-NONCE 毎リクエストごとに増加する必要のある正の整数。通常はUNIXタイムスタンプを用います。最大値は 9223372036854775807 です。APIキーごとに管理されます。
- ACCESS-SIGNATURE 後述するSIGNATURE
SIGNATUREの作成
SIGNATUREは、ACCESS-NONCE, リクエスト先URL, リクエストのボディ を全て文字列にし連結したものを、HMAC-SHA256 hash形式でシークレットキーを使って署名した結果です。
Ruby
require "openssl" nonce = Time.now.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 = time(); $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_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() / 1000L; 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
- limit 1ページあたりの取得件数を指定できます。
- order "desc", "asc" を指定できます。
- starting_after IDを指定すると絞り込みの開始位置を設定できます。
- ending_before IDを指定すると絞り込みの終了位置を設定できます。
{"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, plt_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_jpyが利用可能です。
{"last":27390,"bid":26900,"ask":27390,"high":27659,"low":26400,"volume":"50.29627103","timestamp":1423377841}
RESPONSE ITEMS
- last 最後の取引の価格
- bid 現在の買い注文の最高価格
- ask 現在の売り注文の最安価格
- high 24時間での最高取引価格
- low 24時間での最安取引価格
- volume 24時間での取引量
- 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, plt_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_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"}]}
板情報
板情報を取得できます。
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, plt_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_jpyが利用可能です。
- amount 注文での量。(例)0.1
- price 注文での金額。(例)28000
- ※ priceまたはamountのいずれかをパラメータとして指定する必要があります。
{"success":true,"rate": 60000, "price": 60000, "amount": 1.0}
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, plt_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_jpyが利用可能です。
{ "exchange_status": [ { "pair": "btc_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "eth_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "etc_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "lsk_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "xrp_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "xem_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "bch_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "mona_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "iost_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "enj_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "chz_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "imx_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "shib_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "avax_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "plt_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "fnct_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "dai_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "wbtc_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "bril_jpy", "status": "available", "timestamp": 1732178875, "availability": { "order": true, "market_order": true, "cancel": true } }, { "pair": "bc_jpy", "status": "available", "timestamp": 1732178875, "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, plt_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_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_TRIGGER stoploss等の条件発動前
- *PARTIALLY_FILLED 部分約定済
- *FILLED 全約定済
- *CANCELED キャンセル済
- *EXPIRED 失効済
- *PARTIALLY_FILLED_CANCELED 部分約定済かつキャンセル済
- *PARTIALLY_FILLED_EXPIRED 部分約定済かつ失効済
- order_type 注文のタイプ(新規注文でのorder_typeと同一です)
- rate 注文のレート( null の場合は成り行き注文です)
- stop_loss_rate 逆指値レート
- taker_fee_rate Takerとして注文を行った場合の手数料
- taker_fee_rate Makerとして注文を行った場合の手数料
- amount 注文の量
- market_buy_amount 成行買で注文した日本円の金額
- executed_amount 約定した量
- executed_market_buy_amount 成行買で約定した日本円の金額
-
expired_type
失効した理由
- *self_trade_prevention 対当売買による失効
- *price_limit 値幅制限による失効
- *post_only post_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
- id ID
- order_id 注文のID
- created_at 取引が行われた時間
- funds 各残高の増減分
- pair 取引ペア
- rate 約定価格
- fee_currency 手数料の通貨
- fee 発生した手数料
- liquidity "T" ( Taker ) or "M" ( Maker )
- 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
- id ID
- order_id 注文のID
- created_at 取引が行われた時間
- funds 各残高の増減分
- pair 取引ペア
- rate 約定価格
- fee_currency 手数料の通貨
- fee 発生した手数料
- liquidity "T" ( Taker ) or "M" ( Maker )
- 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_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_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" }, "plt_jpy": { "maker_fee_rate": "0.05", "taker_fee_rate": "0.1" }, "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" } } }
RESPONSE ITEMS
- id アカウントのID。日本円入金の際に指定するIDと一致します。
- email 登録されたメールアドレス
- identity_status 本人確認書類の提出状況を表示します。
- bitcoin_address あなたのデポジット用ビットコインのアドレス
- taker_fee Takerとして注文を行った場合の手数料(%)を表示します。(BTC_JPY)
- maker_fee Makerとして注文を行った場合の手数料(%)を表示します。(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
- id ID
- 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
- id ID
- 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
- id ID
- 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
- id ID
- 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 β版
WebSocket APIはHTTP通信では実装が難しかった、リアルタイムでのやり取りが容易になり、取引所で公開されている取引の履歴、板情報を取得することができます。
WebSocket APIはβ版であるため、仕様に変更があったり、動作が不安定になる可能性があります。また、利用可能な通貨ペアは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, plt_jpy, fnct_jpy, dai_jpy, wbtc_jpy, bril_jpy, bc_jpyになります。(2020/09時点)
概要
WebSocket 接続先
wss://ws-api.coincheck.com/
Subscribe
メッセージの受信を開始するには、まずSubscribeを示すリクエストをサーバーに送信する必要があります。このリクエストはJSONエンコードされている必要があります。
テスト方法
//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"}))
パブリックチャンネル
パブリックチャンネルは認証を必要としないチャンネルです。
取引履歴
0.1秒間隔で発生した取引を、配信タイムスタンプ付きで1件ずつ受信できます。
REQUEST ITEMS
{"type":"subscribe","channel":"[pair]-trades"}
RESPONSE ITEMS
["約定タイムスタンプ (unix時間)", "約定ID","取引ペア","約定のレート","約定の量","注文方法","Takerの注文ID","Makerの注文ID"]
※ Takerの注文情報のみが配信されます。
REQUEST EXAMPLE
{"type":"subscribe","channel":"btc_jpy-trades"}
RESPONSE EXAMPLES
※ 2次元配列として配信されます。
[["1663318663","2357062","btc_jpy","2820896.0","5.0","sell","1193401","2078767"],["1663318892","2357068","btc_jpy","2820357.0","0.7828","buy","4456513","8046665"]]
板情報
板情報の差分を一定間隔で送信します。
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"}]