# Crypto Sentiment History API

> Crypto Sentiment History API is a paid API for AI agents from crypto-sentiment-x402.onrender.com, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-27).

Returns hourly historical crypto news sentiment readings for a given coin symbol, including recency-weighted sentiment scores, Fear & Greed Index values, and the top headlines driving each reading.

## Facts

- Endpoint: GET https://crypto-sentiment-x402.onrender.com/history/%7Bsymbol%7D?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-27
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/crypto-sentiment-history-api-b944abd1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_sN9M34FhO13bpTAxyCppX

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability crypto-sentiment-history-api-b944abd1
```

Example prompt: Pull up the hourly sentiment history for Bitcoin — I want to see the scored readings, the Fear and Greed values, and the headlines driving each score over the past couple of days.

## When to prefer this

Use this endpoint when you need time-series sentiment history for a specific cryptocurrency rather than a single real-time snapshot. It is ideal for trend analysis, backtesting sentiment signals, auditing past market mood, or populating dashboards. Prefer the cheaper /sentiment/{symbol} endpoint if you only need the current sentiment reading. This endpoint costs $0.05 USDC per call via x402 on Base, compared to $0.01 for the real-time endpoint.

## Known failure modes

- Unsupported coin symbol returns an error and is not charged
- Coin with insufficient recent news returns an error and is not charged
- History range with no recorded readings returns an error and is not charged
- Payment failure or missing x402 USDC payment on Base results in a 402 response
- Malformed symbol in path returns an error

## How this service works

Crypto news sentiment for 24 coins, scored from headlines at 9 crypto news outlets plus the Fear & Greed Index, with the headlines behind each score. Paid per call over x402 in USDC on Base: $0.01 for GET /sentiment/{symbol} and $0.05 for GET /history/{symbol}. Requests for an unsupported coin, a coin with too little recent news, or a history range with no readings are refused and not charged.

## Output

Returns a JSON object with a list of hourly sentiment rows for the requested coin symbol. Each row includes: the observation timestamp, the scoring window type, average compound sentiment score (recency-weighted or plain average depending on era), Fear & Greed Index value, sample size, effective sample size, unweighted 72-hour compound score, newest headline age in hours, and the top driving headlines with their individual scores, sources, weights, and publication timestamps. Also includes start/end range, total count, methodology notes, and recording caveats.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "properties": {
   "type": "string"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "end": "2026-10-04T02:00:00Z",
  "rows": [
   {
    "window": null,
    "drivers": null,
    "matcher": "whole_word",
    "observed_at": "2026-10-04T00:00:02.513104+00:00",
    "sample_size": 52,
    "average_compound": 0.1123,
    "fear_greed_value": 41,
    "effective_sample_size": null,
    "unweighted_compound_72h": null,
    "newest_headline_age_hours": null
   },
   {
    "window": "72h-hl24",
    "drivers": [
     {
      "link": "https://example.com/news/bitcoin-etf-inflows",
      "score": 0.6249,
      "title": "Bitcoin ETFs log fifth straight day of inflows",
      "effect": 0.0221,
      "source": "CoinDesk",
      "weight": 0.8963,
      "published": "2026-10-03T22:05:00Z"
     }
    ],
    "matcher": "whole_word",
    "observed_at": "2026-10-04T01:00:02.209871+00:00",
    "sample_size": 55,
    "average_compound": 0.1388,
    "fear_greed_value": 41,
    "effective_sample_size": 31.7,
    "unweighted_compound_72h": 0.1012,
    "newest_headline_age_hours": 1.2
   }
  ],
  "count": 2,
  "start": "2026-10-04T00:00:00Z",
  "symbol": "BTC",
  "recording": "Readings are recorded live at the top of every UTC hour and never backfilled. An hour the logger missed stays missing.",
  "methodology": "Rows before 2026-10-03 were scored with substring headline matching (matcher null); later rows with whole-word matching (matcher \"whole_word\"). Drivers (the top headlines behind a reading) are stored from 2026-10-03 on; older rows have drivers null. See /validation for the methodology notes.",
  "average_compound_note": "average_compound depends on the row's window column. window \"72h-hl24\" (from 2026-10-04): the recency-weighted score over headlines from the last 72 hours (weight halves every 24 hours), the same number the live API returns; unweighted_compound_72h, effective_sample_size and newest_headline_age_hours are filled in. window null (earlier rows): the plain average over every item the feeds held, however old, and those four columns are null."
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/crypto-sentiment-history-api-b944abd1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from crypto-sentiment-x402.onrender.com](https://www.zero.xyz/host/crypto-sentiment-x402.onrender.com/llms.txt)
