クイックスタート
1銘柄の数値を、直近2日分とあわせてリクエストします。市場全体を取得する場合はcoinを省略します。
curl "https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=2"2026年10月24日 19:00 UTCに取得したレスポンスです。スクリプトが有効な場合は、ここにリアルタイムのレスポンスが表示されます。
{
"index": "Bitcoin Fear & Greed Index",
"coin": "BTC",
"name": "Bitcoin",
"value": 67,
"exact": 66.74211248285322,
"band": "greed",
"label": "Greed",
"date": "2026-10-24",
"timestamp": 1792868400,
"asOf": "2026-10-24T19:00:00Z",
"status": "open",
"delayed": false,
"components": [
{
"key": "momentum",
"name": "Price momentum",
"weight": 25,
"score": 51.02880658436214
},
{
"key": "volatility",
"name": "Volatility",
"weight": 15,
"score": 97.25651577503429
},
{
"key": "funding",
"name": "Funding rates",
"weight": 15,
"score": 81.20713305898491
},
{
"key": "oi",
"name": "Open interest",
"weight": 10,
"score": 86.41975308641975
},
{
"key": "taker",
"name": "Taker flow",
"weight": 10,
"score": 59.67078189300412
},
{
"key": "lsr",
"name": "Long/short ratio",
"weight": 5,
"score": 56.79012345679013
},
{
"key": "profit",
"name": "Holder profit",
"weight": 10,
"score": 63.648834019204386
},
{
"key": "netflow",
"name": "Exchange flows",
"weight": 5,
"score": 39.64334705075446
},
{
"key": "attention",
"name": "Attention",
"weight": 5,
"score": 28.395061728395063
}
],
"previous": {
"yesterday": {
"date": "2026-10-23",
"value": 68,
"band": "greed",
"label": "Greed"
},
"lastWeek": {
"date": "2026-10-17",
"value": 60,
"band": "greed",
"label": "Greed"
},
"lastMonth": {
"date": "2026-09-24",
"value": 71,
"band": "greed",
"label": "Greed"
},
"lastYear": {
"date": "2025-10-24",
"value": 32,
"band": "fear",
"label": "Fear"
}
},
"history": [
{
"date": "2026-10-24",
"timestamp": 1792800000,
"value": 67,
"exact": 66.74211248285322,
"band": "greed",
"label": "Greed",
"status": "open"
},
{
"date": "2026-10-23",
"timestamp": 1792713600,
"value": 68,
"exact": 67.57887517146776,
"band": "greed",
"label": "Greed",
"status": "closed"
}
],
"links": {
"page": "https://cryptokeyhole.com/fear-and-greed-index/btc/",
"chart": "https://cryptokeyhole.com/charts/btc/?metric=ckh.KeyholeFearGreedIndex",
"api": "https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc",
"image": "https://cryptokeyhole.com/fear-and-greed-index/btc.png",
"imageDark": "https://cryptokeyhole.com/fear-and-greed-index/btc-dark.png",
"badge": "https://cryptokeyhole.com/fear-and-greed-index/btc-badge.png",
"badgeDark": "https://cryptokeyhole.com/fear-and-greed-index/btc-badge-dark.png",
"docs": "https://cryptokeyhole.com/fear-and-greed-index/api/"
},
"updatedAt": "2026-10-24T19:14:52Z",
"source": "CryptoKeyhole",
"credit": "Fear & Greed Index by CryptoKeyhole: https://cryptokeyhole.com/fear-and-greed-index/btc/",
"docs": "https://cryptokeyhole.com/fear-and-greed-index/api/"
}エンドポイント
| リクエスト | レスポンス |
|---|---|
GET /api/v1/fear-and-greed | 仮想通貨市場全体の指数:本日の値、その要素、過去の数値、直近30日分。 |
GET /api/v1/fear-and-greed?coin=btc | 1銘柄分の同じデータ。銘柄コードは小文字・大文字のどちらでも指定できます。 |
GET /api/v1/fear-and-greed/coins | 市場全体と全銘柄の本日の値。それぞれのページ、APIアドレス、画像付き。 |
GET /fear-and-greed-index.png | 市場全体と各銘柄のライブゲージ画像。詳しくはライブ画像を参照してください。 |
パラメーター
| パラメーター | 値 | デフォルト |
|---|---|---|
coin | 銘柄コード(btc、ETH、sol…)。市場全体はmarketまたは指定なし。銘柄の一覧は下記のとおりです。 | 市場全体 |
limit | 履歴の日数(新しい順)。全日分は0。 | 30 |
format | json、または履歴の行を出力するcsv(/coinsでは1銘柄につき1行)。 | json |
すべてのアドレスはhttps://cryptokeyhole.comで始まります。エラーはJSON({"error": "…"})で返されます。読み取れないパラメーターには400、指数のない銘柄には404、指数の再計算にかかる1分間は503が返ります(少し待ってから再度リクエストしてください)。
レスポンスの内容
| フィールド | 意味 |
|---|---|
value | 本日の値(0〜100)。当サイトのページと同じく四捨五入した値です。 |
exact | 同じ数値の四捨五入前の値。 |
band, label | ゾーンのキー(extreme-fear、fear、neutral、greed、extreme-greed)と文字列での表記(「Extreme fear」…「Extreme greed」)。 |
date | その数値が属するUTC基準の日付。 |
timestamp, asOf | 数値の基準時刻(Unix秒とISO 8601形式)。含まれるデータの最新1時間の終わりの時刻です(確定済みの日はその日の終わり)。 |
status | open:その日のここまでの数値。1時間ごとのデータが届くたびに再計算されます。closed:その日の確定値。 |
delayed | 入力データの遅れにより、数値の基準時刻から2時間を超えるとtrueになります。当サイトのページにもその旨が表示されます。 |
components | 本日の構成要素:key、name、weight、score(0〜100)。値はスコアの加重平均で、スコア × ウェイトの合計をウェイトの合計で割ったものです。 |
previous | 1日前、1週間前、1か月前、1年前の数値(yesterday、lastWeek、lastMonth、lastYear)、またはnull。 |
history | 日次の数値(新しい順):date、timestamp(UTC基準の1日の開始時刻)、value、exact、band、label、status。 |
links | 指数のページ、チャート、APIアドレス、画像。 |
updatedAt | 指数が最後に再計算された時刻。 |
credit | 数値とあわせて表示するクレジット表記。 |
/coinsは、各指数のvalue、exact、band、label、date、timestamp、asOf、status、delayedを上記と同じ形式で返し、さらにchange1d(前日からのポイント差)、componentCount、そしてpage、api、image、badgeの各アドレスを含みます。
使用例
コピーして貼り付け、実行するだけ。どの例も、選んだ銘柄に合わせて書き換わります。
curl
ビットコインの1週間分の数値を取得し、続いてjqで本日の値とラベルだけを取り出します。
curl "https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=7"
# today's value and label only (jq)
curl -s "https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=1" | jq -r '"\(.value) \(.label)"'Python
標準ライブラリのみ。User-Agentヘッダーにアプリ名を入れてください。
import json
import urllib.request
URL = "https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=30"
# Name your app: some library defaults, urllib's among them, are turned away.
request = urllib.request.Request(URL, headers={"User-Agent": "my-app/1.0"})
with urllib.request.urlopen(request, timeout=30) as response:
data = json.load(response)
print(f"{data['index']}: {data['value']}/100, {data['label']} (as of {data['asOf']})")
for day in data["history"][:7]:
print(day["date"], day["value"], day["label"])JavaScript
ブラウザ、またはNode 18以降で動作します。クロスオリジンリクエストが許可されているため、どのウェブページからでも動作します。
const response = await fetch("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=7");
const data = await response.json();
console.log(`${data.index}: ${data.value}/100, ${data.label}`);
for (const day of data.history) console.log(day.date, day.value, day.label);Googleスプレッドシート
IMPORTDATAで、CSV形式のデータをそのままセルに読み込めます。CSVでは、3列目が値、6列目がラベルです。1行目がヘッダー、2行目が最新の数値です。次のいずれかをセルに貼り付けます。
=INDEX(IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=1&format=csv"), 2, 3)=INDEX(IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=1&format=csv"), 2, 6)=IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=30&format=csv")=IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed/coins?format=csv")IMPORTJSONのような独自の関数を使うには、これを「拡張機能」→「Apps Script」に貼り付けて保存し、任意のセルに=FEARGREED("btc")と入力します。
/**
* The Fear & Greed Index from CryptoKeyhole: =FEARGREED("btc"), or =FEARGREED() for the whole market.
* Returns the value, its label and the time it is as of, in one row.
* @customfunction
*/
function FEARGREED(coin) {
const url = "https://cryptokeyhole.com/api/v1/fear-and-greed?limit=1&coin=" + encodeURIComponent(coin || "");
const data = JSON.parse(UrlFetchApp.fetch(url).getContentText());
return [[data.value, data.label, data.asOf]];
}Discordボット
任意の銘柄または市場全体について、数値とゲージ画像で応答する/feargreedコマンド。ボットのトークンを設定し、applications.commandsスコープで招待します。
# A /feargreed slash command (discord.py 2 and aiohttp): pip install discord.py aiohttp
import aiohttp
import discord
from discord import app_commands
API = "https://cryptokeyhole.com/api/v1/fear-and-greed"
client = discord.Client(intents=discord.Intents.default())
tree = app_commands.CommandTree(client)
@tree.command(name="feargreed", description="Crypto Fear & Greed Index from CryptoKeyhole")
@app_commands.describe(coin="A coin such as btc or eth; leave it empty for the whole market")
async def feargreed(interaction: discord.Interaction, coin: str = ""):
async with aiohttp.ClientSession(headers={"User-Agent": "my-discord-bot/1.0"}) as session:
async with session.get(API, params={"coin": coin, "limit": "1"}) as response:
data = await response.json()
if "error" in data:
await interaction.response.send_message(data["error"], ephemeral=True)
return
embed = discord.Embed(title=data["index"], url=data["links"]["page"],
description=f"**{data['value']}/100: {data['label']}**")
# A new address for each reading, so Discord shows the current image rather than one it kept
embed.set_image(url=f"{data['links']['image']}?t={data['timestamp']}")
embed.set_footer(text="Fear & Greed Index by CryptoKeyhole · cryptokeyhole.com")
await interaction.response.send_message(embed=embed)
@client.event
async def on_ready():
await tree.sync()
client.run("YOUR_BOT_TOKEN")ウェブサイト用ウィジェット
どのページにも設置できる、現在の数値を表示してリンクする1行のテキスト。画像で表示したい場合は、画像の埋め込みを使ってください。
<a id="ckh-fear-greed" href="https://cryptokeyhole.com/fear-and-greed-index/btc/" target="_blank" rel="noopener"
style="display:inline-flex;gap:8px;align-items:baseline;font:15px/1.4 system-ui,sans-serif;color:inherit;text-decoration:none">
Bitcoin Fear & Greed Index: <strong>…</strong> <small style="opacity:.7">by CryptoKeyhole</small>
</a>
<script>
fetch("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=1")
.then((response) => response.json())
.then((data) => {
document.querySelector("#ckh-fear-greed strong").textContent = data.value + "/100 · " + data.label;
});
</script>ライブ画像と埋め込み
すべての指数に、ゲージカードとコンパクトなバッジを、ライトとダークの両方で固定アドレスに用意しています。各画像は数値が変わるとすぐに再描画され、表示している数値の時刻も画像に記載されます。そのため、コードなしでも埋め込みが常に最新の状態に保たれます。
| 画像 | サイズ | アドレス |
|---|---|---|
| ゲージカード | 1200 × 630 | /fear-and-greed-index.png(市場全体)、/fear-and-greed-index/btc.png |
| バッジ | 600 × 315 | /fear-and-greed-index-badge.png, /fear-and-greed-index/btc-badge.png |
| ダーク | どちらでも | -darkを付加:/fear-and-greed-index/btc-dark.png、/fear-and-greed-index/btc-badge-dark.png |

<a href="https://cryptokeyhole.com/fear-and-greed-index/btc/"><img src="https://cryptokeyhole.com/fear-and-greed-index/btc.png" width="600" height="315" alt="Bitcoin Fear & Greed Index by CryptoKeyhole" loading="lazy"></a>[](https://cryptokeyhole.com/fear-and-greed-index/btc/)[url=https://cryptokeyhole.com/fear-and-greed-index/btc/][img]https://cryptokeyhole.com/fear-and-greed-index/btc.png[/img][/url]HTMLコードでは画像を実寸の半分のサイズで表示するため、高解像度の画面でも鮮明に表示されます。上の例のように数値のページへリンクすると、読者がその数値の背景を確認できます。
指数が示すもの
CryptoKeyholeの恐怖強欲指数は、市場のムードを0(極度の恐怖)から100(極度の強欲)までの数値で表します。市場全体と各銘柄について、当サイトが収集する市場、デリバティブ、オンチェーンのデータと、Wikimediaの公開閲覧数データから独自に算出しています。
各銘柄の数値は、価格モメンタム、ボラティリティ、ファンディングレート、未決済建玉、テイカーフロー、ロング・ショート比率、保有者の含み益、取引所フロー、注目度の最大9つの構成要素を組み合わせたものです。各構成要素は、その銘柄自身の過去2年間と比べて順位付けされます。そのため、値動きの激しい銘柄でも、穏やかな日は穏やかと判定されます。市場全体の数値は、ビットコインの指数(45%)、イーサリアムの指数(20%)、その他の銘柄の平均(15%)、市場の広がり(10%)、ステーブルコインの流出入(10%)を加重平均したものです。SNS、検索トレンド、有料データは使っていません。
算出方法に、すべての構成要素、ウェイト、計算期間を記載しています。本日のスコアはAPIのcomponentsで確認できます。
銘柄
これらのコードは、小文字・大文字を問わずcoinに指定できます。各コードは、その銘柄の恐怖強欲指数ページにリンクしています。最新の一覧は、常に/api/v1/fear-and-greed/coinsで確認できます。
btcビットコインethイーサリアムsolソラナxrpXRPtrxトロンbnbBNBdogeドージコインtonトンコインlinkチェーンリンクhypeHyperliquidadaカルダノnearNearxlmステラルーメンbchビットコインキャッシュltcライトコインuniユニスワップavaxアバランチsuiSuihbarHedera HashgraphwldWorldcoinmntMantleshibシバイヌqntQuantenaEthenamorphoMorphoaaveAaveondoOndodotポルカドットzroLayerZeropepePepeskySKY Governance TokenarbArbitrumpolPOL(旧MATIC)aptAptoscrvCurve DAOethfiether.fipendlePendleensEthereum Name ServicefetFetch.aildoLido DAOeigenEigenCloudspxSPX6900imxImmutableaxsAxie InfinitybatBasic Attention TokengrtThe GraphsyrupMaple FinanceflokiFlokicompCompoundsandThe SandboxapeApeCoinpromPromaltAltLayergalaGalanilNillioneraCaldera
利用ルール
- 個人利用・商用利用ともに無料です。アプリ、ボット、ダッシュボード、スプレッドシート、リサーチ、ウェブサイト、ニュースレターに使えます。
- リンク付きのクレジット表記をいただけると幸いです:「CryptoKeyholeの恐怖強欲指数」と記載し、https://cryptokeyhole.com/fear-and-greed-index/または各銘柄のページへリンクしてください。
- 数値は手を加えずにそのまま表示し、指数をご自身のものとして紹介しないでください。
- APIキーは不要で、当サイト独自の制限もありません。レスポンスが変わるのは多くても1時間に1回です。ページが表示されるたびにリクエストするのではなく、数分間はコピーを保持して使ってください。
- 安定稼働に努め、数値が遅れている場合はお知らせします(
delayedフィールド)。ただし、現状のまま無保証で提供します。
これを使って何か作りましたか?ぜひXの@Crypto_Keyholeで教えてください。
よくある質問
恐怖強欲指数APIは無料?
はい。個人利用でも商用利用でも、APIキー、アカウント、支払いは一切不要です。お願いしたいのは、数値を表示する場所でcryptokeyhole.com/fear-and-greed-index/へのリンクを付け、CryptoKeyholeをクレジット表記していただくことだけです。
APIキーやアカウントは必要?
いいえ。アドレスにシンプルなGETリクエストを送るだけで、ほかには何も必要ありません。どの言語、スプレッドシート、ブラウザからでも呼び出せ、ウェブページからのクロスオリジンリクエストも許可されています。
更新頻度は?
1時間ごとです。本日の数値は途中経過値(ステータス「open」)で、1時間ごとのデータが届くたびに変わります。新しいデータは10分ごとに確認しています。00:00 UTCを過ぎると、その日の値が確定します(ステータス「closed」)。画像は、数値が変わるたびに再描画されます。
レート制限はある?
当サイト独自の制限は設けていません。レスポンスは誰に対しても同じ内容で、5分間キャッシュされます。そのため、それより頻繁にリクエストしても同じデータが返ります。1時間に1回で十分です。アプリ名を記載したUser-Agentヘッダーを送信してください。当サイトのネットワークのボット対策により、Pythonのurllibなど、一部のライブラリの既定のUser-Agentは拒否されます。
対象銘柄は?
仮想通貨市場全体と、恐怖強欲指数のページがあるすべての銘柄です。ビットコイン、イーサリアム、ソラナ、XRPのほか、このページに掲載しているアルトコインが対象です。/api/v1/fear-and-greed/coinsで、全銘柄を本日の値とともに一覧できます。
全期間の履歴は取得できる?
はい。limit=0を指定すると、指数がある全日分を新しい順に返します(ビットコインと市場全体は2011年10月まで遡れます)。format=csvを指定すると、同じ行をCSVで取得できます。
数値の意味は?
0〜24が極度の恐怖、25〜44が恐怖、45〜55が中立、56〜75が強欲、76〜100が極度の強欲です。各数値には、ゾーンがキー(band:extreme-fear、fear、neutral、greed、extreme-greed)と文字列(label)の両方で含まれています。
指数の計算方法は?
各銘柄の指数は、独自の市場、デリバティブ、オンチェーンデータによる最大9つの構成要素の加重平均です。各構成要素は、その銘柄自身の過去2年間と比べて順位付けされます。市場全体の指数は、ビットコインの指数、イーサリアムの指数、その他の銘柄の平均、市場の広がり、ステーブルコインの流出入を加重平均したものです。すべての要素とウェイトは算出方法に記載しています。
CryptoKeyholeのページやチャートと同じ数値?
はい。APIは、当サイトの恐怖強欲指数ページやStudioのチャートと同じデータストアを読み込んでいます。そのため、値、ゾーン、時刻は常にページの表示と一致します。
画像を自分のウェブサイトや掲示板、Discordで使える?
はい。すべての画像は固定アドレスにある通常のPNGで、自動的に再描画されます。そのため、このページの埋め込みコードは常に現在の数値を表示し、その基準時刻も画像に記載されます。
この指数は、CryptoKeyholeが独自の市場、デリバティブ、オンチェーンデータと、Wikimediaの公開閲覧数データから算出しています。APIと画像は、当サイトのページやチャートと同じ内容を、それぞれの数値の時刻付きで提供します。
