/api/sd/options/chain
GET저하STALE

옵션 체인(단일 거래소)

단일 거래소에서 한 만기일의 모든 행사가에 대해 콜과 풋을 나란히 반환합니다. 미결제약정, 거래량, 마크 가격, 마크 / 매수 / 매도 IV, 그릭스를 거래소가 공시한 값 그대로 제공합니다.

GET/api/sd/options/chain
저하. 엔드포인트가 보고한 데이터 품질: STALE

요청

쿼리 파라미터

이름타입필수기본값허용 값설명
coinstring필수——코인 심볼, 대소문자 구분 없음(예: `BTC`). 값이 없거나 형식이 잘못되면 400을 반환합니다. 예시: BTC
exchangestring필수—deribit, binance, bybit, okx, gate, coincall거래소 ID. 여기서는 `all`을 허용하지 않습니다. 옵션 체인은 거래소 하나에 속하기 때문입니다. 예시: okx
expirystring선택——`YYYY-MM-DD` 형식의 UTC 만기일. 기본값: 가장 가까운 만기일. `all`은 허용하지 않습니다.
kindstring선택—inverse, linear거래소가 코인 결제(`inverse`) 옵션과 스테이블코인 결제(`linear`) 옵션을 모두 상장한 경우의 계약 계열. 기본값: 해당 만기일의 미결제약정이 더 큰 계열.
limitinteger선택100≥ 1 · ≤ 500페이지당 행사가 수(한 행 = 행사가 하나와 그 콜 및 풋).
offsetinteger선택0≥ 0 · ≤ 100000건너뛸 행사가 수.

요청 예시

curl -s "https://www.coinboss.com/api/sd/options/chain?coin=BTC&exchange=okx"

응답 필드

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

필드타입단위설명
successboolean—요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다.
schemastring—이 응답의 스키마 ID. 기존 필드의 의미나 타입이 바뀔 때만 변경됩니다.
nownumberms응답이 생성된 서버 시각.
coinstring—코인 심볼(대문자).
exchangestring—거래소 ID(소문자).
expirystring—만기일(UTC), `YYYY-MM-DD` 또는 `all`.
expiry_tsnumberms만기 시각.
days_leftnumberdays만기일까지 남은 일수.
kindstring—계약 계열: `inverse`(코인 결제) 또는 `linear`(스테이블코인 결제).
kinds_availablearray—거래소가 이 만기일에 상장한 계약 계열.
kinds_available[]string—거래소가 이 만기일에 상장한 계약 계열.
expiries_availablearray—현재 계약이 있는 만기일.
expiries_available[]string—현재 계약이 있는 만기일.
underlyingstring—계약 계열의 기초 자산.
settlestring—계약 계열의 결제 통화.
contract_sizenumbercoin계약당 기초 코인 수량.
underlying_pricenumberUSD거래소가 이 만기일에 대해 공시한 선도 / 기초 자산 가격.
index_pricenumberUSDUSD 환산에 사용하는 현물 지수 가격(집계에서는 각 거래소 자체 지수 가격의 중앙값).
total_strikesnumber—페이지네이션 전 이 만기일에 사용 가능한 행사가 수.
limitnumber—적용된 행 한도.
offsetnumber—건너뛴 행 수.
returnednumber—이 페이지에서 반환된 행사가 수.
rowsarray—행사가당 한 행(콜과 풋 포함).
rows[]object—행사가당 한 행(콜과 풋 포함).
rows[].strikenumberUSD행사가.
rows[].callobject—이 행사가의 콜 계약. 거래소에 상장된 계약이 없으면 `null`입니다.
rows[].call.instrumentstring—거래소가 표기하는 그대로의 계약 이름.
rows[].call.oi_contractsnumbercontracts거래소의 계산 방식에 따른 계약 수 기준 미결제약정.
rows[].call.oi_coinnumbercoin기초 코인 단위의 미결제약정.
rows[].call.oi_usdnumberUSDUSD 명목가치 기준 미결제약정: 코인 수량 × 현물 지수 가격. 단방향 기준.
rows[].call.vol_contracts_24hnumbercontracts거래소의 계산 방식에 따른 계약 수 기준 24h 거래량.
rows[].call.vol_coin_24hnumbercoin기초 코인 단위의 24h 거래 수량.
rows[].call.vol_usd_24hnumberUSD24h 명목 거래량: 거래된 코인 수량 × 현재 현물 지수 가격. 프리미엄 거래대금이 아닙니다.
rows[].call.vol_premium_usd_24hnumber|nullUSD거래소가 공시하는 경우의 24h 프리미엄 거래대금(옵션 가격 × 수량). 그 외에는 `null`입니다. 명목 거래량에 합산하는 일은 없습니다.
rows[].call.mark_pricenumber|null—호가 단위 기준 옵션의 마크 가격(코인 결제 계약은 코인).
rows[].call.mark_price_usdnumber|nullUSDUSD로 환산한 옵션의 마크 가격.
rows[].call.mark_ivnumber%마크 가격 기준 내재변동성.
rows[].call.bid_ivnumber|null%최우선 매수호가 기준 내재변동성. 거래소가 공시하지 않으면 `null`입니다.
rows[].call.ask_ivnumber|null%최우선 매도호가 기준 내재변동성. 거래소가 공시하지 않으면 `null`입니다.
rows[].call.deltanumber|null—거래소가 공시한 델타. 공시되지 않으면 `null`입니다.
rows[].call.gammanumber|null—거래소가 공시한 감마. 공시되지 않으면 `null`입니다.
rows[].call.veganumber|null—거래소가 공시한 베가. 공시되지 않으면 `null`입니다.
rows[].call.thetanumber|null—거래소가 공시한 세타. 공시되지 않으면 `null`입니다.
rows[].call.observed_atnumberms소스가 데이터에 부여한 타임스탬프.
rows[].putobject—이 행사가의 풋 계약. 거래소에 상장된 계약이 없으면 `null`입니다.
rows[].put.instrumentstring—거래소가 표기하는 그대로의 계약 이름.
rows[].put.oi_contractsnumbercontracts거래소의 계산 방식에 따른 계약 수 기준 미결제약정.
rows[].put.oi_coinnumbercoin기초 코인 단위의 미결제약정.
rows[].put.oi_usdnumberUSDUSD 명목가치 기준 미결제약정: 코인 수량 × 현물 지수 가격. 단방향 기준.
rows[].put.vol_contracts_24hnumbercontracts거래소의 계산 방식에 따른 계약 수 기준 24h 거래량.
rows[].put.vol_coin_24hnumbercoin기초 코인 단위의 24h 거래 수량.
rows[].put.vol_usd_24hnumberUSD24h 명목 거래량: 거래된 코인 수량 × 현재 현물 지수 가격. 프리미엄 거래대금이 아닙니다.
rows[].put.vol_premium_usd_24hnumber|nullUSD거래소가 공시하는 경우의 24h 프리미엄 거래대금(옵션 가격 × 수량). 그 외에는 `null`입니다. 명목 거래량에 합산하는 일은 없습니다.
rows[].put.mark_pricenumber—호가 단위 기준 옵션의 마크 가격(코인 결제 계약은 코인).
rows[].put.mark_price_usdnumberUSDUSD로 환산한 옵션의 마크 가격.
rows[].put.mark_ivnumber%마크 가격 기준 내재변동성.
rows[].put.bid_ivnumber|null%최우선 매수호가 기준 내재변동성. 거래소가 공시하지 않으면 `null`입니다.
rows[].put.ask_ivnumber|null%최우선 매도호가 기준 내재변동성. 거래소가 공시하지 않으면 `null`입니다.
rows[].put.deltanumber|null—거래소가 공시한 델타. 공시되지 않으면 `null`입니다.
rows[].put.gammanumber|null—거래소가 공시한 감마. 공시되지 않으면 `null`입니다.
rows[].put.veganumber|null—거래소가 공시한 베가. 공시되지 않으면 `null`입니다.
rows[].put.thetanumber|null—거래소가 공시한 세타. 공시되지 않으면 `null`입니다.
rows[].put.observed_atnumberms소스가 데이터에 부여한 타임스탬프.
coverageobject—수치에 포함된 것과 포함되지 않은 것. 다른 소스와 합계를 비교하기 전에 먼저 이 항목을 비교하십시오.
coverage.included_exchangesarray—최신 데이터가 포함된 소스.
coverage.included_exchanges[]string—최신 데이터가 포함된 소스.
coverage.unavailablearray—포함할 수 없었던 소스와 각각의 사유. 0으로 집계하는 일은 없습니다. 이 표를 생성한 샘플에서는 비어 있음
coverage.stale_excludedarray—마지막 갱신이 신선도 창을 벗어나 제외된 행. 이 표를 생성한 샘플에서는 비어 있음
coverage.field_gapsarray—거래소가 공시하지 않는 열. 해당 거래소에서는 `null`입니다.
coverage.field_gaps[]object—거래소가 공시하지 않는 열. 해당 거래소에서는 `null`입니다.
coverage.field_gaps[].exchangestring—거래소 ID(소문자).
coverage.field_gaps[].fieldsarray—누락된 열의 이름.
coverage.field_gaps[].fields[]string—누락된 열의 이름.
coverage.field_gaps[].kindstring—계약 계열: `inverse`(코인 결제) 또는 `linear`(스테이블코인 결제).
methodobject—이 응답에 사용된 산식을 필드당 한 항목씩 일반 텍스트로 기술한 내용.
method.chainstring—`chain`의 산식 설명, 일반 텍스트.
method.kindstring—`kind`의 산식 설명, 일반 텍스트.
method.oi_usdstring—`oi_usd`의 산식 설명, 일반 텍스트.
method.mark_pricestring—`mark_price`의 산식 설명, 일반 텍스트.
method.ivstring—`iv`의 산식 설명, 일반 텍스트.
method.greeksstring—`greeks`의 산식 설명, 일반 텍스트.
method.vol_usd_24hstring—`vol_usd_24h`의 산식 설명, 일반 텍스트.
method.vol_premium_usd_24hstring—`vol_premium_usd_24h`의 산식 설명, 일반 텍스트.
metaobject—이 응답의 데이터 경로와 신선도.
meta.schemastring—이 응답의 스키마 ID. 기존 필드의 의미나 타입이 바뀔 때만 변경됩니다.
meta.sourcearray—데이터를 수집한 업스트림 공개 엔드포인트.
meta.source[]object—데이터를 수집한 업스트림 공개 엔드포인트.
meta.source[].exchangestring—거래소 ID(소문자).
meta.source[].endpointstring—수집기가 읽는 소스의 공개 엔드포인트(데이터 경로 표시용이며 클라이언트가 직접 호출하지 않음).
meta.observed_atnumberms소스가 데이터에 부여한 타임스탬프.
meta.received_atnumbermsCoinBoss 수집기가 데이터를 수신한 시각.
meta.fetched_atnumberms이 응답이 조립된 시각.
meta.windowstring—수치가 포괄하는 시간 구간.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN 또는 UNAVAILABLE. 데이터 타임스탬프와 커버리지로 판정합니다.
meta.is_staleboolean—데이터가 신선도 창보다 오래되었으면 true.
meta.cache_ttl_snumbers이 응답의 캐시 수명.
meta.fallbackstring—수집기나 소스에 장애가 발생했을 때 엔드포인트가 반환하는 내용.

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

응답 예시

/api/sd/options/chain?coin=BTC&exchange=okx · 2026-11-13 03:52:54 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: rows: 원래 항목 45개; expiries_available: 원래 항목 12개.

  • {
    • "success": true,
    • "schema": "coinboss.sd.options/1",
    • "now": 1794541974766,
    • "coin": "BTC",
    • "exchange": "okx",
    • "expiry": "2026-11-13",
    • "expiry_ts": 1794556800000,
    • "days_left": 0.1716,
    • "kind": "inverse",
    • "kinds_available": [
      • "inverse",
      • "linear"
      ],
    • "expiries_available": [
      • "2026-11-13",
      • "2026-11-14",
      • "2026-11-15",
      • "2026-11-16",
      • "2026-11-20",
      • "2026-11-27",
      • "2026-12-04",
      • "2026-12-25"
      ],
    • "underlying": "BTC-USD",
    • "settle": "BTC",
    • "contract_size": 0.01,
    • "underlying_price": 71428.8359576,
    • "index_price": 71417.4,
    • "total_strikes": 45,
    • "limit": 100,
    • "offset": 0,
    • "returned": 45,
    • "rows": [
      • { … 3 },
      • { … 3 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 1 ],
      • "unavailable": [],
      • "stale_excluded": [],
      • "field_gaps": [ … 1 ],
      • "stale_included": [ … 1 ]
      },
    • "method": {
      • "chain": "T-quote for one exchange, one expiry and one contract family: one row per strike (ascending) with the call and put legs; paginated by strike with limit (default…",
      • "kind": "inverse = coin-settled (Deribit BTC/ETH, OKX *-USD); linear = USD/USDT/USDC-settled. When an exchange lists both families for the expiry and kind is omitted, th…",
      • "oi_usd": "sum over contracts of oi_coin x that exchange's spot index price (USDT/USDC treated 1:1 as USD); oi_coin is open interest in units of the underlying coin after …",
      • "mark_price": "exchange-native quote: Deribit/OKX inverse in underlying coin per 1 coin; Binance in USDT per contract (contract_size coins); others in USD per 1 coin. mark_pri…",
      • "iv": "mark_iv / bid_iv / ask_iv in percent as published by the exchange (no-quote sentinels such as 0 or -1 are null)",
      • "greeks": "delta/gamma/vega/theta exactly as published by the exchange (OKX: Black-Scholes greeks in USD terms); never computed by CoinBoss; null where the exchange does n…",
      • "vol_usd_24h": "NOTIONAL 24h volume = sum of vol_coin (24h traded quantity in underlying coin) x the exchange's CURRENT spot index price; not premium turnover. Binance statisti…",
      • "vol_premium_usd_24h": "PREMIUM turnover (option price x quantity) as reported by the exchange: Deribit volume_usd, Binance amount, Gate sum(|size| x multiplier x price) from the 24h t…"
      },
    • "meta": {
      • "schema": "coinboss.sd.options/1",
      • "source": [ … 1 ],
      • "observed_at": 1794522472654,
      • "received_at": 1794522473638,
      • "fetched_at": 1794541974766,
      • "window": "latest",
      • "quality": "STALE",
      • "is_stale": true,
      • "cache_ttl_s": 60,
      • "fallback": "on collector failure the last stored rows are served: an exchange whose newest batch is older than 25 min (collector cycle is 10 min) is excluded from totals (l…"
      }
    }

검증된 샘플

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

파라미터HTTP지연 시간결과
coin=ETH&exchange=deribit20059 ms통과 STALE
coin=BTC&limit=5&exchange=bybit2003 ms통과 STALE
coin=BTC4001 ms통과 예상된 오류 반환

2026-11-13 03:28:17 UTC 점검

상세 정보

인증
없음. 공개 엔드포인트.
요청 한도
IP당 분당 1200회
서버 캐시
60s
엣지 마이크로 캐시
10s
갱신 주기
수집기는 10분마다 한 차례 실행되며, 거래소는 마지막으로 성공한 수집 이후 25분 동안 최신으로 간주됩니다.
구간
만기일 하나의 최신 스냅샷.
데이터 소스
Deribit, Binance, Bybit, OKX, Gate, Coincall의 공개 REST 옵션 엔드포인트를 CoinBoss가 수집해 저장합니다(sd_opt_latest, sd_opt_summary_hourly). 제3자 집계 서비스는 관여하지 않습니다.
거래소 커버리지
옵션 거래소 6곳. 선택한 거래소에 상장된 옵션이 없는 코인은 null 필드, `meta.quality = "UNAVAILABLE"`, 그리고 `coverage.unavailable`의 사유와 함께 HTTP 200을 반환합니다. 공개 옵션 피드가 없는 거래소도 그곳에 나열됩니다.
페이지네이션
오프셋 방식: `limit`(최대 500)과 `offset`. 응답에 `total_strikes`와 `returned`가 포함됩니다.
정렬
행사가 오름차순.
단위
USD notional = contracts × contract size × spot index price of the venue. `*_coin` fields are in units of the underlying coin. Implied volatility is in percent (55 = 55 %). `vol_premium_usd_24h` is premium turnover, reported separately and never added to notional volume.
산출 방식
Greeks and IV are passed through from the venue, not recomputed. A venue that does not publish a column returns `null` for it and the column is listed under `coverage.field_gaps`.
타임스탬프
필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
응답 형식
json
안정성
안정
제공 시작
2026-11-11

실시간 상태

저하2026-11-13 03:52:54 UTC 점검HTTP 20057 ms스키마 일치최신 데이터 포인트: 5.4h 경과

엔드포인트가 보고한 데이터 품질: STALE

최근 30일 가용성

점검 406회 중 100% 통과

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

오류

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

코드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/options/chain저하
파라미터

string — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.

string — Venue id. `all` is not accepted here: a chain belongs to one venue.

string — UTC expiry date as `YYYY-MM-DD`. Default: the nearest expiry. `all` is not accepted.

string — Contract family when the venue lists both coin-settled (`inverse`) and stablecoin-settled (`linear`) options. Default: the family with the larger open interest for that expiry.

integer · 기본값 100 · 최소 1 · 최대 500 — Strikes per page (one row = one strike with its call and put).

integer · 기본값 0 · 최소 0 · 최대 100000 — Number of strikes to skip.

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