コアダンプの数だけ強くなれるよ

見習いエンジニアの備忘log

各社のAPIを使って仮想通貨の価格を表示してみる

以前はcoincheckのAPIだけ使っていましたが、仮想通貨の取引所も増えてきましたので他の取引所が提供しているAPIを試してみました。 pythonで仮想通貨の価格(日本円)表示します。

www.segmentation-fault.xyz

Zaif


APIの公式ドキュメントは下記。

corp.zaif.jp

ソースコード

#!/usr/local/bin/python
# -*- coding: utf-8 -*-

import requests
import json

coins = [
            [1,  'BTC',  'btc_jpy'],
            [2,  'XEM',  'xem_jpy'],
            [3,  'MONA', 'mona_jpy'],
        ]

urlbase = 'https://api.zaif.jp/api/1/last_price/'

def main():
    for i in range(len(coins)):
        response = requests.get(urlbase+coins[i][2])
        if response.status_code != 200:
            raise Exception('return status code is {}'.format(response.status_code))

        rate = json.loads(response.text)

        print("%-4s : \%-10s" % (coins[i][1], rate['last_price']))

if __name__ == "__main__":
    main()


実行結果

[user@localhost zaif]$ date
Sun Nov 12 20:59:35 JST 2017

[user@localhost zaif]$ /usr/local/bin/python3 zaif.py
BTC  : \720000.0
XEM  : \21.1
MONA : \305.7


bitflyer


APIの公式ドキュメントは下記。

lightning.bitflyer.jp

ソースコード

#!/usr/local/bin/python
# -*- coding: utf-8 -*-

import requests
import json

coins = [
            [1,  'BTC',    'btc_jpy'],
            [2,  'FX_BTC', 'fx_btc_jpy'],
        ]

urlbase = 'https://api.bitflyer.jp/v1/getticker?product_code='

def main():
    for i in range(len(coins)):
        response = requests.get(urlbase+coins[i][2])
        if response.status_code != 200:
            raise Exception('return status code is {}'.format(response.status_code))

        rate = json.loads(response.text)

        print("%-6s : \%-10s" % (coins[i][1], rate['ltp']))

if __name__ == "__main__":
    main()


実行結果

[user@localhost bitflyer]$ /usr/local/bin/python3 bitflyer.py
BTC    : \710919.0
FX_BTC : \717699.0


bitbank


APIの公式ドキュメントは下記。

docs.bitbank.cc

ソースコード

#!/usr/local/bin/python
# -*- coding: utf-8 -*-

import requests
import json

coins = [
            [1,  'BTC',     'btc_jpy'],
            [2,  'XRP',     'xrp_jpy'],
            [3,  'MONA',    'mona_jpy'],
            [4,  'BCC(BCH)','bcc_jpy'],
        ]

urlbase = 'https://public.bitbank.cc/'

def main():
    for i in range(len(coins)):
        response = requests.get(urlbase+coins[i][2]+'/ticker')
        if response.status_code != 200:
            raise Exception('return status code is {}'.format(response.status_code))

        result = json.loads(response.text)

        print("%-8s : \%-10s" % (coins[i][1], result['data']['last']))

if __name__ == "__main__":
    main()


実行結果

[user@localhost bitbank]$ date
Sun Nov 12 21:18:20 JST 2017

[user@localhost bitbank]$ /usr/local/bin/python3 bitbank.py
BTC      : \718474
XRP      : \22.762
MONA     : \320.000
BCC(BCH) : \180365


BTCBOX


APIの公式ドキュメントは下記。

https://www.btcbox.co.jp/help/asm

ソースコード

#!/usr/local/bin/python
# -*- coding: utf-8 -*-

import requests
import json

ticker = 'https://www.btcbox.co.jp/api/v1/ticker/'

def main():
    response = requests.get(ticker)
    if response.status_code != 200:
        raise Exception('return status code is {}'.format(response.status_code))

    rate = json.loads(response.text)

    print("BTC_JPY : \%-10s" % (rate['last']))

if __name__ == "__main__":
    main()


実行結果

[user@localhost btcbox]$ date
Sun Nov 12 21:26:59 JST 2017

[user@localhost btcbox]$ /usr/local/bin/python3 btcbox.py
BTC_JPY : \710030


kraken


APIの公式ドキュメントは下記。

www.kraken.com

ソースコード

#!/usr/local/bin/python
# -*- coding: utf-8 -*-

import requests
import json

coins = [
            [1,  'XBT(BTC)', 'xbtjpy', 'XXBTZJPY'],
            [2,  'ETH',      'ethjpy', 'XETHZJPY'],
        ]

urlbase = 'https://api.kraken.com/0/public/Ticker?pair='

def main():
    for i in range(len(coins)):
        response = requests.get(urlbase+coins[i][2])
        if response.status_code != 200:
            raise Exception('return status code is {}'.format(response.status_code))

        rate = json.loads(response.text)

        print("%-8s : \%-10s" % (coins[i][1], rate['result'][coins[i][3]]['c'][0]))

if __name__ == "__main__":
    main()


実行結果

[user@localhost kraken]$ date
Sun Nov 12 21:45:18 JST 2017

[user@localhost kraken]$ /usr/local/bin/python3 kraken.py
XBT(BTC) : \714001.000
ETH      : \34330.00000


まとめ


国内の取引所の差額なんかを一覧にしてみるのも面白そうですね。