오더북 깊이와 슬리피지
거래소별 중간가 ±0.5 / 1 / 2 % 이내 오더북 깊이, 스프레드, 10k / 100k / 1M USD 시장가 주문의 슬리피지를 제공하며, 시장 유형별 집계값과 그 분모도 함께 반환합니다.
/api/sd/liquidity요청
쿼리 파라미터
| 이름 | 타입 | 필수 | 기본값 | 허용 값 | 설명 |
|---|---|---|---|---|---|
| coin | string | 필수 | — | — | 코인 심볼, 대소문자 구분 없음(예: `BTC`). 값이 없거나 형식이 잘못되면 400을 반환합니다. 예시: BTC |
| market | string | 선택 | all | perp, spot, all | 시장 유형. 무기한 선물과 현물 오더북은 절대 합산하지 않습니다. |
요청 예시
curl -s "https://www.coinboss.com/api/sd/liquidity?coin=BTC"응답 필드
필드 표는 실제 응답에서 생성되므로 엔드포인트가 반환하는 내용을 그대로 보여 줍니다. 경로에서 a[]는 배열 항목을, {*}는 코인이나 거래소처럼 동적 이름을 키로 갖는 객체를 뜻합니다.
| 필드 | 타입 | 단위 | 설명 |
|---|---|---|---|
| success | boolean | — | 요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다. |
| schema | string | — | 이 응답의 스키마 ID. 기존 필드의 의미나 타입이 바뀔 때만 변경됩니다. |
| now | number | ms | 응답이 생성된 서버 시각. |
| coin | string | — | 코인 심볼(대문자). |
| market | string | — | `perp` 또는 `spot`. |
| venues | array | — | 거래소 × 시장 × 계약당 한 행. |
| venues[] | object | — | 거래소 × 시장 × 계약당 한 행. |
| venues[].exchange | string | — | 거래소 ID(소문자). |
| venues[].market | string | — | `perp` 또는 `spot`. |
| venues[].symbol | string | — | CoinBoss 저장 형식의 계약 심볼. |
| venues[].quote | string | — | 시장의 호가 통화. USDT, USDC, USD는 1:1로 USD로 계산합니다. |
| venues[].multiplier | number | — | 호가 단위당 코인 수(`1000PEPE` 유형 계약은 1000). 가격은 이미 이 값으로 나눈 값입니다. |
| venues[].contract_value | number | — | 계약 1개의 크기: 선형 계약은 코인 수량, 인버스 계약은 USD. |
| venues[].inverse | boolean | — | 계약당 USD로 호가되는 코인 마진 계약이면 true. |
| venues[].mid | number | USD | (최우선 매수호가 + 최우선 매도호가) ÷ 2, 코인 1개의 가격. |
| venues[].best_bid | number | USD | 코인 1개 기준 최우선 매수호가. |
| venues[].best_ask | number | USD | 코인 1개 기준 최우선 매도호가. |
| venues[].spread_bps | number | bp | (최우선 매도호가 − 최우선 매수호가) ÷ 중간가. |
| venues[].n_bids | number | — | 스냅샷에 포함된 매수 호가 단계 수. |
| venues[].n_asks | number | — | 스냅샷에 포함된 매도 호가 단계 수. |
| venues[].reach_bid_pct | number | % | 중간가에서 스냅샷의 가장 먼 매수 호가까지의 거리. |
| venues[].reach_ask_pct | number | % | 중간가에서 스냅샷의 가장 먼 매도 호가까지의 거리. |
| venues[].book_complete_bid | boolean | — | 오더북의 매수 측 전체가 반환되었으면 true. |
| venues[].book_complete_ask | boolean | — | 오더북의 매도 측 전체가 반환되었으면 true. |
| venues[].bands | object | — | 밴드별 깊이. 키 `0.5`, `1`, `2`는 중간가로부터의 거리(%)입니다. |
| venues[].bands.1 | object | — | 중간가로부터 이 거리(%)에 해당하는 밴드. |
| venues[].bands.1.bid_depth_usd | number | USD | 중간가와 밴드 하단 경계 사이의 대기 매수 주문 명목가치. `complete`가 false이면 하한값입니다. |
| venues[].bands.1.ask_depth_usd | number | USD | 중간가와 밴드 상단 경계 사이의 대기 매도 주문 명목가치. `complete`가 false이면 하한값입니다. |
| venues[].bands.1.complete | boolean | — | 스냅샷의 양쪽이 모두 밴드 경계에 도달하면 true. 불완전한 행은 집계에서 제외됩니다. |
| venues[].bands.2 | object | — | 중간가로부터 이 거리(%)에 해당하는 밴드. |
| venues[].bands.2.bid_depth_usd | number | USD | 중간가와 밴드 하단 경계 사이의 대기 매수 주문 명목가치. `complete`가 false이면 하한값입니다. |
| venues[].bands.2.ask_depth_usd | number | USD | 중간가와 밴드 상단 경계 사이의 대기 매도 주문 명목가치. `complete`가 false이면 하한값입니다. |
| venues[].bands.2.complete | boolean | — | 스냅샷의 양쪽이 모두 밴드 경계에 도달하면 true. 불완전한 행은 집계에서 제외됩니다. |
| venues[].bands.0.5 | object | — | 중간가로부터 이 거리(%)에 해당하는 밴드. |
| venues[].bands.0.5.bid_depth_usd | number | USD | 중간가와 밴드 하단 경계 사이의 대기 매수 주문 명목가치. `complete`가 false이면 하한값입니다. |
| venues[].bands.0.5.ask_depth_usd | number | USD | 중간가와 밴드 상단 경계 사이의 대기 매도 주문 명목가치. `complete`가 false이면 하한값입니다. |
| venues[].bands.0.5.complete | boolean | — | 스냅샷의 양쪽이 모두 밴드 경계에 도달하면 true. 불완전한 행은 집계에서 제외됩니다. |
| venues[].slippage | object | — | 시장가 주문의 슬리피지. 키 `10000`, `100000`, `1000000`은 USD 기준 주문 크기입니다. |
| venues[].slippage.10000 | object | — | 이 USD 크기의 시장가 주문. |
| venues[].slippage.10000.buy_bps | number | bp | 시장가 매수의 평균 체결가를 중간가와 비교한 값(스프레드의 절반 포함). 스냅샷으로 주문을 체결할 수 없으면 `null`입니다. |
| venues[].slippage.10000.sell_bps | number|null | bp | 시장가 매도의 평균 체결가를 중간가와 비교한 값(스프레드의 절반 포함). 스냅샷으로 주문을 체결할 수 없으면 `null`입니다. |
| venues[].slippage.10000.buy_flag | null | — | 스냅샷으로 주문을 체결할 수 없으면 `insufficient_book`, 집계된 버킷을 사용했으면 `upper_bound`, 그 외에는 `null`. |
| venues[].slippage.10000.sell_flag | string|null | — | 스냅샷으로 주문을 체결할 수 없으면 `insufficient_book`, 집계된 버킷을 사용했으면 `upper_bound`, 그 외에는 `null`. |
| venues[].slippage.100000 | object | — | 이 USD 크기의 시장가 주문. |
| venues[].slippage.100000.buy_bps | number|null | bp | 시장가 매수의 평균 체결가를 중간가와 비교한 값(스프레드의 절반 포함). 스냅샷으로 주문을 체결할 수 없으면 `null`입니다. |
| venues[].slippage.100000.sell_bps | number|null | bp | 시장가 매도의 평균 체결가를 중간가와 비교한 값(스프레드의 절반 포함). 스냅샷으로 주문을 체결할 수 없으면 `null`입니다. |
| venues[].slippage.100000.buy_flag | string|null | — | 스냅샷으로 주문을 체결할 수 없으면 `insufficient_book`, 집계된 버킷을 사용했으면 `upper_bound`, 그 외에는 `null`. |
| venues[].slippage.100000.sell_flag | string|null | — | 스냅샷으로 주문을 체결할 수 없으면 `insufficient_book`, 집계된 버킷을 사용했으면 `upper_bound`, 그 외에는 `null`. |
| venues[].slippage.1000000 | object | — | 이 USD 크기의 시장가 주문. |
| venues[].slippage.1000000.buy_bps | number|null | bp | 시장가 매수의 평균 체결가를 중간가와 비교한 값(스프레드의 절반 포함). 스냅샷으로 주문을 체결할 수 없으면 `null`입니다. |
| venues[].slippage.1000000.sell_bps | number|null | bp | 시장가 매도의 평균 체결가를 중간가와 비교한 값(스프레드의 절반 포함). 스냅샷으로 주문을 체결할 수 없으면 `null`입니다. |
| venues[].slippage.1000000.buy_flag | string|null | — | 스냅샷으로 주문을 체결할 수 없으면 `insufficient_book`, 집계된 버킷을 사용했으면 `upper_bound`, 그 외에는 `null`. |
| venues[].slippage.1000000.sell_flag | string|null | — | 스냅샷으로 주문을 체결할 수 없으면 `insufficient_book`, 집계된 버킷을 사용했으면 `upper_bound`, 그 외에는 `null`. |
| venues[].book_bid_usd | number | USD | 스냅샷에 포함된 모든 매수 주문의 명목가치. |
| venues[].book_ask_usd | number | USD | 스냅샷에 포함된 모든 매도 주문의 명목가치. |
| venues[].agg_step_bps | number|null | bp | ±2 % 이내에서 사용된 가장 넓은 가격 집계 버킷. 원시 호가 단계만 사용했으면 `null`입니다. |
| venues[].layers | number | — | 이 행을 위해 이어 붙인 스냅샷 수. |
| venues[].observed_at | number|null | ms | 소스가 데이터에 부여한 타임스탬프. |
| venues[].received_at | number | ms | CoinBoss 수집기가 데이터를 수신한 시각. |
| venues[].lag_ms | number|null | ms | 수신 시각에서 거래소의 오더북 타임스탬프를 뺀 값. 거래소가 타임스탬프를 제공하지 않으면 `null`입니다. |
| venues[].age_s | number | s | 행을 수신한 이후 경과한 초. |
| venues[].fresh_window_s | number | s | 이 값보다 오래된 행은 만료된 것으로 간주됩니다. |
| venues[].is_stale | boolean | — | 데이터가 신선도 창보다 오래되었으면 true. |
| venues[].tier | string | — | 수집 등급: 거래가 가장 활발한 코인은 `A`, 나머지는 `B`. |
| venues[].period_s | number | s | 행의 수집 주기. |
| aggregate | object | — | 시장 유형별 합계. 무기한 선물과 현물은 절대 합산하지 않습니다. |
| aggregate.perp | object | — | 무기한 선물 오더북에 대한 집계. 행이 없으면 `null`입니다. 없을 수 있음 |
| aggregate.perp.n_rows | number | — | 만료된 행을 포함해 찾은 행. 없을 수 있음 |
| aggregate.perp.n_fresh | number | — | 최신 행. 없을 수 있음 |
| aggregate.perp.mid_median | number | USD | 최신 행의 중간가 중앙값. 없을 수 있음 |
| aggregate.perp.spread_bps_min | number | bp | 최신 행 중 가장 좁은 스프레드. 없을 수 있음 |
| aggregate.perp.bands | object | — | 밴드별 깊이. 키 `0.5`, `1`, `2`는 중간가로부터의 거리(%)입니다. 없을 수 있음 |
| aggregate.perp.bands.1 | object | — | 중간가로부터 이 거리(%)에 해당하는 밴드. 없을 수 있음 |
| aggregate.perp.bands.1.bid_depth_usd | number | USD | 중간가와 밴드 하단 경계 사이의 대기 매수 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.1.ask_depth_usd | number | USD | 중간가와 밴드 상단 경계 사이의 대기 매도 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.1.n_included | number | — | 깊이 합계에 포함된 행: 최신이며 해당 밴드에 대해 완전한 행. 깊이 값과 함께 확인하십시오. 없을 수 있음 |
| aggregate.perp.bands.1.n_fresh | number | — | 최신 행. 없을 수 있음 |
| aggregate.perp.bands.1.included_exchanges | array | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.perp.bands.1.included_exchanges[] | string | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.perp.bands.1.excluded_incomplete | array | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.perp.bands.1.excluded_incomplete[] | object | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.perp.bands.1.excluded_incomplete[].exchange | string | — | 거래소 ID(소문자). 없을 수 있음 |
| aggregate.perp.bands.1.excluded_incomplete[].symbol | string | — | CoinBoss 저장 형식의 계약 심볼. 없을 수 있음 |
| aggregate.perp.bands.1.excluded_incomplete[].reach_bid_pct | number | % | 중간가에서 스냅샷의 가장 먼 매수 호가까지의 거리. 없을 수 있음 |
| aggregate.perp.bands.1.excluded_incomplete[].reach_ask_pct | number | % | 중간가에서 스냅샷의 가장 먼 매도 호가까지의 거리. 없을 수 있음 |
| aggregate.perp.bands.1.lower_bound_bid_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매수 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.1.lower_bound_ask_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매도 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.1.uses_aggregated_buckets | boolean | — | 포함된 행 중 가격 집계 버킷을 사용한 행이 있으면 true이며, 이 경우 합계는 하한값이 됩니다. 없을 수 있음 |
| aggregate.perp.bands.2 | object | — | 중간가로부터 이 거리(%)에 해당하는 밴드. 없을 수 있음 |
| aggregate.perp.bands.2.bid_depth_usd | number | USD | 중간가와 밴드 하단 경계 사이의 대기 매수 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.2.ask_depth_usd | number | USD | 중간가와 밴드 상단 경계 사이의 대기 매도 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.2.n_included | number | — | 깊이 합계에 포함된 행: 최신이며 해당 밴드에 대해 완전한 행. 깊이 값과 함께 확인하십시오. 없을 수 있음 |
| aggregate.perp.bands.2.n_fresh | number | — | 최신 행. 없을 수 있음 |
| aggregate.perp.bands.2.included_exchanges | array | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.perp.bands.2.included_exchanges[] | string | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.perp.bands.2.excluded_incomplete | array | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.perp.bands.2.excluded_incomplete[] | object | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.perp.bands.2.excluded_incomplete[].exchange | string | — | 거래소 ID(소문자). 없을 수 있음 |
| aggregate.perp.bands.2.excluded_incomplete[].symbol | string | — | CoinBoss 저장 형식의 계약 심볼. 없을 수 있음 |
| aggregate.perp.bands.2.excluded_incomplete[].reach_bid_pct | number | % | 중간가에서 스냅샷의 가장 먼 매수 호가까지의 거리. 없을 수 있음 |
| aggregate.perp.bands.2.excluded_incomplete[].reach_ask_pct | number | % | 중간가에서 스냅샷의 가장 먼 매도 호가까지의 거리. 없을 수 있음 |
| aggregate.perp.bands.2.lower_bound_bid_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매수 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.2.lower_bound_ask_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매도 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.2.uses_aggregated_buckets | boolean | — | 포함된 행 중 가격 집계 버킷을 사용한 행이 있으면 true이며, 이 경우 합계는 하한값이 됩니다. 없을 수 있음 |
| aggregate.perp.bands.0.5 | object | — | 중간가로부터 이 거리(%)에 해당하는 밴드. 없을 수 있음 |
| aggregate.perp.bands.0.5.bid_depth_usd | number | USD | 중간가와 밴드 하단 경계 사이의 대기 매수 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.0.5.ask_depth_usd | number | USD | 중간가와 밴드 상단 경계 사이의 대기 매도 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.0.5.n_included | number | — | 깊이 합계에 포함된 행: 최신이며 해당 밴드에 대해 완전한 행. 깊이 값과 함께 확인하십시오. 없을 수 있음 |
| aggregate.perp.bands.0.5.n_fresh | number | — | 최신 행. 없을 수 있음 |
| aggregate.perp.bands.0.5.included_exchanges | array | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.perp.bands.0.5.included_exchanges[] | string | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.perp.bands.0.5.excluded_incomplete | array | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.perp.bands.0.5.excluded_incomplete[] | object | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.perp.bands.0.5.excluded_incomplete[].exchange | string | — | 거래소 ID(소문자). 없을 수 있음 |
| aggregate.perp.bands.0.5.excluded_incomplete[].symbol | string | — | CoinBoss 저장 형식의 계약 심볼. 없을 수 있음 |
| aggregate.perp.bands.0.5.excluded_incomplete[].reach_bid_pct | number | % | 중간가에서 스냅샷의 가장 먼 매수 호가까지의 거리. 없을 수 있음 |
| aggregate.perp.bands.0.5.excluded_incomplete[].reach_ask_pct | number | % | 중간가에서 스냅샷의 가장 먼 매도 호가까지의 거리. 없을 수 있음 |
| aggregate.perp.bands.0.5.lower_bound_bid_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매수 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.0.5.lower_bound_ask_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매도 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.perp.bands.0.5.uses_aggregated_buckets | boolean | — | 포함된 행 중 가격 집계 버킷을 사용한 행이 있으면 true이며, 이 경우 합계는 하한값이 됩니다. 없을 수 있음 |
| aggregate.spot | object | — | 현물 오더북에 대한 집계. 행이 없으면 `null`입니다. 없을 수 있음 |
| aggregate.spot.n_rows | number | — | 만료된 행을 포함해 찾은 행. 없을 수 있음 |
| aggregate.spot.n_fresh | number | — | 최신 행. 없을 수 있음 |
| aggregate.spot.mid_median | number | USD | 최신 행의 중간가 중앙값. 없을 수 있음 |
| aggregate.spot.spread_bps_min | number | bp | 최신 행 중 가장 좁은 스프레드. 없을 수 있음 |
| aggregate.spot.bands | object | — | 밴드별 깊이. 키 `0.5`, `1`, `2`는 중간가로부터의 거리(%)입니다. 없을 수 있음 |
| aggregate.spot.bands.1 | object | — | 중간가로부터 이 거리(%)에 해당하는 밴드. 없을 수 있음 |
| aggregate.spot.bands.1.bid_depth_usd | number | USD | 중간가와 밴드 하단 경계 사이의 대기 매수 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.1.ask_depth_usd | number | USD | 중간가와 밴드 상단 경계 사이의 대기 매도 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.1.n_included | number | — | 깊이 합계에 포함된 행: 최신이며 해당 밴드에 대해 완전한 행. 깊이 값과 함께 확인하십시오. 없을 수 있음 |
| aggregate.spot.bands.1.n_fresh | number | — | 최신 행. 없을 수 있음 |
| aggregate.spot.bands.1.included_exchanges | array | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.spot.bands.1.included_exchanges[] | string | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.spot.bands.1.excluded_incomplete | array | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.spot.bands.1.excluded_incomplete[] | object | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.spot.bands.1.excluded_incomplete[].exchange | string | — | 거래소 ID(소문자). 없을 수 있음 |
| aggregate.spot.bands.1.excluded_incomplete[].symbol | string | — | CoinBoss 저장 형식의 계약 심볼. 없을 수 있음 |
| aggregate.spot.bands.1.excluded_incomplete[].reach_bid_pct | number | % | 중간가에서 스냅샷의 가장 먼 매수 호가까지의 거리. 없을 수 있음 |
| aggregate.spot.bands.1.excluded_incomplete[].reach_ask_pct | number | % | 중간가에서 스냅샷의 가장 먼 매도 호가까지의 거리. 없을 수 있음 |
| aggregate.spot.bands.1.lower_bound_bid_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매수 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.1.lower_bound_ask_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매도 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.1.uses_aggregated_buckets | boolean | — | 포함된 행 중 가격 집계 버킷을 사용한 행이 있으면 true이며, 이 경우 합계는 하한값이 됩니다. 없을 수 있음 |
| aggregate.spot.bands.2 | object | — | 중간가로부터 이 거리(%)에 해당하는 밴드. 없을 수 있음 |
| aggregate.spot.bands.2.bid_depth_usd | number | USD | 중간가와 밴드 하단 경계 사이의 대기 매수 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.2.ask_depth_usd | number | USD | 중간가와 밴드 상단 경계 사이의 대기 매도 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.2.n_included | number | — | 깊이 합계에 포함된 행: 최신이며 해당 밴드에 대해 완전한 행. 깊이 값과 함께 확인하십시오. 없을 수 있음 |
| aggregate.spot.bands.2.n_fresh | number | — | 최신 행. 없을 수 있음 |
| aggregate.spot.bands.2.included_exchanges | array | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.spot.bands.2.included_exchanges[] | string | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.spot.bands.2.excluded_incomplete | array | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.spot.bands.2.excluded_incomplete[] | object | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.spot.bands.2.excluded_incomplete[].exchange | string | — | 거래소 ID(소문자). 없을 수 있음 |
| aggregate.spot.bands.2.excluded_incomplete[].symbol | string | — | CoinBoss 저장 형식의 계약 심볼. 없을 수 있음 |
| aggregate.spot.bands.2.excluded_incomplete[].reach_bid_pct | number | % | 중간가에서 스냅샷의 가장 먼 매수 호가까지의 거리. 없을 수 있음 |
| aggregate.spot.bands.2.excluded_incomplete[].reach_ask_pct | number | % | 중간가에서 스냅샷의 가장 먼 매도 호가까지의 거리. 없을 수 있음 |
| aggregate.spot.bands.2.lower_bound_bid_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매수 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.2.lower_bound_ask_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매도 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.2.uses_aggregated_buckets | boolean | — | 포함된 행 중 가격 집계 버킷을 사용한 행이 있으면 true이며, 이 경우 합계는 하한값이 됩니다. 없을 수 있음 |
| aggregate.spot.bands.0.5 | object | — | 중간가로부터 이 거리(%)에 해당하는 밴드. 없을 수 있음 |
| aggregate.spot.bands.0.5.bid_depth_usd | number | USD | 중간가와 밴드 하단 경계 사이의 대기 매수 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.0.5.ask_depth_usd | number | USD | 중간가와 밴드 상단 경계 사이의 대기 매도 주문 명목가치. `complete`가 false이면 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.0.5.n_included | number | — | 깊이 합계에 포함된 행: 최신이며 해당 밴드에 대해 완전한 행. 깊이 값과 함께 확인하십시오. 없을 수 있음 |
| aggregate.spot.bands.0.5.n_fresh | number | — | 최신 행. 없을 수 있음 |
| aggregate.spot.bands.0.5.included_exchanges | array | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.spot.bands.0.5.included_exchanges[] | string | — | 최신 데이터가 포함된 소스. 없을 수 있음 |
| aggregate.spot.bands.0.5.excluded_incomplete | array | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.spot.bands.0.5.excluded_incomplete[] | object | — | 스냅샷이 밴드 경계에 도달하지 못해 밴드에서 제외된 최신 행. 없을 수 있음 |
| aggregate.spot.bands.0.5.excluded_incomplete[].exchange | string | — | 거래소 ID(소문자). 없을 수 있음 |
| aggregate.spot.bands.0.5.excluded_incomplete[].symbol | string | — | CoinBoss 저장 형식의 계약 심볼. 없을 수 있음 |
| aggregate.spot.bands.0.5.excluded_incomplete[].reach_bid_pct | number | % | 중간가에서 스냅샷의 가장 먼 매수 호가까지의 거리. 없을 수 있음 |
| aggregate.spot.bands.0.5.excluded_incomplete[].reach_ask_pct | number | % | 중간가에서 스냅샷의 가장 먼 매도 호가까지의 거리. 없을 수 있음 |
| aggregate.spot.bands.0.5.lower_bound_bid_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매수 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.0.5.lower_bound_ask_usd | number | USD | 불완전한 행의 관측된 부분을 포함한 매도 깊이. 추정치가 아니라 하한값입니다. 없을 수 있음 |
| aggregate.spot.bands.0.5.uses_aggregated_buckets | boolean | — | 포함된 행 중 가격 집계 버킷을 사용한 행이 있으면 true이며, 이 경우 합계는 하한값이 됩니다. 없을 수 있음 |
| coverage | object | — | 수치에 포함된 것과 포함되지 않은 것. 다른 소스와 합계를 비교하기 전에 먼저 이 항목을 비교하십시오. |
| coverage.included_exchanges | array | — | 최신 데이터가 포함된 소스. |
| coverage.included_exchanges[] | string | — | 최신 데이터가 포함된 소스. |
| coverage.unavailable | array | — | 포함할 수 없었던 소스와 각각의 사유. 0으로 집계하는 일은 없습니다. 이 표를 생성한 샘플에서는 비어 있음 |
| coverage.stale_excluded | array | — | 마지막 갱신이 신선도 창을 벗어나 제외된 행. 이 표를 생성한 샘플에서는 비어 있음 |
| coverage.no_market | array | — | 수집 대상이지만 이 코인에 대한 행이 없는 거래소 × 시장 쌍. 이 표를 생성한 샘플에서는 비어 있음 |
| method | object | — | 이 응답에 사용된 산식을 필드당 한 항목씩 일반 텍스트로 기술한 내용. |
| method.mid | string | — | `mid`의 산식 설명, 일반 텍스트. |
| method.spread_bps | string | — | `spread_bps`의 산식 설명, 일반 텍스트. |
| method.bid_depth_usd | string | — | `bid_depth_usd`의 산식 설명, 일반 텍스트. |
| method.ask_depth_usd | string | — | `ask_depth_usd`의 산식 설명, 일반 텍스트. |
| method.complete | string | — | `complete`의 산식 설명, 일반 텍스트. |
| method.reach_pct | string | — | `reach_pct`의 산식 설명, 일반 텍스트. |
| method.slippage_bps | string | — | `slippage_bps`의 산식 설명, 일반 텍스트. |
| method.agg_step_bps | string | — | `agg_step_bps`의 산식 설명, 일반 텍스트. |
| method.aggregate | string | — | `aggregate`의 산식 설명, 일반 텍스트. |
| method.fresh | string | — | `fresh`의 산식 설명, 일반 텍스트. |
| method.lag_ms | string | — | `lag_ms`의 산식 설명, 일반 텍스트. |
| method.no_market | string | — | `no_market`의 산식 설명, 일반 텍스트. |
| meta | object | — | 이 응답의 데이터 경로와 신선도. |
| meta.schema | string | — | 이 응답의 스키마 ID. 기존 필드의 의미나 타입이 바뀔 때만 변경됩니다. |
| meta.source | array | — | 데이터를 수집한 업스트림 공개 엔드포인트. |
| meta.source[] | object | — | 데이터를 수집한 업스트림 공개 엔드포인트. |
| meta.source[].exchange | string | — | 거래소 ID(소문자). |
| meta.source[].market | string | — | `perp` 또는 `spot`. |
| meta.source[].endpoint | string | — | 수집기가 읽는 소스의 공개 엔드포인트(데이터 경로 표시용이며 클라이언트가 직접 호출하지 않음). |
| meta.observed_at | number | ms | 소스가 데이터에 부여한 타임스탬프. |
| meta.received_at | number | ms | CoinBoss 수집기가 데이터를 수신한 시각. |
| meta.fetched_at | number | ms | 이 응답이 조립된 시각. |
| meta.window | string | — | 수치가 포괄하는 시간 구간. |
| meta.quality | string | — | FRESH, PARTIAL, STALE, BROKEN 또는 UNAVAILABLE. 데이터 타임스탬프와 커버리지로 판정합니다. |
| meta.is_stale | boolean | — | 데이터가 신선도 창보다 오래되었으면 true. |
| meta.cache_ttl_s | number | s | 이 응답의 캐시 수명. |
| meta.fallback | string | — | 수집기나 소스에 장애가 발생했을 때 엔드포인트가 반환하는 내용. |
| meta.collector_heartbeat_age_s | number | s | 수집기가 가동 중임을 마지막으로 보고한 이후 경과한 초. |
2026-11-11 23:28 UTC에 실제 응답 4건으로 생성.
응답 예시
/api/sd/liquidity?coin=BTC · 2026-11-13 03:58:06 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: venues: 원래 항목 39개; meta.source: 원래 항목 38개; coverage.included_exchanges: 원래 항목 24개; aggregate.perp.bands.1.included_exchanges: 원래 항목 19개; aggregate.perp.bands.2.included_exchanges: 원래 항목 16개; aggregate.spot.bands.1.included_exchanges: 원래 항목 14개.
- "success"true
- "schema""coinboss.sd.liquidity/1"
- "now"1794542286066
- "coin""BTC"
- "market""all"
- "venues"
- "aggregate"
- "perp"
- "spot"
- "coverage"
- "included_exchanges"
- "unavailable"
- "stale_excluded"
- "no_market"
- "method"
- "mid""(best_bid + best_ask) / 2 of the venue order book, normalised to the USD price of ONE coin (1000PEPE / kPEPE style contr…"
- "spread_bps""(best_ask - best_bid) / mid * 1e4"
- "bid_depth_usd""sum of resting bid notional with price >= mid * (1 - band%), in USD; notional = price * size * contract_value (inverse c…"
- "ask_depth_usd""sum of resting ask notional with price <= mid * (1 + band%), in USD; same notional rule as bid_depth_usd"
- "complete""true when BOTH sides of the snapshot reach the band edge (reach_pct >= band) or the whole side of the book was returned;…"
- "reach_pct""distance in % between mid and the farthest price level contained in the snapshot on that side"
- "slippage_bps""market order of N USD walked through the book: buy = (avg_fill / mid - 1) * 1e4, sell = (1 - avg_fill / mid) * 1e4, meas…"
- "agg_step_bps""widest price-aggregation bucket (in bps of mid) used inside +-2% for venues whose REST only exposes a shallow raw book (…"
- "aggregate""per market and band: sum over rows that are fresh AND complete for that band; n_included / n_fresh is the denominator; l…"
- "fresh""a row is fresh when now - received_at <= max(3 * period_s, 300s); stale rows are listed in coverage.stale_excluded; rows…"
- "lag_ms""received_at - venue timestamp of the book (null when the venue gives none); Gate spot books deeper than 100 levels are v…"
- "no_market""covered venue/market pairs that are being collected but hold no row for this coin: not listed there, or the contract was…"
- "meta"
- "schema""coinboss.sd.liquidity/1"
- "source"
- "observed_at"1794542285214
- "received_at"1794542285776
- "fetched_at"1794542286066
- "window""latest"
- "quality""PARTIAL"
- "is_stale"false
- "cache_ttl_s"15
- "fallback""on collector failure the last stored row is served with is_stale=true and left out of the aggregate; rows older than 24h…"
- "collector_heartbeat_age_s"9
검증된 샘플
프로브는 위 예시 외에도 아래 파라미터로 이 엔드포인트를 호출하고 매번 스키마를 검사합니다.
| 파라미터 | HTTP | 지연 시간 | 결과 |
|---|---|---|---|
| coin=ETH&market=spot | 200 | 3 ms | 통과 PARTIAL |
| coin=PEPE&market=perp | 200 | 4 ms | 통과 FRESH |
| coin=SOL | 200 | 4 ms | 통과 PARTIAL |
| — | 400 | 1 ms | 통과 예상된 오류 반환 |
2026-11-13 03:58:06 UTC 점검
상세 정보
- 인증
- 없음. 공개 엔드포인트.
- 요청 한도
- IP당 분당 1200회
- 서버 캐시
- 15s
- 엣지 마이크로 캐시
- 10s
- 갱신 주기
- 거래가 가장 활발한 코인은 120초마다, 나머지는 600초마다 스냅샷을 수집합니다(일부 거래소는 300 / 1200초). 행은 수집 주기 3회 동안, 최소 300초 동안 최신으로 간주됩니다.
- 구간
- 계약별 최신 스냅샷.
- 데이터 소스
- 거래소 24곳(무기한 선물 및 현물 시장)의 공개 REST 오더북 스냅샷을 CoinBoss가 수집해 저장합니다(sd_book_latest, sd_book_hist). 깊이와 슬리피지는 CoinBoss가 원시 호가 단계에서 계산합니다.
- 거래소 커버리지
- 거래소 24곳, 거래소 × 시장 조합 38개. 공개 스냅샷이 중간가 기준 ±0.5 / 1 / 2 %에 도달하지 못하는 경우(거래소의 호가 단계 수 제한) 해당 밴드는 `complete: false`로 표시되고, 그 값은 하한값이며 집계에서 제외됩니다. `n_included` / `n_fresh`가 분모를 나타내고 `excluded_incomplete`에 제외된 항목이 나열됩니다.
- 페이지네이션
- 페이지네이션 없음. 거래소 × 시장 × 계약당 한 행.
- 정렬
- 무기한 선물 행이 먼저, 이후 현물. 각 그룹 안에서는 ±1 % 깊이(매수 + 매도) 내림차순.
- 단위
- Depth in USD notional, bid and ask side reported separately and never added. Spread and slippage in basis points (1 bp = 0.01 %). USDT / USDC / USD quotes are counted 1:1 as USD.
- 산출 방식
- mid = (best bid + best ask) ÷ 2. Depth = Σ price × size of all levels between mid and mid ± x %. Slippage = (average fill price of a market order of N USD − mid) ÷ mid, in bp; `null` with flag `insufficient_book` when the snapshot cannot fill the order (no extrapolation), flag `upper_bound` when an aggregated price bucket was used.
- 타임스탬프
- 필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
- 응답 형식
- json
- 안정성
- 안정
- 제공 시작
- 2026-11-11
실시간 상태
엔드포인트가 보고한 데이터 품질: PARTIAL — 유동성이 가장 높은 코인의 경우 일부 대형 거래소의 공개 스냅샷이 밴드 전체에 도달하지 못하므로, 해당 거래소는 집계에서 제외되며 집계값은 전체 깊이보다 작게 나타납니다. `lower_bound_*` 필드는 관측된 부분을 더한 값입니다. 깊이 값은 항상 `n_included`와 함께 확인하십시오.
최근 30일 가용성
점검 407회 중 100% 통과
오류
실패한 호출은 모든 엔드포인트에서 동일한 구조로 반환됩니다. 전체 목록은 오류 페이지에 있습니다. 오류 및 요청 한도 →
| 코드 | HTTP | 의미 | 대응 방법 |
|---|---|---|---|
| INVALID_PARAM | 400 | 필수 파라미터가 누락되었거나 허용되지 않는 값입니다. 문제가 된 파라미터를 알 수 있으면 `param`에 그 이름이 들어갑니다. | 그대로 재시도하지 말고 요청을 수정하십시오. |
| UNAUTHORIZED | 401 | `CB-API-KEY` 헤더를 보냈지만 알 수 없거나 폐기된 키입니다. 공개 데이터에는 키가 필요 없으므로 헤더를 빼거나 유효한 키를 사용하십시오. | 그대로 재시도하지 마십시오. |
| FORBIDDEN | 403 | 해당 경로는 공개 API에 포함되지 않습니다(내부용 또는 계정 전용). | 재시도하지 마십시오. |
| NOT_FOUND | 404 | 알 수 없는 경로이거나, 요청한 코인 / 거래소 / 펀드가 존재하지 않습니다. | 재시도하지 말고 경로와 식별자를 카탈로그와 대조해 확인하십시오. |
| RATE_LIMITED | 429 | 요청 수가 분당 한도를 초과했습니다. `Retry-After`가 대기해야 할 초를 알려 줍니다. | `Retry-After`만큼 기다린 뒤 백오프를 적용해 재시도하십시오. |
| INTERNAL | 500 | 예기치 않은 서버 오류입니다. 메시지는 의도적으로 일반적인 내용만 담습니다. 신고할 때 `request_id`를 인용하십시오. | 몇 초 뒤 한 번 재시도하고, 계속되면 요청 ID와 함께 신고하십시오. |
| UPSTREAM_FAILED | 503 | 이 엔드포인트의 데이터 소스가 제시간에 응답하지 않았습니다. 그 대신 만료된 수치나 대체 수치를 반환하는 일은 없습니다. | 백오프를 적용해 재시도하고 상태 페이지를 확인하십시오. |
| UNAVAILABLE | 501 / 503 | 데이터셋이 일시적으로 준비되지 않았거나(캐시 워밍 중) 엔드포인트에 아직 합법적인 공개 소스가 없습니다. | 나중에 재시도하십시오. 설계상 사용 불가인 엔드포인트는 카탈로그에 표시되어 있습니다. |
| REQUEST_FAILED | 200 | 일부 이전 엔드포인트는 HTTP 200에 `success: false`로 응답합니다. HTTP 상태만 보지 말고 항상 `success`를 확인하십시오. | 메시지에 따라 다릅니다. 실패한 요청으로 처리하십시오. |
직접 실행
/api/sd/liquidity부분string — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.
string · 기본값 all — Market type. Perpetual and spot books are never added together.
https://www.coinboss.com/api/sd/liquidity?coin=BTC이 카테고리의 다른 엔드포인트
- 오더북 깊이와 슬리피지 /api/sd/liquidity
- 오더북 깊이 히스토리 /api/sd/liquidity/history
- 오더북 깊이 기준 코인 순위 /api/sd/liquidity/rank
- 대규모 대기 주문 모니터 /api/indicators/large-orderbook