---
title: "Get Hash Ribbon"
method: GET
path: "/api/v1/on-chain/miners/hash-ribbon"
tags: ["On-Chain Intelligence"]
---

# Get Hash Ribbon

`GET /api/v1/on-chain/miners/hash-ribbon`

## Request

- Base URL: `https://cryptodataapi.com`
- URL: `https://cryptodataapi.com/api/v1/on-chain/miners/hash-ribbon`
- Auth: API key in header `X-API-Key`

Hash Ribbon indicator: 30dMA vs 60dMA of BTC hashrate.

States:
- **capitulation**: 30dMA < 60dMA — miners shutting off rigs
- **recovery**: 30dMA just crossed back above 60dMA (within 14d) —
  historically the strongest BTC bottom signal
- **normal**: standard configuration with no recent crossover

Source: mempool.space hashrate index (3y daily history).

## Response `200`

Successful Response

- HashRibbonResponse
  - `as_of` integer, required
  - `state` string, required: capitulation | recovery | normal
  - `days_in_state` integer, required
  - `last_crossover_ts` integer, required
  - `hashrate_eh` number, required
  - `ma30_eh` number, required
  - `ma60_eh` number, required
  - `ratio_ma30_over_ma60` number, nullable
  - `compressed` boolean, required
  - `history_days` integer, required

---

[API](https://skmtc.dev/cryptodataapi/apis/crypto-data-api.md) · [All operations](https://skmtc.dev/cryptodataapi/apis/crypto-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cryptodataapi/apis/crypto-data-api/revisions/8628b754ca81?raw)
