본문으로 건너뛰기

청산 맵 API

청산 맵 API는 레버리지를 사용한 무기한 선물 포지션이 현재 가격 대비 어느 가격대에서 강제 청산되는지를 반환합니다. 가격이 각 레벨까지 하락하면 청산될 롱 포지션이 몇 달러인지, 각 레벨까지 상승하면 청산될 숏 포지션이 몇 달러인지를 나타냅니다. 맵은 BTC, ETH, SOL, HYPE별로 하루에 하나씩 제공됩니다.

두 소스는 항상 따로 반환되며, 화면에 표시할 때도 반드시 구분해야 합니다.

source표시 이름설명코인히스토리
hyperliquidHyperliquid — 실제 포지션사실 데이터: 모든 보유자의 포지션과 청산 가격을 직접 읽어 온 값.BTC, ETH, SOL, HYPE2025-07-29부터
binance_modelBinance — 모델추정치: Binance는 포지션을 공개하지 않으므로, 공개된 미결제약정과 1시간봉 캔들을 바탕으로 레벨을 모델링합니다.BTC, ETH, SOL, HYPE2023-01-01부터; HYPE는 2025-06-06부터

맵을 만드는 방식, 버킷의 의미, 검증 결과는 청산 맵 방법론을 참고하십시오.

트레이딩 신호가 아닙니다

청산 맵은 현황을 보여 주는 도구일 뿐, 가격 목표나 트레이딩 신호가 아닙니다.

엔드포인트​

메서드경로설명
GET/v1/liqmap/meta소스, 코인, 히스토리 범위, 공백 구간, 최신 스냅샷
GET/v1/liqmap/map특정 일자의 레벨 (기본값: 최신 맵)
GET/v1/liqmap/heatmap히트맵용 일자 × 가격 행렬

기본 URL: https://api.blocklens.co. 모든 응답은 {"success": true, "data": {…}} 형태의 JSON입니다.

인증​

모든 요청에는 API 키가 필요합니다.

Authorization: Bearer YOUR_API_KEY

API 키에 대해서는 인증을, API 접근이 포함된 요금제와 요청 한도에 대해서는 속도 제한 및 등급을 참고하십시오.

등급과 히스토리​

히스토리 범위 제한은 Lab 화면뿐 아니라 API에도 동일하게 적용됩니다.

등급현재 맵히스토리 (/map?date=, /heatmap)
Free예최근 30일
Pro, Enterprise예전체 (Hyperliquid는 2025-07-29부터, Binance 모델은 2023-01-01부터)

모든 응답에는 access 블록이 포함됩니다.

"access": {"tier": "free", "grade": 0, "full_history": false, "history_from": "2026-09-21", "clipped": false}
  • history_from — 호출자가 조회할 수 있는 첫 번째 날짜 (전체 히스토리인 경우 null).
  • clipped — /heatmap 요청 범위가 history_from 이전까지 걸쳐 있어 일부 날짜가 잘린 경우 true.
  • history_from 이전 날짜에 대한 /map 요청은 403을 반환합니다 (오류 참고). /heatmap은 이 사유로 403을 반환하지 않고, 허용된 범위만 반환하면서 clipped를 설정합니다.

일자와 스냅샷 시각​

  • snapshot_ts — 맵이 나타내는 시점 (UTC, ISO 8601); day — 해당 시점의 UTC 날짜.

  • Hyperliquid에는 세 종류의 스냅샷이 있습니다.

    • kind = "scan" — 모든 보유자를 대상으로 하는 일일 스캔 (약 02:00–03:40 UTC, 거래소 미결제약정 대비 커버리지 포함);
    • kind = "archive" — 아카이브된 거래소 전체 상태 (히스토리; 약 2일 지연되어 게시되며 하루 중 시각이 일정하지 않으므로 항상 snapshot_ts를 확인하십시오);
    • kind = "reconstructed" — 아카이브 스냅샷이 없는 날짜(2025-08-01 및 2025-10-25 … 2025-12-14)에 대한 추정치. 인접한 아카이브 스냅샷 사이의 거래소 체결 내역과 계정 간 이체를 바탕으로 day의 00:05 UTC 기준 포지션을 재구성합니다. 포지션 크기와 진입 가격은 정확하며, 청산 가격은 추정치입니다. HYPE는 정확도가 낮습니다. 재구성된 행이 실제 행을 대체하지는 않습니다.

    특정 날짜에 반환되는 종류의 우선순위: /map — scan, 없으면 archive, 없으면 reconstructed; /heatmap의 행 — archive, 없으면 scan, 없으면 reconstructed. 현재 맵은 최신 스캔입니다.

  • Binance 모델: kind = "model", day의 00:00 UTC 기준 상태이며 180일 윈도우로 산출됩니다. 윈도우 기간 중에 상장된 코인(HYPE, 2025-05-30 상장)은 처음 몇 달 동안 윈도우가 다 채워지지 않은 워밍업 구간입니다. /meta의 warmup_complete_from, /map의 quality.warmup_complete, /heatmap의 warmup을 참고하십시오.

GET /v1/liqmap/meta​

매개변수는 없습니다. 데이터가 있는 모든 소스와 코인 목록을 반환합니다.

curl -H "Authorization: Bearer YOUR_API_KEY" https://api.blocklens.co/v1/liqmap/meta
{
"success": true,
"data": {
"sources": [
{
"id": "binance_model", "label": "Binance — model", "kinds": ["model"], "variants": ["all"],
"model": {"window_days": 180, "leverage": [[3, 1], [4, 1], [5, 3], [10, 3], [20, 1], [25, 1], [50, 1], [100, 1]],
"split": "taker", "mmr": {"BTC": 0.004, "ETH": 0.005, "SOL": 0.005, "HYPE": 0.01}},
"coins": {
"HYPE": {
"first_day": "2025-06-06", "last_day": "2026-10-21", "days": 503,
"gaps": [], "gaps_detail": [], "reconstructed": [], "heatmap_bin": 0.25,
"warmup_complete_from": "2025-11-28",
"latest": {"day": "2026-10-21", "kind": "model", "snapshot_ts": "2026-10-21T00:00:00Z",
"mark": 80.388, "coverage": null}
}
}
}
],
"access": {"tier": "pro", "grade": 1, "full_history": true, "history_from": null, "clipped": false}
}
}
필드의미
first_day, last_day, days맵이 있는 날짜 (모든 종류 합산)
gaps, gaps_detail맵이 전혀 없는 날짜 구간; cause: source — 상위 소스에 데이터가 없고 재구성되지도 않은 경우로 영구적; pipeline — 당사 파이프라인 문제로 누락된 경우로, 다시 생성할 수 있음. 재구성된 날짜는 공백 구간이 아닙니다
reconstructedkind = "reconstructed"(추정치)로만 제공되는 날짜 구간: from, to, days, cause (source), 고정된 reason, warning — null 또는 "reduced_accuracy" (HYPE). 해당 구간이 없으면 []. Hyperliquid: 2025-08-01 및 2025-10-25 … 2025-12-14
heatmap_bin해당 코인의 /heatmap 가격 구간(bin)
warmup_complete_from180일 모델 윈도우가 완전히 채워진 첫 날짜 (코인이 히스토리 기간 중에 상장된 경우가 아니면 first_day와 같음)
latest최신 맵: day, kind, snapshot_ts, mark, coverage (Hyperliquid 스캔)
modelBinance 모델 매개변수: 윈도우, 레버리지와 가중치, 방향 분할, 코인별 유지 증거금률

GET /v1/liqmap/map​

매개변수기본값설명
source필수hyperliquid 또는 binance_model
coinBTCBTC, ETH, SOL, HYPE
variantallex_top20 — 방향별 상위 20개 최대 포지션 제외 (Hyperliquid 전용)
date최신YYYY-MM-DD; 등급별 범위에 따라 검사됨
kindscan, 없으면 archive, 없으면 reconstructedHyperliquid 전용: scan, archive 또는 reconstructed. kind를 지정하면 반환되는 날짜가 등급별 범위에 따라 검사됨
price_min, price_max가격의 ±50%levels의 범위만 제한함; 누적 합계는 여전히 전체 맵 기준으로 계산됨
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.blocklens.co/v1/liqmap/map?source=hyperliquid&coin=BTC"
{
"success": true,
"data": {
"source": "hyperliquid", "coin": "BTC", "variant": "all", "kind": "scan",
"day": "2026-10-21", "snapshot_ts": "2026-10-21T04:24:01Z", "mark": 82786.0, "step": 250.0,
"levels": [
{"low": 81000.0, "high": 81250.0, "long_usd": 8921855.42, "short_usd": 0.0, "n_long": 192, "n_short": 0,
"long_cum": 8921855.42, "short_cum": 0.0}
],
"peaks": {
"long": [{"price": 69125.0, "usd": 103298708.19, "dist": -0.165, "cum_usd": 591527132.58}],
"short": [{"price": 99375.0, "usd": 86587194.39, "dist": 0.2004, "cum_usd": 493868353.82}]
},
"summary": {"long_usd": 1099674044.33, "short_usd": 883645628.86,
"beyond_span_long_usd": 44627725.29, "beyond_span_short_usd": 2016401356.54,
"top20_long_usd": 498000000.0, "top20_short_usd": 371000000.0},
"coverage": {"long_share": 0.9998, "short_share": 0.9999, "ok": true},
"quality": {"addresses_source": "archive", "addresses_scanned": 41526, "failed": 0, "duration_min": 83.1},
"access": {"tier": "pro", "grade": 1, "full_history": true, "history_from": null, "clipped": false}
}
}
필드의미
levels가격 오름차순으로 정렬된 동일 폭 버킷 [low, high), 폭은 가격의 약 0.25% (step). long_usd — 가격이 해당 버킷까지 하락할 경우 청산되는 롱 (mark 아래에만 존재); short_usd — 가격이 해당 버킷까지 상승할 경우 청산되는 숏 (mark 위에만 존재). USD = |크기| × 청산 가격
n_long, n_short버킷 내 포지션 수 (Hyperliquid; 모델의 경우 0)
long_cum, short_cummark에서 해당 버킷까지 아래 방향(롱) 또는 위 방향(숏)으로 누적된 USD
peaks방향별로 규모가 가장 큰 버킷 최대 5개(서로 가격의 3% 이상 떨어져 있음); dist = price / mark − 1
summary가격 ±50% 범위 내 합계, 해당 범위를 벗어난 규모 (beyond_span_*), 스캔 중 이미 가격을 지나친 포지션 (past_mark*), 방향별 상위 20개 최대 포지션 (top20_*_usd)
coverageHyperliquid 스캔 전용: 발견된 롱/숏 규모 ÷ 거래소 미결제약정의 절반; ok = 둘 다 ≥ 0.99. 아카이브, 재구성된 날짜 및 모델의 경우 null
quality진단 정보 (스캔 소요 시간, 주소, 모델 윈도우 및 매개변수, warmup_days / warmup_complete, 누락된 시간); 호버 표시용이며 로직에는 사용하지 마십시오. 재구성된 날짜에 대해서는 재구성된 날짜를 참고하십시오

재구성된 날짜​

kind = "reconstructed"의 경우 coverage는 null이며, quality는 추정 방식을 설명합니다.

"quality": {"method": "fills_replay_v1", "anchor_prev": "2025-10-24", "anchor_next": "2025-12-15",
"days_to_anchor": 7.0, "share_prev": 0.81, "share_next": 0.12, "share_assumed": 0.07,
"positions": 17012, "ledger_accounts": 2318, "coin_warning": null}
필드의미
method재구성 방법 버전
anchor_prev, anchor_next아카이브 스냅샷이 있는 인접 날짜
days_to_anchor더 가까운 앵커까지의 거리(일) — 정확도를 좌우하는 주요 요인
share_prev, share_next, share_assumed명목 금액 중 담보를 이전 앵커, 다음 앵커, 또는 가정값(공백 기간 중 새로 생긴 계정)에서 가져온 비중
positions, ledger_accounts맵에 포함된 포지션 수와 이체 내역이 재생된 계정 수
coin_warningHYPE의 경우 "reduced_accuracy", 그 외에는 null

실제 스냅샷(51일)과 비교 검증한 결과, 방향별 상위 5개 클러스터 중 평균 56%가 실제 클러스터와 ±1% 이내에 있었습니다 (앵커와 1–3일 떨어진 날짜는 68%, 22–26일 떨어진 날짜는 46%). 이런 날짜는 추정치임을 명시해 표시하십시오.

GET /v1/liqmap/heatmap​

매개변수기본값설명
source, coin, variant/map과 동일
from_date허용된 첫 날짜등급별 범위보다 이전이면 잘려 나가며 access.clipped = true
to_date최신 날짜
price_min, price_max반환된 날짜의 최저 가격 × 0.5 … 최고 가격 × 1.5구간(bin) 격자에 맞춰 조정됨
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.blocklens.co/v1/liqmap/heatmap?source=binance_model&coin=BTC&from_date=2026-09-01"
{
"success": true,
"data": {
"source": "binance_model", "coin": "BTC", "variant": "all",
"bin": 500.0, "price_lo": 41000.0, "n_bins": 4,
"days": ["2026-10-20", "2026-10-21"], "kinds": ["model", "model"],
"snapshot_ts": ["2026-10-20T00:00:00Z", "2026-10-21T00:00:00Z"],
"marks": [81903.3, 82410.2], "close": [82410.2, null], "warmup": [false, false],
"long_usd": [[1484528, 0, 930688, 0], [1210000, 5000, 0, 0]],
"short_usd": [[0, 0, 0, 0], [0, 0, 0, 0]],
"scale": {"p99": 61000000, "max": 103298708},
"access": {"tier": "pro", "grade": 1, "full_history": true, "history_from": null, "clipped": false}
}
}
  • long_usd / short_usd의 j번째 행은 days[j]의 맵이며, i번째 열은 가격 구간 [price_lo + i·bin, price_lo + (i+1)·bin)입니다. 값은 USD 정수입니다. 롱은 해당 날짜의 가격 아래에서만, 숏은 가격 위에서만 0이 아닌 값을 가집니다.
  • 구간(bin): BTC $500, ETH $20, SOL $0.5, HYPE $0.25 — 두 소스 모두 동일한 격자를 사용합니다.
  • 맵이 없는 날짜는 days에 포함되지 않습니다 (빈 행 없음).
  • marks[j] — snapshot_ts[j] 시점의 가격; close[j] — days[j]의 UTC 일봉 종가 (BTC, ETH, SOL; HYPE 및 아직 마감되지 않은 날짜는 null).
  • kinds[j] — 해당 행의 종류; "reconstructed"는 추정치를 나타냅니다 (빗금이나 흐린 색으로 구분해 표시하십시오).
  • warmup[j] — 해당 날짜의 모델 윈도우가 부분적인 워밍업 구간이면 true.
  • scale.p99 — 0이 아닌 셀의 99번째 백분위수; 색상 스케일의 상한으로 이 값을 사용하십시오.

제한 및 페이로드 크기​

  • 히트맵 요청 한 번에 최대 2,000,000개 셀(일자 × 구간)까지 받을 수 있으며, 이를 초과하면 400을 반환합니다.
  • 기본 요청 중 가장 큰 SOL Binance 모델 전체 히스토리(2023-01-01부터 오늘까지, $0.5 구간)는 방향별 약 1,390 × 777개 셀로, 압축되지 않은 JSON 기준 약 6 MB입니다. 응답은 전송 시 gzip으로 압축됩니다.
  • 첫 화면에서는 from_date(예: 최근 90일) 및/또는 현재 가격 주변의 price_min / price_max를 전달하고, 전체 히스토리는 필요할 때 불러오십시오.
  • API 키별 요청 한도: 속도 제한 및 등급.

업데이트 및 캐싱​

  • 맵은 하루에 한 번 생성되며(Binance 모델은 약 01:30 UTC, Hyperliquid 스캔은 02:00 UTC부터), 약 05:30 UTC까지 게시됩니다. 그 전까지는 전날 맵이 최신 맵으로 반환됩니다.
  • 응답은 다음 일일 업데이트까지 서버에 캐시됩니다.
  • 동일한 URL이라도 등급에 따라 다른 히스토리를 반환하므로, 응답은 Cache-Control: private, max-age=3600 및 Vary: Authorization과 함께 전송되며 공유 캐시에는 저장되지 않습니다.

오류​

상태발생 조건본문
400알 수 없는 source / coin / variant, Binance 모델에 대한 ex_top20, 잘못된 날짜, 유한하지 않거나 음수인 price_min / price_max 또는 price_min >= price_max, 2,000,000개 셀을 초과하는 히트맵{"error": "Invalid parameter", "message": "…"}
401API 키 누락 또는 유효하지 않음
403history_from 이전 날짜에 대한 /map 요청{"error": "Insufficient tier", "message": "History older than 30 days requires Pro", "required_grade": 1, "current_tier": "free", "current_grade": 0, "history_from": "2026-09-21", "upgrade_url": "https://blocklens.co/pricing"}
404요청한 소스, 코인 또는 날짜에 대한 맵 없음{"error": "Not found", "message": "…"}
429속도 제한 초과속도 제한 및 등급 참고