# Fear & Greed (`sentiment_fear_greed`)

> The market-wide Fear & Greed index, 0 to 100 with the label that goes with it. One number for how the crowd is feeling.

- Category: Sentiment
- MCP tool: `sentiment_fear_greed`
- REST: `GET /sentiment/fear-greed`
- MCP App: hosts that support MCP Apps render the result as an interactive view
- x402 price: $0.005 per call (USDC on Base)
- HTML: https://www.f1ow.com/docs/tools/sentiment_fear_greed

## What it does

Market-wide Fear & Greed index (0-100 plus label) as the median of independent sources (a data provider, Alternative.me, a data provider), with every source's own value, label and observation time in `sources`. `agreement` (aligned/mixed/divergent) says how far the sources differ; a source older than 36h is listed but excluded from the median. Sources publish at different cadences (a data provider about every 15 minutes, the others daily), so read `observedAt`/`ageSeconds` per source. A macro sentiment gauge; use market_overview for the full market snapshot.

## Parameters

None.

## Call it

### cURL

```bash
curl "https://mcp.f1ow.com/v1/sentiment/fear-greed" \
  -H "Authorization: Bearer $F1OW_API_KEY"
```

### MCP

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "sentiment_fear_greed",
    "arguments": {}
  }
}
```

### TypeScript

```ts
const res = await fetch("https://mcp.f1ow.com/v1/sentiment/fear-greed", {
  headers: { Authorization: `Bearer ${process.env.F1OW_API_KEY}` },
});
const data = await res.json(); // the tool's result as JSON, typed in the OpenAPI spec
console.log(data);
```

### Python

```python
import os, requests

res = requests.get(
    "https://mcp.f1ow.com/v1/sentiment/fear-greed",
    headers={"Authorization": f"Bearer {os.environ['F1OW_API_KEY']}"},
)
data = res.json()  # the tool's result as JSON, typed in the OpenAPI spec
print(data)
```

### WebSocket

```jsonc
// wss://mcp.f1ow.com/v1/ws — subprotocol "jsonrpc-2.0", Authorization: Bearer <key>
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "sentiment_fear_greed",
    "arguments": {}
  }
}

// Or push a fresh result whenever it changes (minimum interval 15 s)
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "subscriptions/subscribe",
  "params": {
    "name": "sentiment_fear_greed",
    "arguments": {},
    "intervalSeconds": 60
  }
}
```

### x402

```bash
# No account: the first call answers 402 with a PAYMENT-REQUIRED challenge;
# an x402 client pays it in USDC on Base and retries.
curl "https://mcp.f1ow.com/x402/v1/sentiment/fear-greed"
```

## Sample response

Captured 2026-11-13. The JSON is what REST and WebSocket return and the `structuredContent` of an MCP call (trimmed):

```json
{
  "agreement": "aligned",
  "asOf": "2026-11-13T07:53:10Z",
  "label": "Extreme Fear",
  "max": 20,
  "method": "median",
  "min": 19,
  "sourceCount": 2,
  "sources": [
    {
      "ageSeconds": 754,
      "expectedNextUpdateAt": "2026-11-13T08:08:10Z",
      "included": true,
      "label": "Extreme Fear",
      "name": "CoinMarketCap",
      "observedAt": "2026-11-13T07:53:10Z",
      "value": 19
    },
    {
      "ageSeconds": 29144,
      "expectedNextUpdateAt": "2026-11-14T00:00:00Z",
      "included": true,
      "label": "Extreme Fear",
      "name": "Alternative.me",
      "observedAt": "2026-11-13T00:00:00Z",
      "value": 20
    },
    {
      "ageSeconds": 27943,
      "expectedNextUpdateAt": "2026-11-14T00:00:00Z",
      "included": false,
      "label": "Extreme Fear",
      "name": "CoinGlass",
      "note": "listed only: does not count toward the aggregate",
      "observedAt": "2026-11-13T00:20:01Z",
      "value": 21
    }
  ],
  "spread": 1,
  "value": 20,
  "generatedAt": "2026-11-13T08:05:44.7142757+00:00"
}
```

Over MCP the text report a model reads comes with it:

```text
Fear & Greed: 20/100 — Extreme Fear (median of 2 sources; range 19–20, aligned)
  CoinMarketCap: 19 — Extreme Fear (observed 2026-11-13T07:53:10Z, 12m ago)
  Alternative.me: 20 — Extreme Fear (observed 2026-11-13T00:00:00Z, 8h ago)
  CoinGlass: 21 — Extreme Fear (observed 2026-11-13T00:20:01Z, 7h ago) [listed only: does not count toward the aggregate]
```

## Related tools

- [Social Sentiment](https://www.f1ow.com/docs/tools/sentiment_social) — Per-coin social composite: galaxy score, alt rank, bullish share, social volume, dominance and interactions. How much attention a coin is getting, and from whom.
- [Tweet Search](https://www.f1ow.com/docs/tools/sentiment_twitter) — Raw crowd voice: public X posts from the last seven days on a coin, a topic or a single account, with likes, reposts, replies and views attached, so volume can be weighed against actual reach.
- [Market Regime](https://www.f1ow.com/docs/tools/research_regime) — What kind of market you are trading in. Seven forces — trend, volatility, cycle, sentiment, leverage stress, ETF liquidity, rotation — each voting with its own reasoning and its own threshold for changing the call.
- [Positioning](https://www.f1ow.com/docs/tools/research_positioning) — Who is on the other side of your trade. Up to eight reads on one coin — who is crowded, who is fragile, who is trapped — plus the price levels the whole board is watching.
