# Social Sentiment (`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.

- Category: Sentiment
- MCP tool: `sentiment_social`
- REST: `GET /sentiment/social/{symbol}`
- x402 price: $0.01 per call (USDC on Base)
- HTML: https://www.f1ow.com/docs/tools/sentiment_social

## What it does

Social-sentiment snapshot for one coin: galaxy score (0-100 composite), alt rank (lower is stronger), bullish sentiment %, 24h social volume, social dominance %, and 24h interactions.

## Parameters

| Name | Type | In | Required | Description |
| --- | --- | --- | --- | --- |
| `symbol` | string | path | yes | Coin symbol, e.g. "BTC". |

## Call it

### cURL

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

### MCP

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

### TypeScript

```ts
const res = await fetch("https://mcp.f1ow.com/v1/sentiment/social/SOL", {
  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/social/SOL",
    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_social",
    "arguments": {
      "symbol": "SOL"
    }
  }
}

// Or push a fresh result whenever it changes (minimum interval 15 s)
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "subscriptions/subscribe",
  "params": {
    "name": "sentiment_social",
    "arguments": {
      "symbol": "SOL"
    },
    "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/social/SOL"
```

## Sample response

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

```json
{
  "altRank": 165,
  "bullishSentimentPct": 81.5,
  "galaxyScore": 61.5,
  "interactions24h": 29077632,
  "source": "LunarCrush",
  "symbol": "SOL",
  "generatedAt": "2026-11-13T08:05:48.1075976+00:00"
}
```

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

```text
SOL social sentiment
  galaxy score 62/100 | alt rank #165 | sentiment 82% bullish
  social volume n/a | dominance n/a | interactions 29077632 (24h)
```

## Related tools

- [Fear & Greed](https://www.f1ow.com/docs/tools/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.
- [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.
