Saltar a la guía

Desarrolladores · API gratuita · Sin clave

API gratuita del índice de miedo y codicia

La lectura de miedo y codicia de hoy para el mercado cripto, Bitcoin, Ether y decenas de altcoins, en JSON o CSV y como imágenes en tiempo real para insertar. Sin clave, sin cuenta y sin registro: se puede llamar desde un script, una hoja de cálculo, un bot o una página web. Solo pedimos que se cite la fuente con un enlace.

GET
https://cryptokeyhole.com/api/v1/fear-and-greed
  • Sin clave ni cuentaUna simple solicitud GET desde cualquier lenguaje, hoja de cálculo o página.
  • El mercado y cada moneda?coin=btc, eth, sol y decenas más.
  • JSON o CSVTodos los días desde 2011 con limit=0.
  • Imágenes en tiempo realMedidores en PNG que se redibujan solos cada hora.

Ahora mismo, el mercado marca 58/100 · Codicia y Bitcoin, 67/100 · Codicia.

El medidor del índice de miedo y codicia cripto, tal como lo muestra ahora la imagen de la API
/fear-and-greed-index.png · se redibuja con cada lectura

Inicio rápido

Pide la lectura de una moneda con sus dos últimos días. Omite coin para obtener todo el mercado.

Solicitud
curl "https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=2"

Respuesta capturada el 24 de octubre de 2026, 19:00 UTC. Con los scripts activados, aquí aparece en su lugar la respuesta en tiempo real.

Respuesta de ejemplo
{
  "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

SolicitudRespuesta
GET /api/v1/fear-and-greedEl índice del mercado cripto: la lectura de hoy, sus partes, lecturas anteriores y los últimos 30 días.
GET /api/v1/fear-and-greed?coin=btcLo mismo para una moneda, indicada por su código en minúsculas o mayúsculas.
GET /api/v1/fear-and-greed/coinsLa lectura de hoy del mercado y de cada moneda, con la página, la dirección de la API y las imágenes de cada uno.
GET /fear-and-greed-index.pngImágenes de medidor en tiempo real para el mercado y cada moneda: véase Imágenes en tiempo real.

Parámetros

ParámetroValoresPor defecto
coinEl código de una moneda (btc, ETH, sol…); market o nada para todo el mercado. Las monedas se enumeran más abajo.el mercado
limitCuántos días de historial, del más reciente al más antiguo; 0 para todos los días.30
formatjson, o csv para las filas del historial (en /coins, una fila por moneda).json

Todas las direcciones empiezan por https://cryptokeyhole.com. Los errores se devuelven en JSON, {"error": "…"}: 400 para un parámetro que no podemos leer, 404 para una moneda sin índice y 503 durante el minuto que tarda el índice en recalcularse (vuelve a intentarlo en breve).

Qué devuelve

CampoSignificado
valueLa lectura de hoy, de 0 a 100, tal como la muestran nuestras páginas (redondeada).
exactLa misma lectura sin redondear.
band, labelSu zona como clave (extreme-fear, fear, neutral, greed, extreme-greed) y en palabras ("Extreme fear" … "Extreme greed").
dateEl día UTC al que corresponde la lectura.
timestamp, asOfEl momento al que corresponde la lectura, en segundos Unix y en ISO 8601: el final de la última hora de datos que incluye (el final del día, si el día está cerrado).
statusopen: la lectura del día hasta el momento, recalculada a medida que llegan los datos de cada hora. closed: el valor definitivo del día.
delayedtrue cuando una lectura lleva más de dos horas de retraso respecto a su hora porque un dato de entrada llega tarde. Nuestras páginas también lo indican.
componentsLos componentes de hoy: key, name, weight y score (de 0 a 100). El valor es la media ponderada de las puntuaciones: la suma de puntuación × peso dividida entre la suma de los pesos.
previousLas lecturas de un día, una semana, un mes y un año antes (yesterday, lastWeek, lastMonth, lastYear), o null.
historyLecturas diarias, de la más reciente a la más antigua: date, timestamp (el inicio del día UTC), value, exact, band, label, status.
linksLa página, el gráfico, la dirección de la API y las imágenes del índice.
updatedAtCuándo se recalculó el índice por última vez.
creditUna línea de atribución para mostrar junto con la lectura.

/coins devuelve, para cada índice, value, exact, band, label, date, timestamp, asOf, status y delayed como arriba, con change1d (puntos desde ayer), componentCount y sus direcciones page, api, image y badge.

Ejemplos

Copia, pega y ejecuta. Cada ejemplo se completa con la moneda que elijas.

curl

Una semana de lecturas de Bitcoin y, después, solo el valor y la etiqueta de hoy con 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

Solo la biblioteca estándar. Indica el nombre de tu aplicación en la cabecera 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

En un navegador o en Node 18 y posteriores. Se permiten las solicitudes de origen cruzado, así que funciona desde cualquier 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

IMPORTDATA lee el formato CSV directamente en las celdas. En el CSV, la columna 3 es el valor y la columna 6, su etiqueta; la fila 1 es la cabecera y la fila 2, la lectura más reciente. Pega cualquiera de estas fórmulas en una celda:

Valor de hoy
=INDEX(IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=1&format=csv"), 2, 3)
Etiqueta de hoy
=INDEX(IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=1&format=csv"), 2, 6)
Los últimos 30 días en una tabla
=IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed?coin=btc&limit=30&format=csv")
Todas las monedas hoy
=IMPORTDATA("https://cryptokeyhole.com/api/v1/fear-and-greed/coins?format=csv")

Para tener tu propia función, al estilo de IMPORTJSON, pega esto en Extensiones → Apps Script, guarda y escribe =FEARGREED("btc") en cualquier celda.

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 de Discord

Un comando /feargreed que responde con la lectura y su imagen de medidor, para cualquier moneda o para todo el mercado. Dale el token de tu bot e invítalo con el ámbito 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 sitios web

Una línea de texto para cualquier página, que muestra la lectura actual y enlaza a ella. Si prefieres una imagen, usa una inserción de imagen.

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>

Imágenes en tiempo real para insertar

Cada índice tiene una tarjeta de medidor y una insignia compacta, en versión clara y oscura, en direcciones fijas. Cada imagen se redibuja en cuanto cambia su lectura e indica la hora de la lectura que muestra, de modo que una inserción se mantiene al día sin ningún código.

ImagenTamañoDirección
Tarjeta de medidor1200 × 630/fear-and-greed-index.png (mercado), /fear-and-greed-index/btc.png
Insignia600 × 315/fear-and-greed-index-badge.png, /fear-and-greed-index/btc-badge.png
Oscuroambosañade -dark: /fear-and-greed-index/btc-dark.png, /fear-and-greed-index/btc-badge-dark.png
Índice de miedo y codicia de 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 (foros)
[url=https://cryptokeyhole.com/fear-and-greed-index/btc/][img]https://cryptokeyhole.com/fear-and-greed-index/btc.png[/img][/url]

En el código HTML, la imagen se muestra a la mitad de su tamaño para que se vea nítida en pantallas de alta resolución. Enlázala a la página de la lectura, como arriba, para que los lectores puedan ver qué hay detrás de la cifra.

Qué mide el índice

El índice de miedo y codicia de CryptoKeyhole mide el estado de ánimo del mercado de 0 (miedo extremo) a 100 (codicia extrema). Lo calculamos nosotros mismos, para el mercado en su conjunto y para cada moneda, con datos de mercado, de derivados y on-chain que recopilamos, y con las visitas públicas de Wikimedia.

La lectura de cada moneda combina hasta nueve componentes: impulso del precio, volatilidad, tasas de financiación, interés abierto, flujo de takers, ratio long/short, beneficio de los holders, flujos de exchanges y atención. Cada uno se compara con el historial de los últimos dos años de la propia moneda, de modo que un día tranquilo para una moneda volátil se lee como tranquilo. La lectura del mercado pondera el índice de Bitcoin (45 %), el de Ether (20 %), la media de las demás monedas (15 %), la amplitud del mercado (10 %) y los flujos de stablecoins (10 %). No incluye redes sociales, tendencias de búsqueda ni datos de pago.

La sección Cómo se calcula detalla cada componente, peso y ventana; el campo components de la API muestra las puntuaciones de hoy.

Monedas

Usa cualquiera de estos códigos como valor de coin, en minúsculas o mayúsculas; cada uno enlaza a la página de miedo y codicia de su moneda. /api/v1/fear-and-greed/coins siempre tiene la lista actualizada.

Uso razonable

  • Gratuita para uso personal y comercial: aplicaciones, bots, paneles, hojas de cálculo, investigación, sitios web y boletines.
  • Se agradece que se cite la fuente con un enlace: “Índice de miedo y codicia de CryptoKeyhole”, con enlace a https://cryptokeyhole.com/fear-and-greed-index/ o a la página de la moneda.
  • Te pedimos que muestres los valores tal cual y que no presentes el índice como propio.
  • Sin clave y sin límites por nuestra parte. Las respuestas cambian como mucho cada hora, así que guarda una copia durante unos minutos en lugar de consultar en cada visita a la página.
  • La mantenemos en funcionamiento e indicamos cuándo una lectura llega con retraso (el campo delayed), pero se ofrece tal cual, sin garantía.

¿Has creado algo con ella? Cuéntanoslo en X: @Crypto_Keyhole.

Preguntas frecuentes

¿Es gratuita la API del índice de miedo y codicia?

Sí. No requiere clave, cuenta ni pago, tanto para uso personal como comercial. Solo pedimos que cites a CryptoKeyhole con un enlace a cryptokeyhole.com/fear-and-greed-index/ allí donde muestres la lectura.

¿Necesito una clave de API o una cuenta?

No. Basta con enviar una simple solicitud GET a la dirección; no hace falta nada más. Cualquier lenguaje, hoja de cálculo o navegador puede llamarla, y se permiten las solicitudes de origen cruzado desde páginas web.

¿Con qué frecuencia se actualiza?

Cada hora. La lectura de hoy es parcial (estado "open") y cambia a medida que llegan los datos de cada hora; buscamos datos nuevos cada diez minutos. A partir de las 00:00 UTC, el valor del día pasa a ser definitivo (estado "closed"). Las imágenes se redibujan cada vez que cambia su lectura.

¿Hay un límite de solicitudes?

No fijamos ningún límite propio. Cada respuesta es la misma para todos y se guarda durante cinco minutos, así que consultar con más frecuencia devuelve los mismos datos; con una vez por hora basta y sobra. Envía una cabecera User-Agent con el nombre de tu aplicación: la protección contra bots de nuestra red rechaza algunos valores predeterminados de bibliotecas, como el de urllib de Python.

¿Qué monedas cubre?

Todo el mercado cripto y cada moneda con su propia página de miedo y codicia: Bitcoin, Ether, Solana, XRP y las altcoins que se enumeran en esta página. /api/v1/fear-and-greed/coins las enumera todas con la lectura de hoy.

¿Puedo obtener el historial completo?

Sí. limit=0 devuelve todos los días que tiene el índice, desde octubre de 2011 en el caso de Bitcoin y del mercado, del más reciente al más antiguo; format=csv da las mismas filas en CSV.

¿Qué significan las cifras?

De 0 a 24 es miedo extremo; de 25 a 44, miedo; de 45 a 55, neutral; de 56 a 75, codicia; y de 76 a 100, codicia extrema. Cada lectura incluye su zona como clave (band: extreme-fear, fear, neutral, greed, extreme-greed) y en palabras (label).

¿Cómo se calcula el índice?

El índice de cada moneda es la media ponderada de hasta nueve componentes basados en nuestros propios datos de mercado, de derivados y on-chain, cada uno comparado con el historial de los últimos dos años de la propia moneda. El índice del mercado pondera el índice de Bitcoin, el de Ether, la media de las demás monedas, la amplitud del mercado y los flujos de stablecoins. El método detalla cada parte y su peso.

¿Es la misma cifra que en las páginas y gráficos de CryptoKeyhole?

Sí. La API lee el mismo almacén de datos que nuestras páginas del índice de miedo y codicia y los gráficos de Studio, así que el valor, su zona y su hora siempre coinciden con lo que muestran las páginas.

¿Puedo usar las imágenes en mi web, foro o Discord?

Sí. Cada imagen es un PNG normal en una dirección fija que se redibuja sola, así que los códigos de inserción de esta página siguen mostrando la lectura actual, con su hora de referencia impresa en la imagen.

Lecturas de hoyAbrir la APICrear una cuenta gratuita

El índice lo calcula CryptoKeyhole con sus propios datos de mercado, de derivados y on-chain y con las visitas públicas de Wikimedia. La API y las imágenes sirven exactamente lo que muestran nuestras páginas y gráficos, y cada lectura va con su hora.