코인 페이지 거래소 표
코인 페이지 거래소 표(거래소별 가격, 거래량, OI, 펀딩비; 현물 또는 선물)
/api/currency/ex-table요청
쿼리 파라미터
| 이름 | 타입 | 필수 | 기본값 | 허용 값 | 설명 |
|---|---|---|---|---|---|
| coin | string | 필수 | — | — | 기초 코인 심볼(대문자, 예: BTC). 예시: BTC |
| market | string | 선택 | futures | futures, spot, perpetual, delivery, all | `futures` (default) and `spot` return one row per exchange (`futures` one row per contract with `group=pair`). `perpetual`, `delivery` and `all` always return one row per market: perpetual contracts only, dated futures only, or every spot, perpetual and delivery market of the coin in one list. Any other value is treated as `futures`. 예시: futures |
| group | string | 선택 | — | pair | `pair` returns one row per contract instead of one row per exchange. Each row then carries `status`, `status_reason`, `market_type`, `expiry_ts`, `expiry_date`, `native_symbol`, `quote`, `margin_type`, `price_source`, `price_at` and `rank`, and the response adds a `meta` object. Rows whose `status` is not `active` (no live quote, no feed, expired) carry no price. |
요청 예시
curl -s "https://www.coinboss.com/api/currency/ex-table?coin=BTC&market=futures"응답 필드
필드 표는 실제 응답에서 생성되므로 엔드포인트가 반환하는 내용을 그대로 보여 줍니다. 경로에서 a[]는 배열 항목을, {*}는 코인이나 거래소처럼 동적 이름을 키로 갖는 객체를 뜻합니다.
| 필드 | 타입 | 단위 | 설명 |
|---|---|---|---|
| success | boolean | — | 요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다. |
| coin | string | — | 코인 심볼, 대문자(예: BTC). |
| market | string | — | 시장. |
| data | array | — | 페이로드. |
| data[] | object | — | 페이로드. |
| data[].exchange | string | — | 거래소 ID, 소문자(예: `binance`). |
| data[].name | string | — | 이름. |
| data[].pair | string|null | — | Exchange symbol of the row's contract: the highest-volume contract of the exchange, or the exact contract with `group=pair` (the symbol as CoinBoss normalises it; the name used by the exchange is `native_symbol`); null when the exchange has open interest but no ticker. |
| data[].price | number|null | — | 표시 통화 기준 최종 가격(별도 언급이 없으면 USD 또는 USDT). |
| data[].change_pct | number|null | % | 등락률(%). |
| data[].volume_usd | number|null | USD | USD 명목가치 기준 거래량. |
| data[].oi_usd | number|null | USD | USD 명목가치 기준 미결제약정. |
| data[].ls_ratio | number|null | — | 롱/숏 비율. |
| data[].liq_long | number|null | — | 롱 청산액. |
| data[].liq_short | number|null | — | 숏 청산액. |
| data[].funding | number|null | — | 펀딩비 블록 또는 값. |
| data[].funding_interval_h | number|null | h | 펀딩 주기. 없을 수 있음 |
| data[].funding_8h | number|null | fraction | `funding`을 8시간 주기로 환산한 값: 펀딩비 × 8 ÷ `funding_interval_h`(0.0001 = 0.01 %). 정산 주기를 알 수 없으면 null. 없을 수 있음 |
| data[].next_funding_time | number|null | ms | 타임스탬프. 없을 수 있음 |
| data[].multiplier | number | x | 계약의 호가 단위 1개가 나타내는 코인 수(1000PEPE 유형 계약은 1000, 그 외에는 1). 없을 수 있음 |
| data[].vol_change_pct | number|null | % | 23~25시간 전에 기록된 1시간 단위 스냅샷 대비 거래소 24h 거래량의 변화. 스냅샷이 없거나 주 계약이 아닌 행에서는 null. |
| data[].oi_change_pct | number|null | % | 24시간 전(±1 h)에 가장 가까운 동일 계약의 1시간 단위 스냅샷 대비 거래소 미결제약정의 변화. 기준값이 없으면 null. |
| data[].oi_vol_change_pct | number|null | % | 미결제약정 ÷ 24h 거래량 비율을 24시간 전의 같은 비율과 비교한 변화. |
| data[].price_raw | number|null | USD | `multiplier`로 나누기 전, 거래소가 해당 계약에 제시하는 그대로의 최종 가격. `multiplier`가 1이면 `price`와 같습니다. 없을 수 있음 |
| data[].liquidity_usd | number|null | USD | 이 거래소에서 중간가 ±1 % 이내에 있는 매수·매도 오더북 명목가치의 합. `liquidity_complete`가 false이면 하한값입니다. 없을 수 있음 |
| data[].liquidity_reach_pct | number | % | 거래소가 반환한 오더북이 중간가로부터 실제로 포괄하는 거리로, 매수 측과 매도 측 중 작은 값입니다. 없을 수 있음 |
| data[].liquidity_complete | boolean | — | 반환된 오더북이 양쪽 모두 ±1 % 구간 전체에 도달하면 true. false이면 `liquidity_usd`가 실제보다 작게 집계된 것입니다. 없을 수 있음 |
| data[].oi_vol_ratio | number|null | — | 미결제약정을 24h 거래량으로 나눈 값. |
| data[].pair_disp | string | — | 기초/호가 형식의 페어 표시 형태(`BTC/USDT`, `1000PEPE/USDT`, CME 및 USD 마진 거래소는 `BTC/USD`). |
| data[].contract_type | string|null | — | `perpetual` or `delivery` (dated futures); null on spot rows. With `group=pair` it comes from the exchange's contract specification where CoinBoss has one, otherwise from the expiry code in the symbol. |
| data[].expiry | string(decimal)|null | — | Expiry date code YYMMDD of a dated contract. With `group=pair` it is derived from `expiry_ts` for every contract that has an expiry; otherwise it is the six-digit symbol suffix. Null for contracts without an expiry and for CME rows. |
| data[].market_type | string | — | `spot`, `perpetual` or `delivery`. 없을 수 있음 |
| data[].expiry_ts | number|null | ms | Expiry / delivery time of the contract, Unix milliseconds; null when the contract has no expiry or the exchange does not publish one. 없을 수 있음 |
| data[].expiry_date | string|null | — | Expiry date as YYYY-MM-DD (UTC); null when the contract has no expiry. 없을 수 있음 |
| data[].native_symbol | string|null | — | Contract name exactly as the exchange lists it (`BTCUSDT_270326`, `BTC-PERPETUAL`, `XBTMZ26`); null when CoinBoss holds no contract specification for the venue and on spot rows. 없을 수 있음 |
| data[].quote | string|null | — | Quote currency of the contract or spot pair (`USDT`, `USDC`, `USD`, …). 없을 수 있음 |
| data[].margin_type | string|null | — | Margin asset class from the contract specification: `usdt`, `usdc`, `coin`, `usd` or `other`; null when unknown and on spot rows. 없을 수 있음 |
| data[].status | string | — | Market state of the row (only with `group=pair` and `market=spot`): `active` = a real quote received within the last hour and a 24h volume above zero; `no_quote` = the contract is listed but has no usable quote, see `status_reason`; `not_provided` = the exchange publishes no real-time ticker that CoinBoss collects (CME); `expired` = the contract is past its expiry. Rows that are not `active` carry no price. 없을 수 있음 |
| data[].status_reason | string|null | — | Why a row is not `active`: `expired`, `no_realtime_feed`, `quote_stale` (last quote older than one hour), `no_price`, `no_volume` (the exchange reports no 24h volume) or `no_trades_24h` (the reported 24h volume is zero). Null on active rows. 없을 수 있음 |
| data[].price_source | string|null | — | Dataset the row's price and volume were read from: `market_tickers`, `sd_contract_latest` or `spot_coin_ex_vol`; null when no ticker exists for the contract. 없을 수 있음 |
| data[].price_at | number|null | ms | Time the row's ticker was received, Unix milliseconds. On rows that are not `active` it is the time of the last ticker seen (no price is returned for it), or null. 없을 수 있음 |
| data[].symbol | string | — | Symbol of the row as CoinBoss stores it (`BTCUSDT`, `BTCUSD_270326`, `BTC-27NOV26`); same value as `pair` on contract rows, base + quote on spot rows. The name used by the exchange is `native_symbol`. 없을 수 있음 |
| data[].base | string | — | Underlying of the contract or spot pair as traded. Contracts quoted in multiples of the coin keep the multiplier (`1000PEPE`). 없을 수 있음 |
| data[].market_status | string | — | State of the market: `ACTIVE` = not expired, a quote of this market received within the last hour and a 24h volume above zero; `EXPIRING` = active and the exchange lists its expiry within the next 24 hours; `EXPIRED` = past its expiry; `STALE` = the last quote is older than one hour; `NO_QUOTE` = no usable quote, see `reason_code`. Only `ACTIVE` and `EXPIRING` rows carry a price and a `rank`. 없을 수 있음 |
| data[].reason_code | string|null | — | Why the row carries no price: `NO_QUOTE` (listed, but no trades in 24h or no last price / volume reported), `EXPIRED`, `STALE`, or `UNAVAILABLE` (CoinBoss collects no real-time ticker for this market, e.g. CME). Null on `ACTIVE` and `EXPIRING` rows. The finer cause is in `status_reason`. 없을 수 있음 |
| data[].source_at | number|null | ms | Time the ticker behind this row was received from the exchange, Unix milliseconds; null when no ticker exists. Same value as `price_at`. 없을 수 있음 |
| data[].quality | string | — | `live` = `source_at` within the last hour, `stale` = older, `none` = no ticker for this market. 없을 수 있음 |
| data[].is_stale | boolean | — | True when `quality` is `stale`. 없을 수 있음 |
| data[].expires_in_s | number|null | s | Seconds until the expiry of the contract at the time the table was assembled; negative once expired; null when the contract has no expiry. 없을 수 있음 |
| data[].rank | number|null | — | Position among rankable rows (`market_status` `ACTIVE` or `EXPIRING`) ordered by `volume_usd` descending, starting at 1 and counted inside the requested view; null on rows that are not rankable. 없을 수 있음 |
| data[].market | string | — | 시장. 없을 수 있음 |
| meta | object | — | Table-level information: grouping, freshness and volume windows, sort rule and row counts. Present with `group=pair` and with `market=spot`, `perpetual`, `delivery` or `all`. 없을 수 있음 |
| meta.group | string | — | `pair` = one row per contract, `exchange` = one row per spot venue. 없을 수 있음 |
| meta.as_of | number | ms | Time the table was assembled, Unix milliseconds. 없을 수 있음 |
| meta.fresh_window_s | number | s | Maximum age of a quote for a row to count as `active`. 없을 수 있음 |
| meta.expiring_window_s | number | s | A contract whose expiry is closer than this is reported as `EXPIRING`. 없을 수 있음 |
| meta.volume_window | string | — | Window of `volume_usd`: `24h_rolling`, the rolling 24-hour turnover each exchange reports. 없을 수 있음 |
| meta.volume_unit | string | — | Unit of `volume_usd`. 없을 수 있음 |
| meta.sort | string | — | Row order of the response in words. 없을 수 있음 |
| meta.counts | object | — | Number of rows per `status`. 없을 수 있음 |
| meta.counts.active | number | count | Rows with `status=active`. 없을 수 있음 |
| meta.counts.no_quote | number | count | Rows with `status=no_quote`. 없을 수 있음 |
| meta.counts.not_provided | number | count | Rows with `status=not_provided`. 없을 수 있음 |
| meta.counts.expired | number | count | Rows with `status=expired`. 없을 수 있음 |
| meta.market_status_counts | object | — | Number of rows per `market_status`. 없을 수 있음 |
| meta.market_status_counts.ACTIVE | number | count | Rows with `market_status=ACTIVE`. 없을 수 있음 |
| meta.market_status_counts.EXPIRING | number | count | Rows with `market_status=EXPIRING`. 없을 수 있음 |
| meta.market_status_counts.EXPIRED | number | count | Rows with `market_status=EXPIRED`. 없을 수 있음 |
| meta.market_status_counts.NO_QUOTE | number | count | Rows with `market_status=NO_QUOTE`. 없을 수 있음 |
| meta.market_status_counts.STALE | number | count | Rows with `market_status=STALE`. 없을 수 있음 |
| meta.type_counts | object | — | Number of rows per market type. 없을 수 있음 |
| meta.type_counts.spot | number | count | Spot rows in the response. 없을 수 있음 |
| meta.type_counts.perpetual | number | count | Perpetual rows in the response. 없을 수 있음 |
| meta.type_counts.delivery | number | count | Delivery (dated futures) rows in the response. 없을 수 있음 |
| meta.type_rankable | object | — | Number of rankable rows (`ACTIVE` or `EXPIRING`) per market type. 없을 수 있음 |
| meta.type_rankable.spot | number | count | Spot rows that are rankable (`ACTIVE` or `EXPIRING`). 없을 수 있음 |
| meta.type_rankable.perpetual | number | count | Perpetual rows that are rankable. 없을 수 있음 |
| meta.type_rankable.delivery | number | count | Delivery rows that are rankable. 없을 수 있음 |
2026-11-12 10:57 UTC에 실제 응답 9건으로 생성.
응답 예시
/api/currency/ex-table?coin=BTC&market=futures · 2026-11-13 03:57:28 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: data: 원래 항목 24개.
- "success"true
- "coin""BTC"
- "market""futures"
- "data"
검증된 샘플
프로브는 위 예시 외에도 아래 파라미터로 이 엔드포인트를 호출하고 매번 스키마를 검사합니다.
| 파라미터 | HTTP | 지연 시간 | 결과 |
|---|---|---|---|
| coin=BTC&market=all | 200 | 139 ms | 통과 |
| coin=BTC&market=perpetual | 200 | 1 ms | 통과 |
| coin=BTC&market=delivery | 200 | 2 ms | 통과 |
| coin=BTC&group=pair&market=futures | 200 | 2 ms | 통과 |
| coin=BTC&market=spot | 200 | 1 ms | 통과 |
| coin=ETH&market=futures | 200 | 105 ms | 통과 |
| coin=SOL&market=futures | 200 | 67 ms | 통과 |
| coin=ARKM&market=futures | 200 | 55 ms | 통과 |
2026-11-13 03:57:28 UTC 점검
상세 정보
- 인증
- 없음. 공개 엔드포인트.
- 요청 한도
- IP당 분당 1200회
- 서버 캐시
- 30s
- 엣지 마이크로 캐시
- 10s
- 갱신 주기
- 시세 / OI / 펀딩비는 60 s~5분마다; 오더북 깊이는 5분마다; 현물 거래량은 10분마다; 청산은 실시간
- 구간
- 최신 스냅샷(시세 1 h, OI 3 h, 펀딩비 4 h, 롱/숏 24 h, 깊이 30분); 24 h 변화는 1시간 단위 아카이브와 비교
- 데이터 소스
- 단일 코인의 거래소별 선물 및 현물 통계입니다. CoinBoss 자체 수집기가 약 30개 거래소(예: binance, okx, bybit, bitget, gate, hyperliquid)의 공개 API를 폴링해 구성합니다.
- 거래소 커버리지
- 선물: 해당 코인의 최신 시세가 있는 모든 거래소(최대 24곳); 깊이는 약 28개 코인에 대해 거래소 15곳에서 수집; 현물(market=spot): 현물 거래소 14곳
- 정렬
- volume_usd desc. With `group=pair` and with `market=spot|perpetual|delivery|all`: rankable rows (`market_status` ACTIVE or EXPIRING) first by volume_usd desc (these carry `rank`), then rows without a live quote by oi_usd desc, expired contracts last; ties by expiry, exchange and symbol, so every request made at the same moment gets the same order
- 단위
- price in USD (multiplier contracts normalized to one coin); volume / OI / liquidations / depth in USD; funding as raw fraction and 8 h-normalized fraction; changes in percent
- 산출 방식
- per exchange (futures): volume = SUM(volume_usd); funding_8h = rate x 8 / interval_hours of the largest-OI contract; depth_1pct_usd = bid + ask notional within +/- 1% of mid; OI 24 h change by same-contract pairing; volume change vs the ticker archive 23-25 h earlier; liquidations = 24 h SUM(value_usd)
- 타임스탬프
- 필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
- 응답 형식
- json
- 안정성
- 안정
실시간 상태
최근 30일 가용성
점검 411회 중 99.76% 통과
오류
실패한 호출은 모든 엔드포인트에서 동일한 구조로 반환됩니다. 전체 목록은 오류 페이지에 있습니다. 오류 및 요청 한도 →
| 코드 | 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/currency/ex-table사용 가능string — Base coin symbol (uppercase, e.g. BTC).
string · 기본값 futures — `futures` (default) and `spot` return one row per exchange (`futures` one row per contract with `group=pair`). `perpetual`, `delivery` and `all` always return one row per market: perpetual contracts only, dated futures only, or every spot, perpetual and delivery market of the coin in one list. Any other value is treated as `futures`.
string — `pair` returns one row per contract instead of one row per exchange. Each row then carries `status`, `status_reason`, `market_type`, `expiry_ts`, `expiry_date`, `native_symbol`, `quote`, `margin_type`, `price_source`, `price_at` and `rank`, and the response adds a `meta` object. Rows whose `status` is not `active` (no live quote, no feed, expired) carry no price.
https://www.coinboss.com/api/currency/ex-table?coin=BTC&market=futures이 카테고리의 다른 엔드포인트
- 코인 히트맵 데이터 /api/coin-heatmap
- 전체 코인 목록 /api/coins/all
- 코인 검색 /api/coins/search
- 코인 페이지 거래소 표 /api/currency/ex-table
- 코인 자금 흐름 /api/currency/flows
- 내비게이션용 코인 목록 /api/currency/list
- 단일 코인의 거래소별 시장 /api/currency/markets
- 코인 상세 개요 /api/currency/overview
- 기간별 코인 가격 수익률 /api/currency/performance
- 단일 코인의 현물 테이커 순유입 /api/currency/spot-netflow
- 마진 대출 금리 매트릭스 /api/margin-fee/matrix
- 마진 대출 금리 /api/margin/rates
- 상승·하락 종목(최소 거래량 적용) /api/market/gainers-losers
- 시가총액 상위 코인의 급등락 스냅샷 /api/market/top-movers
- 월간 / 분기 / 연간 수익률 매트릭스 /api/p3/btc-returns
- 일간 수익률 매트릭스 /api/p3/btc-returns-daily
- 주간 수익률 매트릭스 /api/p3/btc-returns-weekly
- 상승·하락 종목(선물 또는 현물) /api/p3/gainers-losers
- 1시간 캔들 /api/p3/klines
- 변동성 개요 /api/p3/volatility
- 단일 코인의 변동성 히스토리 /api/p3/volatility/series
- 현물 코인 시세 목록 /api/spot/coins
- 코인 거래량 페이지 데이터 /api/volume/coin