1. はじめに
こんにちは!
この記事では、Pythonを使って仮想通貨ビットコインの価格や取引データを自動で取得する方法を、やさしく解説していきます。
「ビットコインの価格をリアルタイムで取得できたら面白そう!」「自動売買に興味あるけど、何から始めたらいいの?」
そんなあなたにぴったりの内容です。
今回ご紹介するのは、**Coincheck(コインチェック)という国内取引所が提供しているAPI(エーピーアイ)**を使って、次の3つのデータを取得する方法です。
- 最新のビットコイン価格(ticker)
- 直近の取引履歴(trades)
- 売り・買い注文の情報(板情報:order_books)
しかもこれらは**アカウント登録不要・認証なしで使える「パブリックAPI」**なので、すぐにPythonコードで試すことができます!
プログラミング初心者の方でも、コピペで動くコードを使いながら順番に解説していきますので安心してくださいね。
このシリーズでは、最終的に「ビットコインの自動売買Botを作る」ところまで目指します。
今回はその第2ステップとして、「APIでデータを取得する練習編」です!
2. Coincheck APIとは?|初心者にもわかる概要解説
まずは、「そもそもAPIってなに?CoincheckのAPIって安全に使えるの?」と疑問に思った方のために、ざっくりと仕組みを見ていきましょう。
💡 APIってなに?
APIとは、「他のサービスとやり取りするための入り口(窓口)」のようなものです。
Coincheckの場合、「ビットコインの価格を教えて!」「取引履歴を教えて!」とPythonからリクエストを送ると、Coincheckがそれに応じたデータを返してくれる…そんなイメージです。
たとえば、レストランでウェイターさんに「ハンバーグください」と注文するような感じですね。Pythonが「注文(リクエスト)」を出して、Coincheckが「料理(データ)」を返してくれるというわけです。
🏦 Coincheck APIには2種類ある
CoincheckのAPIには、大きく分けて2種類あります。
| 種類 | 内容 | 認証の有無 |
|---|---|---|
| パブリックAPI | 誰でも使える基本的な情報の取得 | 不要 |
| プライベートAPI | 注文や残高確認などのアカウント操作 | 必要 |
今回使うのは、上のパブリックAPIです。
アカウント登録なしで使えるので、初心者でも気軽に試せるのがうれしいポイントです。
🚧 パブリックAPIの制限と注意点
便利なAPIですが、いくつか知っておきたい注意点もあります。
- アクセス制限(レートリミット):1秒間に何十回も連続アクセスすると、エラーになります。基本的には1〜2秒に1回までが目安です。
- APIの安定性:まれにメンテナンス中や混雑時に取得に失敗することもあります。プログラム側でエラー処理を入れておくと安心です。
- 商用利用の可否:データを商用に使いたい場合は、Coincheckの利用規約を事前に確認してください。

それでは、実際にビットコインの価格を取得するコードを書いていきましょう!
3. ビットコインの最新価格を取得しよう(ticker)
まず最初は、ビットコインの最新価格をPythonで取得する方法を見ていきましょう。
Coincheckが提供している「ticker API」を使うと、リアルタイムの価格情報が簡単に手に入ります!
📡 使用するAPIエンドポイント
https://coincheck.com/api/ticker
このURLにアクセスするだけで、最新の取引価格や過去24時間の最高値・最安値、取引量などを取得できます。
🛠 使用するPythonライブラリ
ここでは、Pythonの標準的なライブラリである requests を使ってHTTPリクエストを送ります。
まずはライブラリをインストールしましょう(インストール済みなら不要です)。
pip install requests
🧑💻 実際のPythonコード
以下が、ビットコインの最新価格を取得するコードです。
import requests
# CoincheckのティッカーAPIのURL
url = "https://coincheck.com/api/ticker"
# GETリクエストを送信
response = requests.get(url)
# JSON形式でデータを取得
data = response.json()
# 最終取引価格(last)を取得
latest_price = data["last"]
print(f"ビットコインの最新価格: {latest_price} 円")
📝 実行結果(例)
ビットコインの最新価格: 9100000 円
※価格は一例です。実行するたびにリアルタイムで変わります。
🧠 補足:取得できる情報一覧
ticker APIで取得できる主なデータは以下の通りです。
| キー名 | 説明 |
|---|---|
last | 最後に取引された価格 |
high | 24時間での最高取引価格 |
low | 24時間での最安取引価格 |
volume | 24時間の取引量(BTC単位) |
bid | 現在の買い注文の最上価格 |
ask | 現在の売り注文の最安価格 |
timestamp | UNIXタイムスタンプ |
👀 価格の見方と使い道
取得した last の値は、実際のCoincheckの画面に表示される「現在価格」とほぼ同じです。
このデータを使えば、
- リアルタイム価格のグラフ描画
- 一定の価格を下回ったときに通知
- 自動売買の購入判断
といったこともできるようになります!
4. 取引履歴(トレード履歴)を取得する(trades)
今度は、実際に行われたビットコインの取引履歴を取得してみましょう。
「どんな価格で、どれくらいの量が、買われたり売られたりしているのか」を知ることができます。
これは、自動売買の判断材料としても、データ分析にもとっても重要な情報です!
📡 使用するAPIエンドポイント
https://coincheck.com/api/trades
ただし!このAPIには注意点があります。
そのままアクセスすると、次のようなエラーが出てしまいます:
{"success":false,"error":"Invalid pair."}
⚠️ エラー回避のポイント:「pair」を指定する
このエラーの原因は、「どの通貨ペアの履歴を見たいのか?」という情報が足りないからです。
そこで、リクエスト時に次のようなパラメータを追加します:
params = {
"pair": "btc_jpy" # ビットコインと日本円の取引履歴を取得
}
これで無事にデータを取得できます!
🧑💻 実際のPythonコード
import requests
url = "https://coincheck.com/api/trades"
# 通貨ペアを指定(btc_jpy)
params = {
"pair": "btc_jpy",
"limit": 10 # 最大100件まで指定可能(デフォルトは10件)
}
# APIリクエスト
response = requests.get(url, params=params)
# 結果をJSONで取得
data = response.json()
# トレードデータを表示
for i, trade in enumerate(data["data"], 1):
print(f"{i}件目: {trade['created_at']} / {trade['order_type']} / {trade['rate']}円 / {trade['amount']} BTC")
📝 実行結果(例)
1件目: 2025-06-19T03:10:45.000Z / sell / 9100000円 / 0.01 BTC
2件目: 2025-06-19T03:09:44.000Z / buy / 9095000円 / 0.02 BTC
...(以下省略)
🔍 取得できる情報の内容
| キー名 | 内容 |
|---|---|
created_at | 取引日時(ISO8601形式) |
order_type | 売買区分(buy / sell) |
rate | 取引レート(円) |
amount | 取引量(BTC単位) |
id | 一意の取引ID(分析用) |
🕒 時間に注意!ロンドン時間です
取得される created_at はロンドン時間(UTC)で表示されます。
日本時間に合わせたいときは、9時間を加算してください。
from datetime import datetime, timedelta
dt = datetime.strptime("2025-06-19T03:10:45.000Z", "%Y-%m-%dT%H:%M:%S.000Z")
dt_japan = dt + timedelta(hours=9)
print("日本時間:", dt_japan)
💡 こんな使い方もできる!
- 直近の買いと売りの割合を可視化(円グラフなど)
- 価格帯ごとの取引量を集計してヒートマップ化
- 一定期間内の売買動向をもとに、売買シグナルの判定
5. 板情報(オーダーブック)を取得する(order_books)
最後にご紹介するのは、現在の注文状況(板情報)を取得する方法です。
これは「今この価格で売りたい人・買いたい人がどれくらいいるか?」を一覧で見ることができる、非常に重要なデータです。
自動売買では、注文を出すときのタイミング判断や価格設定に使われます。
📡 使用するAPIエンドポイント
https://coincheck.com/api/order_books
このエンドポイントは、ビットコインの板情報に特化しているため、通貨ペアなどのパラメータは不要です。
🔍 板情報の構造
取得されるデータは、以下の2つに分かれています:
asks:売り注文(価格の安い順)bids:買い注文(価格の高い順)
それぞれ、[価格, 数量]のリストとして格納されています。
🧑💻 実際のPythonコード
import requests
url = "https://coincheck.com/api/order_books"
# APIリクエスト
response = requests.get(url)
data = response.json()
# 売り注文(asks)と買い注文(bids)を取得
asks = data["asks"]
bids = data["bids"]
print("【売り板】上位5件(価格の安い順)")
for price, amount in asks[:5]:
print(f"価格: {price:.0f} 円 / 数量: {amount:.4f} BTC")
print("\n【買い板】上位5件(価格の高い順)")
for price, amount in bids[:5]:
print(f"価格: {price:.0f} 円 / 数量: {amount:.4f} BTC")
📝 実行結果(例)
【売り板】上位5件(価格の安い順)
価格: 9100000 円 / 数量: 0.2000 BTC
価格: 9105000 円 / 数量: 0.0500 BTC
...
【買い板】上位5件(価格の高い順)
価格: 9095000 円 / 数量: 0.1800 BTC
価格: 9090000 円 / 数量: 0.1000 BTC
...
💡 板情報からわかること
板情報を見ることで、以下のようなことが判断できます。
- 「どこに厚い注文が入っているか?」(サポート・レジスタンスの参考に)
- 「売りが強い?買いが強い?」(注文の偏りから市場心理を読む)
- 「注文を出すならどの価格帯が有利か?」(自動売買の指値戦略に応用)
📊 おすすめ:グラフで可視化してみよう
板情報は、棒グラフやヒートマップで可視化すると一目で分かりやすくなります。
例えば matplotlib を使って、価格ごとの注文量を棒グラフにすれば、以下のような図が作れます:
import matplotlib.pyplot as plt
# 売り板と買い板をそれぞれ抽出
ask_prices = [x[0] for x in asks[:10]]
ask_amounts = [x[1] for x in asks[:10]]
bid_prices = [x[0] for x in bids[:10]]
bid_amounts = [x[1] for x in bids[:10]]
# グラフ描画
plt.bar(ask_prices, ask_amounts, color="red", label="Asks")
plt.bar(bid_prices, bid_amounts, color="green", label="Bids")
plt.xlabel("価格 (円)")
plt.ylabel("数量 (BTC)")
plt.title("板情報(上位10件)")
plt.legend()
plt.show()
6. まとめ|ビットコインのリアルタイムデータをPythonで活用しよう
今回は、CoincheckのパブリックAPIを使ってビットコインの情報を取得する方法をご紹介しました。
Pythonコードを少し書くだけで、次のようなリアルタイムデータを自動で取得できましたね。
- ✅ 現在のビットコイン価格(
ticker) - ✅ 実際の売買履歴(
trades) - ✅ 板情報(買い注文/売り注文の一覧)
どれも「仮想通貨の自動売買」や「価格分析」に欠かせない基本データです。
しかも、これらはすべて認証なし・無料・誰でも使えるAPIから取得できます。
このようなAPIを活用すれば、
「一定の価格になったら通知を出す」「売買履歴から動きを予測する」「板情報から市場の傾向を探る」など、さまざまな自動化・分析が可能になります。

次回はさらに一歩進んで、Coincheckの「プライベートAPI」を使った自動売買の準備に入っていきます。
そちらでは、APIキーを使って「注文を出す」「残高を確認する」など、本格的なBot開発のスタートです!
よくある質問(Q&A)
- QCoincheck APIの利用は無料ですか?
- A
はい、パブリックAPIは無料で利用できます。
認証も不要なので、誰でも手軽に試すことができます。ただし、商用利用や大量アクセスには制限や規約があるため、必要に応じてCoincheckの利用規約を確認してください。
- QAPIにアクセスしすぎるとどうなりますか?
- A
Coincheck APIには**レートリミット(アクセス制限)**があります。
例えば短時間に何十回も連続アクセスすると、一時的にブロックされたりエラーが返されたりする可能性があります。実行間隔を1秒以上あけるようにしましょう。
- Q取得した時刻が日本時間と違うのはなぜですか?
- A
APIから返される時刻(
created_at)はUTC(協定世界時)=ロンドン時間になっています。
日本時間に合わせたい場合は、Pythonで9時間加算する処理を行いましょう(timedelta(hours=9)を使用)。








※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。