Pular para o guia

Desenvolvedores · API gratuita · Sem chave

API gratuita do índice de medo e ganância

A leitura de medo e ganância de hoje para o mercado cripto, o Bitcoin, o Ether e dezenas de altcoins, em JSON ou CSV, e como imagens ao vivo para incorporar. Sem chave, sem conta e sem cadastro: chame a API a partir de um script, uma planilha, um bot ou uma página web. Só pedimos um crédito com link.

GET
https://cryptokeyhole.com/api/v1/fear-and-greed
  • Sem chave e sem contaUma requisição GET simples, de qualquer linguagem, planilha ou página.
  • O mercado e cada moeda?coin=btc, eth, sol e dezenas de outras.
  • JSON ou CSVTodos os dias desde 2011 com limit=0.
  • Imagens ao vivoMedidores em PNG que se redesenham sozinhos a cada hora.

Agora, o mercado marca 58/100 · Ganância e o Bitcoin, 67/100 · Ganância.

O medidor do índice de medo e ganância cripto, como a imagem da API o mostra agora
/fear-and-greed-index.png · redesenhado a cada leitura

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.

Requisição
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.

Exemplo de resposta
{
  "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çãoResposta
GET /api/v1/fear-and-greedO índice do mercado cripto: a leitura de hoje, suas partes, leituras anteriores e os últimos 30 dias.
GET /api/v1/fear-and-greed?coin=btcO mesmo para uma moeda, pelo código, em minúsculas ou maiúsculas.
GET /api/v1/fear-and-greed/coinsA 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.pngImagens do medidor ao vivo, para o mercado e cada moeda: veja Imagens ao vivo.

Parâmetros

ParâmetroValoresPadrão
coinO 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
limitQuantos dias de histórico, do mais recente ao mais antigo; 0 para todos os dias.30
formatjson, 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

CampoSignificado
valueA leitura de hoje, de 0 a 100, como aparece nas nossas páginas (arredondada).
exactA mesma leitura, sem arredondamento.
band, labelA zona como chave (extreme-fear, fear, neutral, greed, extreme-greed) e por extenso ("Extreme fear" … "Extreme greed").
dateO dia UTC ao qual a leitura pertence.
timestamp, asOfO 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).
statusopen: a leitura do dia até agora, recalculada à medida que chegam os dados de cada hora. closed: o valor final do dia.
delayedtrue 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.
componentsOs 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.
previousAs leituras de um dia, uma semana, um mês e um ano antes (yesterday, lastWeek, lastMonth, lastYear), ou null.
historyLeituras diárias, da mais recente à mais antiga: date, timestamp (o início do dia UTC), value, exact, band, label, status.
linksA página, o gráfico, o endereço na API e as imagens do índice.
updatedAtQuando o índice foi recalculado pela última vez.
creditUm 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
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.

Python
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.

JavaScript
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:

Valor de hoje
=INDEX(IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=1&format=csv"), 2, 3)
Rótulo de hoje
=INDEX(IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=1&format=csv"), 2, 6)
Os últimos 30 dias em tabela
=IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=30&format=csv")
Todas as moedas hoje
=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.

Apps Script
/**
 * 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.

Python · discord.py
# 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.

HTML
<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 &amp; 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.

ImagemTamanhoEndereço
Cartão com medidor1200 × 630/fear-and-greed-index.png (mercado), /fear-and-greed-index/btc.png
Selo600 × 315/fear-and-greed-index-badge.png, /fear-and-greed-index/btc-badge.png
Escuroambosadicione -dark: /fear-and-greed-index/btc-dark.png, /fear-and-greed-index/btc-badge-dark.png
Índice de medo e ganância do Bitcoin, por CryptoKeyhole
HTML
<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 &amp; Greed Index by CryptoKeyhole" loading="lazy"></a>
Markdown
[![Bitcoin Fear & Greed Index by CryptoKeyhole](https://cryptokeyhole.com/fear-and-greed-index/btc.png)](https://cryptokeyhole.com/fear-and-greed-index/btc/)
BBCode (fóruns)
[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.

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.