Free public API for the NHCI Score — NeverHodl Cycle Intelligence. Real-time Bitcoin cycle index 0–100, updated hourly. No API key required for the public tier.
curl https://www.neverhodl.com/api/public/nhci
{
"ok": true,
"btc": {
"score": 56.4, // 0–100 cycle index
"phase": "Bull Active",
"signal": "HOLD", // ACCUMULATE | HOLD | CAUTION | REDUCE
"updated_at":"2026-05-13T06:00:00Z"
},
"crypto": { "score": 52.1, "phase": "Bull Active" },
"market": {
"btc_price_usd": 98420,
"btc_dominance_pct":57.3,
"fear_greed": { "value": 62, "classification": "Greed" }
}
}Both endpoints below are fully public, CORS-open, and rate-limited to 20 requests per minute per IP. No registration needed.
Returns the current BTC NHCI Score, Crypto NHCI Score, and live market data. Updated hourly.
| Field | Type | Description |
|---|---|---|
| score | number | NHCI Score 0–100. 1 decimal place. |
| phase | string | Bottom · Accumulation · Bull Active · Hot Zone · NeverHodl™ |
| phase_key | string | Machine-readable phase: FONDO · ACUM · BULL · HOT · NEVERHODL |
| signal | string | ACCUMULATE · HOLD · CAUTION · REDUCE |
| context.descent_guard | string|null | Active if bear market descent pattern detected. Null otherwise. |
| context.top_risk | string|null | Active if cycle top distribution detected. Null otherwise. |
| updated_at | ISO 8601 | Timestamp of last engine computation. |
| stale | boolean | True if score is older than 2 hours. |
Returns the last 30 days of daily BTC NHCI Score. Includes raw score, EMA-smoothed score, phase, and BTC price at computation time. Updated daily at 06:00 UTC.
curl https://www.neverhodl.com/api/public/nhci/history
{
"ok": true,
"asset": "BTC",
"days": 30,
"data": [
{
"date": "2026-04-13",
"score": 48.2, // raw daily NHCI score
"score_smoothed": 49.1, // EMA-smoothed (reduces noise)
"phase": "Bull Active",
"phase_key": "BULL",
"btc_price_usd": 84200
},
// ... 29 more rows, oldest → newest
]
}// Live score — no API key needed const res = await fetch('https://www.neverhodl.com/api/public/nhci'); const { btc, market } = await res.json(); console.log(`Score: ${btc.score} | Phase: ${btc.phase} | BTC: $${market.btc_price_usd}`); // → "Score: 56.4 | Phase: Bull Active | BTC: $98420" // Alert example if (btc.signal === 'REDUCE') { sendAlert('⚠️ NeverHodl™ zone — reduce exposure'); }
import requests r = requests.get('https://www.neverhodl.com/api/public/nhci') data = r.json() print(f"NHCI: {data['btc']['score']} — {data['btc']['phase']}") print(f"BTC: ${data['market']['btc_price_usd']:,}")
import requests import matplotlib.pyplot as plt r = requests.get('https://www.neverhodl.com/api/public/nhci/history') hist = r.json()['data'] dates = [d['date'] for d in hist] scores = [d['score'] for d in hist] plt.plot(dates, scores) plt.title('BTC NHCI Score — last 30 days') plt.axhline(75, color='red', linestyle='--', label='NeverHodl zone') plt.axhline(35, color='blue', linestyle='--', label='Bottom zone') plt.legend() plt.show()
Drop the live NHCI widget anywhere — blog, Notion, portfolio tracker, crypto dashboard. Auto-fetches data. No API key. No backend. Mandatory attribution included.
<script src="https://www.neverhodl.com/embed/nhci-chart.js"></script> <div id="nhci-widget" data-asset="btc"></div>
| Attribute | Default | Description |
|---|---|---|
| data-asset | "btc" | Asset to display. Use "btc" for Bitcoin NHCI Score. Crypto NHCI coming soon. |
| id / data-nhci-widget | — | Use id="nhci-widget" for a single widget, or data-nhci-widget on multiple elements. |
No chart, no Chart.js dependency. Loads instantly on any device. Perfect for Telegram mini-apps, mobile blogs, or narrow sidebars.
<script src="https://www.neverhodl.com/embed/nhci-badge.js"></script> <div data-nhci-badge data-asset="btc"></div>
| data-size | Max width | Use case |
|---|---|---|
| sm | 220px | Narrow sidebar, Telegram card |
| (default) | 320px | Mobile blog post, widget column |
| lg | 400px | Desktop sidebar, newsletter |
Full NHCI history since 2017, personal API keys, and higher rate limits. Join the waitlist.
| Tier | Limit | Headers |
|---|---|---|
| Public (no auth) | 20 requests / minute per IP | — |
| API Pro (coming soon) | Higher limits with key | X-NHCI-API-Key: nh_live_… |
When rate limited, you receive HTTP 429. Back off with exponential retry.
If you display or publish NHCI Score data, attribution is required:
NHCI Score by NeverHodl™ — neverhodl.com
BTC price sourced from Kraken · Fear & Greed from Alternative.me · BTC Dominance from CoinGecko. See full attribution page.