/api/sd/oi
GET사용 가능

단일 코인의 미결제약정

자체 데이터 레이어: 단일 코인의 미결제약정(거래소 / 계약별, 품질 플래그 포함)

GET/api/sd/oi

요청

쿼리 파라미터

이름타입필수기본값허용 값설명
coinstring필수——코인 심볼. 누락되면 400. 별칭: `base`. 예시: BTC

요청 예시

curl -s "https://www.coinboss.com/api/sd/oi?coin=BTC"

응답 필드

필드 표는 실제 응답에서 생성되므로 엔드포인트가 반환하는 내용을 그대로 보여 줍니다. 경로에서 a[]는 배열 항목을, {*}는 코인이나 거래소처럼 동적 이름을 키로 갖는 객체를 뜻합니다.

필드타입단위설명
successboolean—요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다.
coinstring—코인 심볼, 대문자(예: BTC).
nownumberms응답이 생성된 서버 시각.
total_usdnumberUSD포함된 모든 거래소와 계약의 미결제약정 합계로, 각 거래소가 보고한 값 그대로입니다(USD 명목가치).
n_exchangesnumber—합계에 포함된 거래소 수.
n_contractsnumber—합계에 포함된 계약 수.
asofnumberms포함된 행 중 가장 최근의 갱신 시각.
total_usd_single_adjustednumberUSD양방향으로 보고하는 거래소(`double_sided.exchanges`)의 수치를 절반으로 환산한 `total_usd`로, 모든 거래소가 단방향 기준으로 집계됩니다.
double_sidedobject—롱 + 숏 미결제약정을 하나의 숫자로 공시하는 것으로 알려진 거래소.
double_sided.exchangesarray—거래소.
double_sided.exchanges[]string—거래소.
double_sided.oi_usdnumberUSD절반으로 환산하기 전 해당 거래소들의 보고 미결제약정.
by_kindobject—선형 / 인버스별 구분.
by_kind.linear_usdnumberUSD선형 계약(스테이블코인 또는 USD로 증거금을 넣고 정산)의 미결제약정.
by_kind.inverse_usdnumberUSD인버스(코인 마진) 계약의 미결제약정. 계약 가격 기준으로 USD로 환산.
by_marginobject—증거금 통화별 구분.
by_margin.othernumberUSD기타 증거금 통화(예: CME 같은 USD 정산 거래소).
by_margin.usdtnumberUSDUSDT 마진 계약.
by_margin.usdcnumberUSDUSDC 마진 계약. 없을 수 있음
by_margin.coinnumberUSD코인 마진 계약. 없을 수 있음
by_contract_typeobject—무기한 / 만기별 구분.
by_contract_type.perpetual_usdnumberUSD무기한 선물 계약.
by_contract_type.delivery_usdnumberUSD만기 선물(delivery 계약).
changeobject—1h / 4h / 24h 동안의 미결제약정 변화로, 양쪽 시점에서 동일한 계약 집합을 기준으로 계산합니다. 동적 키: h1,h4,h24
change.{*}object—명시된 기간의 변화.
change.{*}.pctnumber%`prev`와 `cur` 사이의 변화율(%).
change.{*}.curnumberUSD매칭된 계약의 현재 합계.
change.{*}.prevnumberUSD`prev_ts` 시점의 동일 계약 합계.
change.{*}.n_matchednumber—양쪽 시점에 모두 존재하는 계약(또는 거래소).
change.{*}.n_totalnumber—현재 존재하는 계약(또는 거래소).
change.{*}.matched_share_pctnumber%매칭된 집합이 현재 미결제약정에서 차지하는 비중. 없을 수 있음
change.{*}.prev_tsnumberms기준 스냅샷의 시각.
change.{*}.span_minnumbermin기준 시점과 현재 사이의 실제 간격.
change.{*}.basisstring—기준값을 가져온 스냅샷 시계열.
change.{*}.frozen_excludedobject—두 스냅샷 사이에 값이 변하지 않아(소스 미갱신) 변화 계산에서 제외된 행. 없을 수 있음
change.{*}.frozen_excluded.n_baselinenumber—기준 스냅샷의 항목. 없을 수 있음
change.{*}.frozen_excluded.n_currentnumber—현재 스냅샷의 항목. 없을 수 있음
change.{*}.frozen_excluded.cur_usdnumberUSD현재 값. 없을 수 있음
change.{*}.frozen_excluded.prev_usdnumberUSD기준값. 없을 수 있음
by_exchangearray—거래소별 내역.
by_exchange[]object—거래소별 내역.
by_exchange[].exchangestring—거래소 ID, 소문자(예: `binance`).
by_exchange[].oi_usdnumberUSDUSD 명목가치 기준 미결제약정.
by_exchange[].share_pctnumber%전체 대비 비중.
by_exchange[].n_contractsnumber—계약 수.
by_exchange[].linear_usdnumberUSD선형 계약.
by_exchange[].inverse_usdnumberUSD인버스(코인 마진) 계약.
by_exchange[].perpetual_usdnumberUSD무기한 선물 계약.
by_exchange[].delivery_usdnumberUSD만기 선물 계약.
by_exchange[].oi_sidestring—거래소가 양방향을 하나의 숫자로 보고하면 `double`, 단방향으로 보고하면 `single`, 거래소가 이를 문서화하지 않았으면 `unstated`.
by_exchange[].oi_usd_single_adjustednumber|nullUSD단방향 환산값. 방향 기준이 명시되지 않았으면 null.
by_exchange[].updated_atnumberms이 행이 마지막으로 갱신된 시각.
by_exchange[].age_snumbers이 행이 마지막으로 갱신된 후 경과한 초.
by_exchange[].is_staleboolean—행이 신선도 창보다 오래되면 true. 만료된 행은 합계에 사용하지 않습니다.
contractsarray—계약별 행.
contracts[]object—계약별 행.
contracts[].exchangestring—거래소 ID, 소문자(예: `binance`).
contracts[].symbolstring—CoinBoss가 정규화한 종목 심볼(예: BTCUSDT).
contracts[].native_symbolstring|null—거래소가 표기하는 그대로의 심볼.
contracts[].oi_usdnumberUSDUSD 명목가치 기준 미결제약정.
contracts[].oi_sidestring—`double`, `single` 또는 `unstated`: 거래소가 미결제약정의 양방향을 하나의 숫자로 보고하는지 여부.
contracts[].oi_usd_singlenumber|nullUSD`oi_usd`의 단방향 환산값. 방향 기준이 명시되지 않았으면 null.
contracts[].marginstring—증거금 통화 분류: `usdt`, `usdc`, `coin` 또는 `other`.
contracts[].kindstring—`linear` 또는 `inverse`.
contracts[].contract_typestring—`perpetual` 또는 `delivery`.
contracts[].expiry_tsnumber|nullms만기 선물 계약의 만기일. 무기한 선물이거나 공시되지 않았으면 null.
contracts[].margin_basisstring—증거금 분류의 판정 근거(계약 명세 또는 거래소 기본값).
contracts[].updated_atnumberms이 행이 마지막으로 갱신된 시각.
contracts[].age_snumbers이 행이 마지막으로 갱신된 후 경과한 초.
contracts[].is_staleboolean—행이 신선도 창보다 오래되면 true. 만료된 행은 합계에 사용하지 않습니다.
contracts[].collectorstring—이 행을 생성한 내부 수집기.
contracts[].included_sincenumber|nullms이 계약이 합계에 편입된 시각. 기본 집합이면 null.
coverageobject—위 수치에 포함된 것과 포함되지 않은 것. 다른 소스와 합계를 비교하기 전에 먼저 이 항목을 비교하십시오.
coverage.included_exchangesarray—합계에 데이터가 포함된 거래소.
coverage.included_exchanges[]string—합계에 포함된 거래소.
coverage.pendingarray—수집은 되지만 아직 합계에 포함되지 않은 계약(예: 자체 25시간 히스토리를 축적 중인 경우). 공백이 드러나도록 현재 값과 함께 나열합니다.
coverage.pending[]object—수집되었지만 아직 포함되지 않은 항목.
coverage.pending[].exchangestring—거래소 ID, 소문자(예: `binance`).
coverage.pending[].symbolstring—CoinBoss가 정규화한 종목 심볼(예: BTCUSDT).
coverage.pending[].native_symbolstring—거래소가 표기하는 그대로의 심볼.
coverage.pending[].marginstring—증거금 통화 분류.
coverage.pending[].contract_typestring—`perpetual` 또는 `delivery`.
coverage.pending[].oi_usdnumberUSDUSD 명목가치 기준 미결제약정.
coverage.pending[].age_snumbers이 행이 마지막으로 갱신된 후 경과한 초.
coverage.pending[].reasonstring—사유 코드.
coverage.pending[].detailstring|null—상세.
coverage.pending_usdnumber|nullUSD대기 중인 계약의 합계. `total_usd`에는 포함되지 않습니다.
coverage.stale_excludedarray—마지막 갱신이 사용 가능 창을 벗어나 제외된 행. 이 표를 생성한 샘플에서는 비어 있음
coverage.unavailablearray—포함할 수 없었던 거래소 / 계약 쌍과 각각의 사유. 0으로 집계하는 일은 없습니다.
coverage.unavailable[]object—데이터가 없는 항목과 그 사유. 0으로 보고하는 일은 없습니다.
coverage.unavailable[].exchangestring—거래소 ID, 소문자(예: `binance`).
coverage.unavailable[].symbolstring—CoinBoss가 정규화한 종목 심볼(예: BTCUSDT).
coverage.unavailable[].native_symbolstring—거래소가 표기하는 그대로의 심볼.
coverage.unavailable[].marginstring—증거금 통화 분류.
coverage.unavailable[].contract_typestring—`perpetual` 또는 `delivery`.
coverage.unavailable[].reasonstring—사유 코드.
coverage.unavailable[].detailstring—상세.
methodobject—이 응답에 사용된 산식을 일반 텍스트로 기술한 내용.
method.totalstring—합계.
method.usdstringUSD값.
method.change_h1_h4string—1h 및 4h 미결제약정 변화의 일반 텍스트 정의: 각 계약을 구간 시작 시점에 가장 가까운 자체 스냅샷과 비교합니다.
method.change_h24string—24h 미결제약정 변화의 일반 텍스트 정의: 24시간 전에 가장 가까운 1시간 단위 스냅샷과 같은 거래소끼리 짝지어 비교하며, 동결된 기준값은 제외합니다.
method.oi_sidestring—`double`, `single` 또는 `unstated`: 거래소가 미결제약정의 양방향을 하나의 숫자로 보고하는지 여부.

2026-11-11 23:00 UTC에 실제 응답 4건으로 생성.

응답 예시

/api/sd/oi?coin=BTC · 2026-11-13 03:42:34 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: change: 원래 항목 3개; contracts: 원래 항목 95개; by_exchange: 원래 항목 22개; coverage.included_exchanges: 원래 항목 22개.

  • {
    • "success": true,
    • "coin": "BTC",
    • "now": 1794541354332,
    • "total_usd": 49257599146.63,
    • "n_exchanges": 22,
    • "n_contracts": 95,
    • "asof": 1794541323000,
    • "total_usd_single_adjusted": 43966493473.92502,
    • "double_sided": {
      • "exchanges": [ … 2 ],
      • "oi_usd": 10582211345.41
      },
    • "by_kind": {
      • "linear_usd": 44406831635.63,
      • "inverse_usd": 4850767511
      },
    • "by_margin": {
      • "other": 8261195928.05,
      • "usdt": 31111486177.109997,
      • "usdc": 5034149530.469999,
      • "coin": 4850767511
      },
    • "by_contract_type": {
      • "perpetual_usd": 41072949781.31,
      • "delivery_usd": 8184649365.32
      },
    • "change": {
      • "h1": { … 9 },
      • "h4": { … 9 }
      },
    • "by_exchange": [
      • { … 13 },
      • { … 13 }
      ],
    • "contracts": [
      • { … 16 },
      • { … 16 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 8 ],
      • "pending": [],
      • "pending_usd": null,
      • "stale_excluded": [ … 2 ],
      • "unavailable": [ … 1 ]
      },
    • "method": {
      • "total": "SUM(oi_usd) over fresh contracts (non-CME updated within 3h; CME within 120h)",
      • "usd": "linear: contracts × contract_size × mark/last price; inverse: contracts × contract_face_value_usd (or coin amount × price)",
      • "change_h1_h4": "same-contract pairing vs own snapshot nearest to now−W (15-minute snapshots, hourly fallback)",
      • "change_h24": "same-exchange pairing vs hourly snapshot nearest to now−24h (site-wide convention); contracts whose baseline snapshot is a frozen carry-over (identical to the c…",
      • "oi_side": "as disclosed by each exchange; double = exchange API itself reports open interest as twice the single-sided figure"
      }
    }

검증된 샘플

프로브는 위 예시 외에도 아래 파라미터로 이 엔드포인트를 호출하고 매번 스키마를 검사합니다.

파라미터HTTP지연 시간결과
coin=ETH20034 ms통과
coin=SOL20023 ms통과
coin=ARKM20020 ms통과
—4002 ms통과 예상된 오류 반환

2026-11-13 03:27:39 UTC 점검

상세 정보

인증
없음. 공개 엔드포인트.
요청 한도
IP당 분당 1200회
서버 캐시
20s
엣지 마이크로 캐시
10s
갱신 주기
대부분의 거래소는 60 s마다(시세와 함께 기록; binance 상위 50개와 okx는 전용 60 s 작업); binance / bingx / aster / gate / htx 전체 스캔은 5분마다; 코인 마진 / USDC / 만기 선물 계약은 120 s마다(5분마다 공유 테이블로 승격); cme는 거래일당 1회(04:10 UTC); 단기 구간 변화용 15분 단위 계약별 스냅샷
구간
최신 스냅샷(3 h 이내 행, cme는 120 h; 15분 후 is_stale 플래그, cme는 36 h); 1 h / 4 h 변화(15분 스냅샷)와 24 h 변화(1시간 단위 아카이브)
데이터 소스
자체 수집기가 파생상품 거래소 22곳(예: binance, okx, bybit, gate, bitget, hyperliquid)의 공개 REST API에서 폴링한 미결제약정과 CME의 공식 일일 거래량/미결제약정 보고서.
거래소 커버리지
최신 행이 있는 소스 23개(거래소 22곳 + cme); 모든 계약 유형(USDT / USDC / USD 선형, 코인 마진 인버스, 무기한 및 만기 선물); bybit와 gate는 거래소 공시대로 양방향 미결제약정을 보고; 3 h(cme: 120 h)보다 오래된 행은 제외; coverage 블록에 포함된 거래소, 대기 중인 거래소(자체 히스토리 25 h 축적 대기), 만료로 제외된 거래소, 사용 불가 거래소를 나열
단위
open interest in USD notional; total_usd_single_adjusted halves venues that report double-sided OI; changes in percent
산출 방식
total_usd = SUM(oi_usd) over fresh contracts (multiplier contracts folded); breakdowns by kind / margin / contract type; h1 / h4 change by same-contract pairing against 15-minute snapshots (+/- 10 min, fallback hourly archive) and only when >= 50% of OI is matched; h24 change by same-exchange pairing against the hourly bucket nearest now - 24 h
타임스탬프
필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
응답 형식
json
안정성
안정
제공 시작
2026-11-11

실시간 상태

사용 가능2026-11-13 03:42:34 UTC 점검HTTP 20022 ms스키마 일치최신 데이터 포인트: 31s 경과

최근 30일 가용성

점검 408회 중 100% 통과

마지막 프로브에서 감지된 스키마 드리프트
  • 반환되지만 문서에 없음: coverage.stale_excluded[], coverage.stale_excluded[].exchange, coverage.stale_excluded[].symbol, coverage.stale_excluded[].oi_usd, coverage.stale_excluded[].age_s, coverage.stale_excluded[].reason

오류

실패한 호출은 모든 엔드포인트에서 동일한 구조로 반환됩니다. 전체 목록은 오류 페이지에 있습니다. 오류 및 요청 한도 →

코드HTTP의미대응 방법
INVALID_PARAM400필수 파라미터가 누락되었거나 허용되지 않는 값입니다. 문제가 된 파라미터를 알 수 있으면 `param`에 그 이름이 들어갑니다.그대로 재시도하지 말고 요청을 수정하십시오.
UNAUTHORIZED401`CB-API-KEY` 헤더를 보냈지만 알 수 없거나 폐기된 키입니다. 공개 데이터에는 키가 필요 없으므로 헤더를 빼거나 유효한 키를 사용하십시오.그대로 재시도하지 마십시오.
FORBIDDEN403해당 경로는 공개 API에 포함되지 않습니다(내부용 또는 계정 전용).재시도하지 마십시오.
NOT_FOUND404알 수 없는 경로이거나, 요청한 코인 / 거래소 / 펀드가 존재하지 않습니다.재시도하지 말고 경로와 식별자를 카탈로그와 대조해 확인하십시오.
RATE_LIMITED429요청 수가 분당 한도를 초과했습니다. `Retry-After`가 대기해야 할 초를 알려 줍니다.`Retry-After`만큼 기다린 뒤 백오프를 적용해 재시도하십시오.
INTERNAL500예기치 않은 서버 오류입니다. 메시지는 의도적으로 일반적인 내용만 담습니다. 신고할 때 `request_id`를 인용하십시오.몇 초 뒤 한 번 재시도하고, 계속되면 요청 ID와 함께 신고하십시오.
UPSTREAM_FAILED503이 엔드포인트의 데이터 소스가 제시간에 응답하지 않았습니다. 그 대신 만료된 수치나 대체 수치를 반환하는 일은 없습니다.백오프를 적용해 재시도하고 상태 페이지를 확인하십시오.
UNAVAILABLE501 / 503데이터셋이 일시적으로 준비되지 않았거나(캐시 워밍 중) 엔드포인트에 아직 합법적인 공개 소스가 없습니다.나중에 재시도하십시오. 설계상 사용 불가인 엔드포인트는 카탈로그에 표시되어 있습니다.
REQUEST_FAILED200일부 이전 엔드포인트는 HTTP 200에 `success: false`로 응답합니다. HTTP 상태만 보지 말고 항상 `success`를 확인하십시오.메시지에 따라 다릅니다. 실패한 요청으로 처리하십시오.

직접 실행

GET/api/sd/oi사용 가능
파라미터

string — Coin symbol; 400 when missing. Alias: `base`.

요청 URLhttps://www.coinboss.com/api/sd/oi?coin=BTC
엔드포인트를 선택하고 “요청 보내기”를 누르십시오. 응답, 헤더, 소요 시간이 여기에 표시됩니다.