Overview

coincheck allows roughly two kinds of APIs; Public API and Private API.

Public API allows you to browse order status and order book.

Private API allows you to create and cancel new orders, and to check your balance.

Requast URL

https://coincheck.com

Authentication

Please authenticate to use a Private API.

Generate API Key

First, please create your API Key. You can create one here.

Please don't share your Access key and Secret Access key with others

Make a request using these keys.

Permission settings

By generating an API key, you can set a permission for each function.

And you can also give permission to IP addresses you prefer.

APIパーミッション設定のイメージ
Setting API permission

Making a Request

For requests that require authentication, you have to add information below to HTTP Header.

  • ACCESS-KEY Access key you genertaed at API key
  • ACCESS-NONCE Positive integer will increase every time you send request (managed for each API key). A common practice is to use UNIX time. Maximum value is 9223372036854775807.
  • ACCESS-SIGNATURE SIGNATURE mentioned later

Create Singature

SIGNATURE is a HMAC-SHA256 encoded message containing: ACCESS-NONCE, Request URL and Request body by using API key.

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"
  

Request sample

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 createHeader(String url) {
        Map map = new HashMap();
        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 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 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);
    }
}
  

Libraries

We developed a library for each programming language to be helpful when You use API of coincheck and distribute it.

Ruby

Librariy is available, if you execute the following commands than a command-line or

$ gem install ruby_coincheck_client

if you describe it as follows in Gemfile under Bundler environment.

gem 'ruby_coincheck_client'

We can download the gem file from GitHub.

 yuma300/ruby_coincheck_client

PHP

Add the following to composer.json.

  {
    "require": {
        "coincheck/coincheck": "1.0.0"
    }
  }
  

Package install

$ composer install

We can download the package file from GitHub.

 coincheckjp/coincheck-php

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

 dsaki/CoinCheckScala

Pagination

At Some API pagination of coincheck It is possible to get by dividing the data.

PARAMETERS

  • limit You can specify the number of acquisition per page.
  • order You can specify "desc" or "asc".
  • starting_after If you specify the ID you can set the start point of list.
  • ending_before If you specify the ID you can set the start point of list.
{"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

Public API allows you to browse order status, order transactions and order book.

Ticker

Check latest information

HTTP REQUEST

GET /api/ticker

{"last":27390,"bid":26900,"ask":27390,"high":27659,"low":26400,"volume":"50.29627103","timestamp":1423377841}

RESPONSE ITEMS

  • last Latest quote
  • bid Current highest buying order
  • ask Current lowest selling order
  • high The highest price within 24 hours
  • low The lowest price within 24 hours
  • volume 24 hours trading volume
  • timestamp Current time

Public trades

You can get current order transactions.

HTTP REQUEST

GET /api/trades

PARAMETERS

  • offset Skip as much as specify times.
[{"id":82,"amount":"0.28391","rate":35400,"order_type":"sell","created_at":"2015-01-10T05:55:38.000Z"},{"id":81,"amount":"0.1","rate":36120,"order_type":"buy","created_at":"2015-01-09T15:25:13.000Z"}]

Order Book

Fetch order book information.

HTTP REQUEST

GET /api/order_books

{"asks":[[27330,"2.25"],[27340,"0.45"]],"bids":[[27240,"1.1543"],[26800,"1.2226"]]}

RESPONSE ITEMS

  • asks Sell order status
  • bids Buy order status

Calc Rate

To calculate the rate from the order of the exchange.

HTTP REQUEST

GET /api/exchange/orders/rate

PARAMETERS

  • *order_type Order type("sell" or "buy"
  • *pair Specify deal pair. It's now only "btc_jpy".
  • amount Order amount (ex) 0.1
  • price Order price (ex) 28000
{"success":true,"rate": 60000, "price": 60000, "amount": 1.0}

RESPONSE ITEMS

  • rate Order rate
  • price Order price
  • amount Order amount

Buy Rate

Rate of Buy Coin.

HTTP REQUEST

GET /api/rate/[pair]

PARAMETERS

  • *pair pair ( "btc_jpy" "eth_jpy" "etc_jpy" "dao_jpy" "lsk_jpy" "fct_jpy" "xmr_jpy" "rep_jpy" "xrp_jpy" "zec_jpy" "xem_jpy" "ltc_jpy" "dash_jpy" "eth_btc" "etc_btc" "lsk_btc" "fct_btc" "xmr_btc" "rep_btc" "xrp_btc" "zec_btc" "xem_btc" "ltc_btc" "dash_btc" )
{"rate": "60000"}

RESPONSE ITEMS

  • rate rate

Private API

Private API allows you to order, cancel new orders and make sure your balance.

Order

You can use API about orders in exchange.

New order

Publish new order to exchange.

For example if you'd like buy 10 BTC as 30000 JPY/BTC, you need to specify following parameters.
rate: 30000, amount: 10, order_type: "buy", pair: "btc_jpy"

In case of buying order, if selling order which is lower than specify price is already exist, we settle in low price order. In case of to be short selling order, remain as unsettled order. It is also true for selling order.

About order_type

There 8 types of order_type .

  • "buy" Limit, Spot, Buy
  • "sell" Limit, Spot, Sell
  • "market_buy" Market, Spot, Buy
  • "market_sell" Market, Spot, Sell
  • "leverage_buy" Limit, LeverageOpen, Buy
  • "leverage_sell" Limit, LeverageOpen, Sell
  • "close_long" Limit, LeverageClose, Buy
  • "close_short" Limit, LeverageClose, Sell

"buy"

Limit, Spot, Buy

  • *rate Order rate. ex) 28000
  • *amount Order amount. ex) 0.1

"sell"

Limit, Spot, Sell

  • *rate Order rate. ex) 28000
  • *amount Order amount. ex) 0.1

"market_buy"

Market, Spot, Buy

In MarketBuy you have to specify JPY not BTC.

  • *market_buy_amount Market buy amount in JPY not BTC. ex) 10000

"market_sell"

Market, Spot, Sell

  • *amount Order amount. ex) 0.1

"leverage_buy"

Limit, LeverageOpen, Buy

  • rate Order rate. If this doesn't specified then this order behaves market order.
  • *amount Order amount. ex) 0.1

"leverage_sell"

Limit, LeverageOpen, Sell

  • rate Order rate. If this doesn't specified then this order behaves market order.
  • *amount Order amount. ex) 0.1

"close_long"

Limit, LeverageClose, Buy

This order is to close an open position. If you have long position you can close that with close_long order.

  • rate Order rate. If this doesn't specified then this order behaves market order.
  • *amount Order amount. ex) 0.1
  • *position_id Close position id.

"close_short"

Limit, LeverageClose, Sell

This order is to close an open position. If you have long position you can close that with close_long order.

  • rate Order rate. If this doesn't specified then this order behaves market order.
  • *amount Order amount. ex) 0.1
  • *position_id Close position id.

HTTP REQUEST

POST /api/exchange/orders

PARAMETERS

  • *pair Specify deal pair. It's now only "btc_jpy".
  • *order_type Specify order_type.
  • rate Order rate. ex) 28000
  • amount Order amount. ex) 0.1
  • market_buy_amount Market buy amount in JPY not BTC. ex) 10000
  • position_id Close position id.
  • stop_loss_rate Stop Loss Rate (What is Stop Loss Order?)
{"success": true, "id": 12345, "rate": "30010.0", "amount": "1.3", "order_type": "sell", "stop_loss_rate": null, "pair": "btc_jpy", "created_at": "2015-01-10T05:55:38.000Z"}

RESPONSE ITEMS

  • id New order ID
  • rate Order rate
  • amount Order amount
  • order_type Order type
  • stop_loss_rate Stop Loss Rate
  • pair Deal pair
  • created_at Order date

Unsettled order list

You can get a unsettled order list.

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 Order ID(It's the same ID in New order.)
  • rate Order rate ( Market order if null)
  • pending_amount Unsettle order amount
  • pending_market_buy_amount Unsettled order amount (only for spot market buy order)
  • order_type order type("sell" or "buy"
  • stop_loss_rate Stop Loss Order's Rate
  • pair Deal pair
  • created_at Order date

Cancel Order

New OrderOr, you can cancel by specifyingunsettle order list's ID.

HTTP REQUEST

DELETE /api/exchange/orders/[id]

PARAMETERS

{"success": true, "id": 12345}

RESPONSE ITEMS

  • id Canceled order ID

Transaction history

Display your transaction history

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 Order ID
  • created_at Ordered time
  • funds Each fund balance's increase and decrease
  • pair Pair
  • rate Rate
  • fee_currency Fee currency
  • fee Fee amount
  • liquidity "T" ( Taker ) or "M" ( Maker )
  • side "sell" or "buy"

Transaction history (Pagination)

Display your transaction history

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 Order ID
  • created_at Ordered time
  • funds Each fund balance's increase and decrease
  • pair Pair
  • rate Rate
  • fee_currency Fee currency
  • fee Fee amount
  • liquidity "T" ( Taker ) or "M" ( Maker )
  • side "sell" or "buy"

Positions List

You can get Leverage Position list. New leverage order is available on New Order .

HTTP REQUEST

GET /api/exchange/leverage/positions

PARAMETERS

  • status You can specify "open" or "closed"
{"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"}]}]}

RESPONSE ITEMS

  • id ID
  • pair Currency Pair
  • status Position status ( "open", "closed" )
  • created_at Position's created_at
  • closed_at Position's closed_at
  • open_rate Average open rate
  • closed_rate Average close rate
  • amount Current amount
  • all_amount All contracted amount
  • side Side ( "buy", "sell" )
  • pl Profit and Loss
  • new_order About new order
  • close_orders About closed orders

Account

You can get balance and various information.

Balance

Check your account balance.

It doesn't include jpy_reserved use unsettled orders injpy btc.

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"}

RESPONSE ITEMS

  • jpy Balance for JPY
  • btc Balance for BTC
  • jpy_reserved Amount of JPY for unsettled buying order
  • btc_reserved Amount of BTC for unsettled selling order
  • jpy_lend_in_use JPY amount you are applying for lending (We don't allow you to loan JPY.)
  • btc_lend_in_use BTC Amount you are applying for lending (We don't allow you to loan BTC.)
  • jpy_lent JPY lending amount (Currently, we don't allow you to loan JPY.)
  • btc_lent BTC lending amount (Currently, we don't allow you to loan BTC.)
  • jpy_debt JPY borrowing amount
  • btc_debt BTC borrowing amount

Leverage Balance

Check your leverage account's balance.

HTTP REQUEST

GET /api/accounts/leverage_balance

{"success":true,"margin":{"jpy":"131767.22675655"},"margin_available":{"jpy":"116995.98446494"},"margin_level":"8.36743"}

RESPONSE ITEMS

  • margin[jpy] Margin money balance (JPY)
  • margin_available[jpy] Available Margin money (JPY)
  • margin_level Margin Maintenance Rate

Send BTC

Sending Bitcoin to specified Bitcoin address

HTTP REQUEST

POST /api/send_money

PARAMETERS

  • *address Destination Address sending BTC to
  • *amount Amount of sending BTC
{"success": true, "id": "276", "address": "1v6zFvyNPgdRvhUufkRoTtgyiw1xigncc", "amount": "1.5", "fee": "0.002"}

RESPONSE ITEMS

  • id Send
  • address Recipient's bitcoin address
  • amount Amount of bitcoins sent
  • fee fee

Sending History

BTC Sending history

HTTP REQUEST

GET /api/send_money

PARAMETERS

  • *currency Currency(Only 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 Send
  • amount Amount of bitcoins sent
  • fee Fee
  • currency Currency
  • address Recipient's bitcoin address
  • created_at Date you sent

Deposits History

BTC deposit history

HTTP REQUEST

GET /api/deposit_money

  • *currency Currency(BTC now)
{"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 Received ID
  • amount Amount of BTC received
  • currency Currency
  • address Bitcoin address you reveived BTC
  • status Status
  • confirmed_at Date Confirmed
  • created_at Date when receiving process started

Fast bitcoin deposit

Fast deposit BTC you're receiving.About Fast Deposit

HTTP REQUEST

POST /api/deposit_money/[id]/fast

PARAMETERS

{"success": true}

Account information

Display account information.

HTTP REQUEST

GET /api/accounts

{"success": true, "id": 10000, "email": "test@gmail.com", "identity_status": "identity_pending", "bitcoin_address": "1v6zFvyNPgdRvhUufkRoTtgyiw1xigncc", "lending_leverage": "3.0", "taker_fee": "0.15", "maker_fee": "0.0" }

RESPONSE ITEMS

  • id Account ID. It's the same as the ID you specify when you deposit JPY.
  • email Registered e-mail
  • identity_status Your identity status.
  • bitcoin_address Your bitcoin address for deposit
  • lending_leverage Your lending leverage.
  • taker_fee It displays the fee in the case of performing the order as Taker.
  • maker_fee It displays the fee in the case of performing the order as Maker.

Withdraw JPY

You can withdraw JPY through this API.

Bank account list

Display list of bank account you registered (withdrawal).

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 Bank name
  • branch_name Branch name
  • bank_account_type Type of bank account
  • number Bank account number
  • name Bank account name

Register bank account

Register bank account for withdrawal.

HTTP REQUEST

POST /api/bank_accounts

PARAMETERS

  • *bank_name Bank name
  • *branch_name Branch name
  • *bank_account_type Type of bank account ( "futsu" or "toza" )
  • *number Bank account number (ex) "0123456"
  • *name Bank account name
{"success":true,"data":{"id":641,"bank_name":"熊本","branch_name":"田中","bank_account_type":"futsu","number":"0123456","name":"hoge"}}

RESPONSE ITEMS

  • id ID
  • bank_name Bank name
  • branch_name Branch name
  • bank_account_type Type of bank account ( "futsu" or "toza" )
  • number Bank account number (ex) "0123456"
  • name Bank account name

Remove bank account

Will remove your bank account.

HTTP REQUEST

DELETE /api/bank_accounts/[id]

PARAMETERS

{"success":true}

Withdraw history

Display Japanese YEN withdrawal request history.

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 Withdraw status ( pending, processing, finished, canceled )
  • amount Amount
  • currency Currency
  • created_at Date you created
  • bank_account_id Bank account ID
  • fee Fee
  • is_fast fast withdraw option

Create withdraw

Request Japanese Yen withdrawal

HTTP REQUEST

POST /api/withdraws

PARAMETERS

  • *bank_account_id Bank account ID
  • *amount Amount
  • *currency Currency ( only "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 Withdraw status ( pending, processing, finished, canceled )
  • amount Amount
  • currency Currency ( only "JPY" )
  • created_at Date you created
  • bank_account_id Bank account ID
  • fee Fee

Cancel withdrawal

Cancel withdrawal request.

You can only cancel a withdrawal request that has the pending status.

HTTP REQUEST

DELETE /api/withdraws/[id]

PARAMETERS

{"success":true}

Margin Trade

At coincheck, you can do margin trading by borrowing Bitcoin, Ether or ETC.

We set maximum leverage to 3x.

Max leverage 5.0x will be applied only to the user who submitted the identification documents.

For example, if you borrow Bitcoins and recognize it as JPY for margin money. And you can carry out short selling by repaying.

For more information please read, Margin Trade.

Apply for a new loan

Apply for a new loan

HTTP REQUEST

POST /api/lending/borrows

PARAMETERS

  • *amount Amount you want to borrow
  • *currency Currency (BTC, ETH)
{"success": true, "id": 12345, "rate": "0.0005", "amount": "1.3", "currency": "BTC", "created_at": "2015-01-10T05:55:38.000Z"}

RESPONSE ITEMS

  • id ID
  • rate Rate per day(fixed 0.05%)
  • amount Order Amount
  • currency Currency
  • created_at Date you applied

Borrowing List

Display borrowing list.

Based on this id, you can repay.

HTTP REQUEST

GET /api/lending/borrows/matches

{"success": true, "matches": [{"id": 12345, "borrow_id": 6789, "rate": "0.0005", "amount": "1.3", "pending_amount": "1.30065", "currency": "BTC", "deadline": "2015-01-10T05:55:38.000Z"}]}

RESPONSE ITEMS

  • id ID
  • borrow_id Apply borrowing's ID
  • rate Rate per day(fixed 0.05% now)
  • amount Amount you borrowed
  • pending_amount Amount you borrowed(with the interest)
  • currency Currency
  • deadline Date for repay

Repay

Based on this id, you can repay.

HTTP REQUEST

POST /api/lending/borrows/[id]/repay

PARAMETERS

{"success": true, "id": 12345}

RESPONSE ITEMS

  • id ID

Account transfers

Transfers JPY between spot account and leverage account

Transfers to Leverage Account

Transfers Leverage Account from Spot Account.

HTTP REQUEST

POST /api/exchange/transfers/to_leverage

PARAMETERS

  • *currency Currency (Only JPY now)
  • *amount Amount
{"success":true}

Transfers from Leverage Account

Transfers Spot Account from Leverage Account.

HTTP REQUEST

POST /api/exchange/transfers/from_leverage

PARAMETERS

  • *currency Currency (Only JPY now)
  • *amount Amount
{"success":true}

WebSocket API (beta)

The WebSocket API enables real-time transaction that is hard to implement with HTTP. With WebSocket API you can fetch Coincheck orderbook information and transaction history seamlessly.

Since the WebSocket API is still in beta, the specification may change, or operation may be unstable. Also, only "btc_jpy" is available as a currency pair. (As of March 3, 2017)

Overview

WebSocket Connection

wss://ws-api.coincheck.com/

Subscribe

To begin receiving messages, you must first send a subscribe message to the server indicating which product messages to receive. This message must be JSON format.

Example

//JavaScript
//Run in 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"}))

Public Channels

Public channel is a channel that does not require authentication.

Public trades

You can get current order transactions.

ex) [pair] = btc_jpy

REQUEST

{"type":"subscribe","channel":"[pair]-trades"}

RESPONSE

[2357062,"[pair]","148638.0","5.0","sell"]
[2357068,"[pair]","148642.0","0.7828","buy"]

RESPONSE ITEMS

["ID","Currency pair","Order rate","Order amount","Specify order_type."]

Order Book

Send the difference of order book information at regular intervals.

ex) [pair] = btc_jpy

REQUEST

{"type":"subscribe", "channel":"[pair]-orderbook"}

RESPONSE

["[pair]",{"bids":[["148634.0","0"],["148633.0","0.0574"]],"asks":[["148834.0","0"],["148833.0","1.0581"]]}]

RESPONSE ITEMS

  • asks Sell order status
  • bids Buy order status
["Order rate","Order amount"]

日本語で表示しますか?

はい いいえ もう表示しない

Show in English?

Yes No Never