/api/funding/heatmap
GETAvailable

Funding-rate heatmap

Funding-rate heatmap (coin × day)

GET/api/funding/heatmap

Request

Query parameters

NameTypeRequiredDefaultAllowed valuesDescription
daysintegerOptional30≥ 7 · ≤ 90Look-back window in days. Example: 30
exchangestringOptionalbinance—Exchange id (lowercase, e.g. binance). Example: binance
limitintegerOptional50≤ 100Number of rows to return.

Example request

curl -s "https://www.coinboss.com/api/funding/heatmap?exchange=binance&days=30"

Response fields

The field table is generated from real responses, so it lists exactly what the endpoint returns. Paths use a[] for array items and {*} for objects keyed by a dynamic name such as a coin or an exchange.

FieldTypeUnitDescription
successboolean—true when the request succeeded. On failure the body is `{ success: false, code, error, request_id }`.
exchangestring—Exchange id, lower case (for example `binance`).
daysnumber—Daily values or number of days.
coinsarray—Coins.
coins[]string—Coins.
day_tsarray—Timestamp.
day_ts[]numbermsTimestamp.
matrixarray—Matrix keyed by row and column.
matrix[]array—Matrix keyed by row and column.
matrix[][]number|null—Matrix keyed by row and column.

Generated 2026-11-11 23:00 UTC from 3 real responses.

Example response

/api/funding/heatmap?exchange=binance&days=30 · Real response captured 2026-11-13 03:57:47 UTC. Long arrays and maps are shortened for display: coins had 50 items; day_ts had 30 items; matrix had 50 items; matrix[] had 30 items.

  • {
    • "success": true,
    • "exchange": "binance",
    • "days": 30,
    • "coins": [
      • "BTC",
      • "ETH",
      • "ZEC",
      • "SOL",
      • "XAU",
      • "XRP",
      • "HYPE",
      • "XAG"
      ],
    • "day_ts": [
      • 1792022400000,
      • 1792108800000,
      • 1792195200000,
      • 1792281600000,
      • 1792368000000,
      • 1792454400000,
      • 1792540800000,
      • 1792627200000
      ],
    • "matrix": [
      • [ … 8 ],
      • [ … 8 ]
      ]
    }

Verified samples

Besides the example above, the probe calls this endpoint with these parameters and checks the schema each time.

ParametersHTTPLatencyResult
days=30&exchange=okx20065 msPass
days=30&exchange=hyperliquid20078 msPass

Checked 2026-11-13 03:57:47 UTC

Details

Authentication
None. Public endpoint.
Rate limit
1200 requests per minute per IP
Server cache
5m
Edge micro-cache
10s
Update frequency
hourly (deriv collector on a 60-min timer; self-data settle job at minute >= 6 of each hour)
Window
days param, default 30, range 7..90; one cell per coin per UTC day
Data sources
Settled funding-rate records polled hourly by in-house collectors from the public funding-history endpoints of 16 venues (e.g. binance, bybit, okx, gate, bitget, hyperliquid).
Exchange coverage
one exchange per request (exchange param, default binance); top coins by futures volume; non-crypto symbols filtered by a crypto whitelist; 16 venues; binance covers all USDT perpetuals; bybit / okx / gate / bitget cover the top 60 coins by futures volume, htx the top 20; aster, hyperliquid, kucoin, mexc, bingx, kraken, dydx, deribit, whitebit, cryptocom keep one main contract per coin; bitfinex has no public settlement history; history depth differs by venue (binance / bybit / okx / bitget from 2026-04-04, others later)
Pagination
limit = number of coins (default 50, max 100)
Sorting
futures volume desc
Units
cumulative settled funding in percent per UTC day; day_ts in Unix ms
Method
cell = SUM(settled rate) x 100 over all settlements of that coin on that UTC day for the selected exchange
Timestamps
Unix epoch milliseconds (UTC) unless the field description says otherwise
Response format
json
Stability
Stable

Live status

AvailableChecked 2026-11-13 03:57:47 UTCHTTP 200318 msSchema matchesNewest data point 4h old

Availability, last 30 days

100% of 410 checks passed

Errors

Failed calls share one shape on every endpoint. The full list is on the errors page. Errors and rate limits →

CodeHTTPMeaningWhat to do
INVALID_PARAM400A required parameter is missing or a value is not accepted. `param` names the parameter when it is known.Do not retry unchanged; fix the request.
UNAUTHORIZED401The `CB-API-KEY` header was sent but the key is unknown or revoked. Public data needs no key — drop the header or use a valid key.Do not retry unchanged.
FORBIDDEN403The route is not part of the public API (internal or account-only).Do not retry.
NOT_FOUND404Unknown route, or the requested coin / exchange / fund does not exist.Do not retry; check the path and identifiers against the catalog.
RATE_LIMITED429More requests than the per-minute limit. `Retry-After` gives the seconds to wait.Wait for `Retry-After`, then retry with backoff.
INTERNAL500Unexpected server error. The message is generic by design; quote `request_id` when reporting it.Retry once after a few seconds; report it with the request id if it persists.
UPSTREAM_FAILED503The data source behind this endpoint did not answer in time. No stale or substitute numbers are returned in its place.Retry with backoff; check the status page.
UNAVAILABLE501 / 503The dataset is temporarily not ready (cache warming) or the endpoint has no lawful public source yet.Retry later; the catalog marks endpoints that are unavailable by design.
REQUEST_FAILED200Some older endpoints answer HTTP 200 with `success: false`. Always check `success`, not only the HTTP status.Depends on the message; treat as a failed request.

Try it

GET/api/funding/heatmapAvailable
Parameters

integer · default 30 · min 7 · max 90 — Look-back window in days.

string · default binance — Exchange id (lowercase, e.g. binance).

integer · default 50 · max 100 — Number of rows to return.

Request URLhttps://www.coinboss.com/api/funding/heatmap?days=30&exchange=binance
Choose an endpoint and press “Send request”. The response, headers and timing will appear here.