Início rápido
Peça a leitura de uma moeda com os dois últimos dias. Omita coin para obter o mercado como um todo.
curl "https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=2"Resposta capturada em 24 de outubro de 2026, 19:00 UTC. Com scripts ativados, a resposta ao vivo aparece aqui no lugar dela.
{
"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/"
}Endpoints
| Requisição | Resposta |
|---|---|
GET /api/v1/fear-and-greed | O índice do mercado cripto: a leitura de hoje, suas partes, leituras anteriores e os últimos 30 dias. |
GET /api/v1/fear-and-greed?coin=btc | O mesmo para uma moeda, pelo código, em minúsculas ou maiúsculas. |
GET /api/v1/fear-and-greed/coins | A leitura de hoje do mercado e de cada moeda, com a página, o endereço na API e as imagens de cada um. |
GET /fear-and-greed-index.png | Imagens do medidor ao vivo, para o mercado e cada moeda: veja Imagens ao vivo. |
Parâmetros
| Parâmetro | Valores | Padrão |
|---|---|---|
coin | O código de uma moeda (btc, ETH, sol …); market ou nada para o mercado como um todo. As moedas estão listadas abaixo. | o mercado |
limit | Quantos dias de histórico, do mais recente ao mais antigo; 0 para todos os dias. | 30 |
format | json, ou csv para as linhas do histórico (em /coins, uma linha por moeda). | json |
Todos os endereços começam com https://cryptokeyhole.com. Os erros voltam em JSON, {"error": "…"}: 400 para um parâmetro que não conseguimos ler, 404 para uma moeda sem índice, 503 durante o minuto que o índice leva para ser recalculado (tente de novo em instantes).
O que a API retorna
| Campo | Significado |
|---|---|
value | A leitura de hoje, de 0 a 100, como aparece nas nossas páginas (arredondada). |
exact | A mesma leitura, sem arredondamento. |
band, label | A zona como chave (extreme-fear, fear, neutral, greed, extreme-greed) e por extenso ("Extreme fear" … "Extreme greed"). |
date | O dia UTC ao qual a leitura pertence. |
timestamp, asOf | O momento a que a leitura se refere, em segundos Unix e ISO 8601: o fim da última hora de dados que ela inclui (o fim do dia, no caso de um dia fechado). |
status | open: a leitura do dia até agora, recalculada à medida que chegam os dados de cada hora. closed: o valor final do dia. |
delayed | true quando uma leitura passa mais de duas horas do seu horário porque um dado de entrada está atrasado. Nossas páginas também avisam. |
components | Os componentes de hoje: key, name, weight e score (0 a 100). O valor é a média ponderada das pontuações: a soma de pontuação × peso dividida pela soma dos pesos. |
previous | As leituras de um dia, uma semana, um mês e um ano antes (yesterday, lastWeek, lastMonth, lastYear), ou null. |
history | Leituras diárias, da mais recente à mais antiga: date, timestamp (o início do dia UTC), value, exact, band, label, status. |
links | A página, o gráfico, o endereço na API e as imagens do índice. |
updatedAt | Quando o índice foi recalculado pela última vez. |
credit | Um texto de crédito para exibir junto com a leitura. |
/coins traz, para cada índice, value, exact, band, label, date, timestamp, asOf, status e delayed, como acima, além de change1d (pontos desde ontem), componentCount e os endereços page, api, image e badge.
Exemplos
Copie, cole e execute. Todos os exemplos são preenchidos com a moeda que você escolher.
curl
Uma semana de leituras do Bitcoin e, depois, só o valor e o rótulo de hoje com 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
Só a biblioteca padrão. Informe o nome do seu app no cabeçalho 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
No navegador ou no Node 18 ou superior. Requisições cross-origin são permitidas, então isso funciona em qualquer página web.
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 Sheets
O IMPORTDATA lê o formato CSV direto nas células. No CSV, a coluna 3 é o valor e a coluna 6, o rótulo; a linha 1 é o cabeçalho e a linha 2, a leitura mais recente. Cole qualquer uma destas fórmulas em uma célula:
=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")Para ter uma função própria, no estilo IMPORTJSON, cole isto em Extensões → Apps Script, salve e digite =FEARGREED("btc") em qualquer célula.
/**
* 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]];
}Bot para Discord
Um comando /feargreed que responde com a leitura e a imagem do medidor, para qualquer moeda ou para o mercado como um todo. Informe o token do seu bot e convide-o com o escopo 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")Widget para sites
Uma linha de texto para qualquer página, que mostra a leitura atual com link para ela. Se preferir uma imagem, use a incorporação de imagem.
<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>Imagens ao vivo e incorporações
Cada índice tem um cartão com medidor e um selo compacto, nas versões clara e escura, em endereços fixos. Cada imagem é redesenhada assim que a leitura muda e mostra o horário da leitura exibida, então a incorporação continua atualizada sem nenhum código.
| Imagem | Tamanho | Endereço |
|---|---|---|
| Cartão com medidor | 1200 × 630 | /fear-and-greed-index.png (mercado), /fear-and-greed-index/btc.png |
| Selo | 600 × 315 | /fear-and-greed-index-badge.png, /fear-and-greed-index/btc-badge.png |
| Escuro | ambos | adicione -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]No código HTML, a imagem aparece com metade do tamanho, para ficar nítida em telas de alta resolução. Coloque um link para a página da leitura, como acima, para que os leitores vejam o que há por trás do número.
O que o índice mede
O índice de medo e ganância do CryptoKeyhole mede o humor do mercado de 0 (medo extremo) a 100 (ganância extrema). Nós mesmos o calculamos, para o mercado como um todo e para cada moeda, com dados de mercado, de derivativos e on-chain que coletamos e com as visualizações públicas de página da Wikimedia.
A leitura de cada moeda combina até nove componentes: momentum do preço, volatilidade, taxas de financiamento, open interest, fluxo agressor, razão long/short, lucro dos detentores, fluxos das exchanges e interesse do público. Cada um é classificado em relação aos últimos dois anos da própria moeda, então um dia calmo para uma moeda volátil aparece como calmo. A leitura do mercado pondera o índice do Bitcoin (45%), o do Ether (20%), a média das outras moedas (15%), a amplitude do mercado (10%) e os fluxos de stablecoins (10%). Nenhum dado de redes sociais, tendências de busca ou fontes pagas entra no cálculo.
Como é calculado traz cada componente, peso e janela; o campo components da API mostra as pontuações de hoje.
Moedas
Use qualquer um destes códigos como coin, em minúsculas ou maiúsculas; cada um leva à página de medo e ganância da própria moeda. /api/v1/fear-and-greed/coins sempre traz a lista atualizada.
btcBitcoinethEthereumsolSolanaxrpXRPtrxTRONbnbBNBdogeDogecointonToncoinlinkChainlinkhypeHyperliquidadaCardanonearNearxlmStellarbchBitcoin CashltcLitecoinuniUniswapavaxAvalanchesuiSuihbarHedera HashgraphwldWorldcoinmntMantleshibShiba InuqntQuantenaEthenamorphoMorphoaaveAaveondoOndodotPolkadotzroLayerZeropepePepeskySKY Governance TokenarbArbitrumpolPOL (ex-MATIC)aptAptoscrvCurve DAOethfiether.fipendlePendleensEthereum Name ServicefetFetch.aildoLido DAOeigenEigenCloudspxSPX6900imxImmutableaxsAxie InfinitybatBasic Attention TokengrtThe GraphsyrupMaple FinanceflokiFlokicompCompoundsandThe SandboxapeApeCoinpromPromaltAltLayergalaGalanilNillioneraCaldera
Uso justo
- Gratuito para uso pessoal e comercial: apps, bots, painéis, planilhas, pesquisas, sites e newsletters.
- Agradecemos o crédito com link: “Índice de medo e ganância do CryptoKeyhole”, com link para https://cryptokeyhole.com/fear-and-greed-index/ ou para a página da própria moeda.
- Por favor, mostre os valores como são e não apresente o índice como se fosse seu.
- Sem chave e sem limites impostos por nós. As respostas mudam no máximo uma vez por hora, então guarde uma cópia por alguns minutos em vez de consultar a cada visualização de página.
- Mantemos a API funcionando e avisamos quando uma leitura está atrasada (o campo
delayed), mas ela é oferecida como está, sem garantia.
Criou algo com ela? Conte para a gente no X: @Crypto_Keyhole.
Perguntas frequentes
A API do índice de medo e ganância é gratuita?
Sim. Não há chave, conta nem pagamento, seja para uso pessoal ou comercial. Só pedimos que você dê crédito ao CryptoKeyhole com um link para cryptokeyhole.com/fear-and-greed-index/ onde quer que mostre a leitura.
Preciso de uma chave de API ou de uma conta?
Não. Envie uma requisição GET simples para o endereço; não é preciso mais nada. Qualquer linguagem, planilha ou navegador pode chamá-la, e requisições cross-origin a partir de páginas web são permitidas.
Com que frequência ela é atualizada?
A cada hora. A leitura de hoje é parcial (status "open") e muda à medida que chegam os dados de cada hora; verificamos se há dados novos a cada dez minutos. Depois das 00:00 UTC, o valor do dia se torna final (status "closed"). As imagens são redesenhadas sempre que a leitura muda.
Existe limite de requisições?
Não impomos nenhum limite próprio. Cada resposta é a mesma para todos e fica guardada por cinco minutos, então consultar com mais frequência do que isso retorna os mesmos dados; uma vez por hora é mais que suficiente. Envie um cabeçalho User-Agent que identifique seu app: a proteção contra bots da nossa rede recusa alguns padrões de bibliotecas, como o urllib do Python.
Quais moedas a API cobre?
O mercado cripto como um todo e cada moeda com página própria de medo e ganância: Bitcoin, Ether, Solana, XRP e as altcoins listadas nesta página. /api/v1/fear-and-greed/coins lista todas, com a leitura de hoje.
Posso obter o histórico completo?
Sim. limit=0 retorna todos os dias que o índice tem, desde outubro de 2011 para o Bitcoin e o mercado, do mais recente ao mais antigo; format=csv traz as mesmas linhas em CSV.
O que significam os números?
De 0 a 24 é medo extremo; de 25 a 44, medo; de 45 a 55, neutro; de 56 a 75, ganância; e de 76 a 100, ganância extrema. Cada leitura traz a zona como chave (band: extreme-fear, fear, neutral, greed, extreme-greed) e por extenso (label).
Como o índice é calculado?
O índice de cada moeda é a média ponderada de até nove componentes dos nossos próprios dados de mercado, de derivativos e on-chain, cada um classificado em relação aos últimos dois anos da própria moeda. O índice do mercado pondera o índice do Bitcoin, o do Ether, a média das outras moedas, a amplitude do mercado e os fluxos de stablecoins. O método mostra cada parte e cada peso.
É o mesmo número das páginas e dos gráficos do CryptoKeyhole?
Sim. A API lê a mesma base de dados das nossas páginas de medo e ganância e dos gráficos do Studio, então o valor, a zona e o horário sempre batem com o que as páginas mostram.
Posso usar as imagens no meu site, fórum ou Discord?
Sim. Cada imagem é um PNG simples, em um endereço fixo, que se redesenha sozinho; assim, os códigos de incorporação desta página continuam mostrando a leitura atual, com o horário de referência impresso na imagem.
Leituras de hojeAbrir a APICriar conta gratuita
O índice é calculado pelo CryptoKeyhole com seus próprios dados de mercado, de derivativos e on-chain, e com as visualizações públicas de página da Wikimedia. A API e as imagens entregam exatamente o que nossas páginas e gráficos mostram, cada uma com o horário da sua leitura.
