当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。
当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。
あらかじめご了承ください。
2017/12/19に仕様変更がありましたので記事を修正しました。
取引履歴取得APIの仕様変更について
https://coincheck.com/blog/4599
PHPを使って Coincheck の全取引履歴の使用例を以下に記します。
public APIなので Coincheck に取引口座を開設していなくても使用することができます。
全取引履歴のAPI仕様(Coincheck APIページから抜粋)
https://coincheck.com/ja/documents/exchange/api#public-trades
全取引履歴 最新の取引履歴を取得できます。 HTTP REQUEST GET /api/trades PARAMETERS *pair 取引ペア。現在は "btc_jpy" のみです。
またページネーションパラメータを指定して件数や並び順を指定することができます。
ページネーション coincheckの一部APIではページネーションにてデータを分割して取得することが可能です。
PARAMETERS limit 1ページあたりの取得件数を指定できます。 order "desc", "asc" を指定できます。 starting_after IDを指定すると絞り込みの開始位置を設定できます。 ending_before IDを指定すると絞り込みの終了位置を設定できます。
GETなのでブラウザで全取引履歴を取得することができます。
以下のようなURLになります。
https://coincheck.com/api/trades?pair=btc_jpy
50件取得(limit=50)
https://coincheck.com/api/trades?pair=btc_jpy&limt=50
以下ブラウザから上記URLにアクセスしたときの出力です。
PHPのサンプルソースは以下のようになります。
<?php
// API doc : https://coincheck.com/ja/documents/exchange/api#public-trades
// API url : https://coincheck.com/api/trades
$coincheck_url = "https://coincheck.com";
$trades_api = "/api/trades";
$url = $coincheck_url . $trades_api;
// arguments -> http query
$options = getopt("l:");
if (!check_arguments($options)) {
usage();
die(1);
}
$http_query = array(
"pair"=>"btc_jpy"
);
foreach ($options as $key => $value) {
if ($key == "l") { $http_query["limit"] = $value; }
}
if (count($http_query) > 0) {
$url = $url . "?" . http_build_query($http_query);
}
// proxy settings
$proxy = "";
$proxy_port = "";
$curl = curl_init();
if ($curl == FALSE) {
fputs(STDERR, "[ERR] curl_init(): " . curl_error($curl) . PHP_EOL);
die(1);
}
// curl set options
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
// set proxy server settings
if (!empty($proxy) && !empty($proxy_port)) {
curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($curl, CURLOPT_PROXY, $proxy . ":" . $proxy_port);
curl_setopt($curl, CURLOPT_PROXYPORT, $proxy_port);
}
// call trades api
$response = curl_exec($curl);
if ($response == FALSE) {
fputs(STDERR, "[ERR] curl_exec(): " . curl_error($curl) . PHP_EOL);
die(1);
}
curl_close($curl);
// json decode
$json_decode = json_decode($response, true);
if ($json_decode == NULL) {
fputs(STDERR, "[ERR] json_decode(): " . json_last_error_msg() . PHP_EOL);
die(1);
}
// output json_decode
print_r($json_decode);
exit(0);
//----------------------------------------------------------
// functions
//----------------------------------------------------------
function check_arguments($options) {
if (array_key_exists("l", $options)) {
if (!ctype_digit($options["l"])) {
return FALSE;
}
}
return TRUE;
}
function usage() {
$usage =
"Uasge: php trades.php [-l limit]" . PHP_EOL .
"Options:" . PHP_EOL .
" -l : limit " . PHP_EOL .
PHP_EOL;
fputs(STDERR, $usage);
}
上記のPHPサンプルソースを実行してみます。
オプション-lにより指定された数分表示します。
数の範囲は0〜99のようです。
$ php trades.php | head -30
Array
(
[success] => 1
[pagination] => Array
(
[limit] => 10
[order] => desc
[starting_after] =>
[ending_before] =>
)
[data] => Array
(
[0] => Array
(
[id] => 63673299
[amount] => 0.009
[rate] => 2110080
[pair] => btc_jpy
[order_type] => sell
[created_at] => 2017-12-19T15:20:01.000Z
)
[1] => Array
(
[id] => 63673298
[amount] => 0.03
[rate] => 2110080
[pair] => btc_jpy
[order_type] => sell
$ php trades.php -l 1
Array
(
[success] => 1
[pagination] => Array
(
[limit] => 1
[order] => desc
[starting_after] =>
[ending_before] =>
)
[data] => Array
(
[0] => Array
(
[id] => 63673728
[amount] => 0.007
[rate] => 2109969
[pair] => btc_jpy
[order_type] => sell
[created_at] => 2017-12-19T15:21:24.000Z
)
)
)
BTC/JPYの取引履歴が返却されます。
以上、 Coincheck のpublic APIである全取引履歴APIのブラウザによるアクセスとPHPによる全取引履歴呼び出しのサンプルコードの記事でした。