---
title: "Get Indicator Heatmap"
method: GET
path: "/api/v1/indicators/heatmap"
tags: ["Indicators"]
---

# Get Indicator Heatmap

`GET /api/v1/indicators/heatmap`

## Request

- Base URL: `https://cryptodataapi.com`
- URL: `https://cryptodataapi.com/api/v1/indicators/heatmap`
- Auth: API key in header `X-API-Key`

One-call scan table for a coin universe (Pro) — what otherwise takes one call per coin.

Each row joins the SIGNUM_RGG daily colour (``signum``, ``days_in_color``, ``adx``),
rolling hourly moves (``pct_1h``, ``pct_4h``, ``pct_24h``), 30-day notional liquidity
(``notional_30`` — mean daily USD volume, the same field as ``/volatility/regime``
``vol.notional_30``) and the daily 200-SMA position (``above_sma200``,
``dist_from_200_pct`` — from ``/indicators/technical``). Served from data the API already
holds, so the whole universe is one instant call and spends no exchange rate limit.

**The moves are rolling windows over COMPLETED hourly bars.** ``pct_4h`` is the change from
the close four hours before the last completed hourly close to that close — it is NOT the
open-to-close of a 4h bar, so it is not aligned to 00/04/08 UTC. ``as_of`` is the close
time of that last completed bar. They refresh hourly (:05 UTC) with SIGNUM_RGG, so during
the hour they describe the last full hour, not the forming one. ``price`` is that bar's
close. A window whose bar is missing from the series is ``null``. ``pct_4h_bar`` IS the
clock-aligned move: open to close of the last closed UTC 4h bar, ending at
``bar_4h_as_of``. The top-level ``moves`` object states this in every response.

``signum`` / ``days_in_color`` / ``adx`` are the completed-DAILY read, the same bar
contract as ``/indicators/signum-rgg``. ``signum_4h`` / ``bars_in_color_4h`` are the same
cascade over COMPLETED 4h bars on the ``/hyperliquid/candles?interval=4h`` grid (null when
under 30 complete 4h bars). Pegged / stablecoin rows are excluded.

Filters: ``min_notional_30`` (liquidity floor), ``color``, ``color_4h``, ``above_sma200``. Sort with
``sort`` (default ``notional_30``); ``sort=pct`` orders by the move named by ``interval``.
Rows lacking the sort value go last. ``source`` defaults to ``hyperliquid_perp``.

Example: ``?min_notional_30=3000000&color=green&above_sma200=true&sort=pct&interval=4h``.

## Query parameters

- `source` 'hyperliquid_perp' | 'binance_spot' | 'all': Universe. `all` adds the Binance-spot fill.
- `interval` '1h' | '4h': Which move `sort=pct` orders by (`pct_1h` or `pct_4h`). Every row always carries all three moves.
- `min_notional_30` number, nullable: Liquidity floor: drop rows whose 30-day mean daily USD notional is below this (rows with unknown liquidity are dropped too).
- `color` 'red' | 'grey' | 'green', nullable
- `color_4h` 'red' | 'grey' | 'green', nullable: Filter on the 4h SIGNUM colour (`signum_4h`).
- `above_sma200` boolean, nullable: true = above the daily 200-SMA, false = below.
- `sort` 'notional_30' | 'pct' | 'days_in_color' | 'adx' | 'symbol'
- `order` 'asc' | 'desc'
- `limit` integer

## Response `200`

Successful Response

- HeatmapResponse
  - `items` HeatmapRow[], required
    - `symbol` string, required
    - `source` 'binance_spot' | 'hyperliquid_perp', required
    - `price` number, nullable
    - `pct_1h` number, nullable
    - `pct_4h` number, nullable
    - `pct_24h` number, nullable
    - `pct_4h_bar` number, nullable
    - `signum` 'red' | 'grey' | 'green', required
    - `days_in_color` integer, required
    - `adx` number, required
    - `signum_4h` 'red' | 'grey' | 'green', nullable
    - `bars_in_color_4h` integer, nullable
    - `notional_30` number, nullable
    - `above_sma200` boolean, nullable
    - `dist_from_200_pct` number, nullable
  - `count` integer, required
  - `universe_size` integer, required
  - `interval` string, required
  - `as_of` string, nullable
  - `bar_4h_as_of` string, nullable
  - `moves` object
  - `timestamp` string, required

## Other responses

- `422`: Validation Error

---

[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)
