GET사용 가능
단일 코인의 통합 미결제약정 히스토리
단일 코인의 통합 미결제약정 히스토리
GET
/api/oi/history요청
쿼리 파라미터
| 이름 | 타입 | 필수 | 기본값 | 허용 값 | 설명 |
|---|---|---|---|---|---|
| base | string | 필수 | — | — | 기초 코인 심볼(대문자, 예: BTC). 예시: BTC |
| hours | integer | 선택 | 168 | ≥ 1 · ≤ 2160 | 조회 구간(시간 단위). 예시: 168 |
요청 예시
curl -s "https://www.coinboss.com/api/oi/history?base=BTC&hours=168"응답 필드
필드 표는 실제 응답에서 생성되므로 엔드포인트가 반환하는 내용을 그대로 보여 줍니다. 경로에서 a[]는 배열 항목을, {*}는 코인이나 거래소처럼 동적 이름을 키로 갖는 객체를 뜻합니다.
| 필드 | 타입 | 단위 | 설명 |
|---|---|---|---|
| success | boolean | — | 요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다. |
| base | string | — | 기초 자산 심볼. |
| hours | number | — | 1시간 단위 값 또는 시간 수. |
| exchanges | array | — | 거래소. |
| exchanges[] | string | — | 거래소. |
| count | number | — | 항목 수. |
| data | array | — | 페이로드. |
| data[] | object | — | 페이로드. |
| data[].hour_ts | number | ms | 1시간 버킷의 시작 시각. |
| data[].total_usd | number | USD | 합계. |
| data[].byExchange | object | — | 해당 1시간 단위 스냅샷 시점의 거래소별 미결제약정. 키는 거래소 ID이고, 값은 그 거래소에 있는 해당 코인의 계약을 합산한 USD 금액입니다. |
| data[].byExchange.bitfinex | number | — | 거래소 `bitfinex`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.edgex | number | — | 거래소 `edgex`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.aster | number | — | 거래소 `aster`의 값(키는 거래소 ID). |
| data[].byExchange.bingx | number | — | 거래소 `bingx`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.kucoin | number | — | 거래소 `kucoin`의 값(키는 거래소 ID). |
| data[].byExchange.deribit | number | — | 거래소 `deribit`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.okx | number | — | 거래소 `okx`의 값(키는 거래소 ID). |
| data[].byExchange.dydx | number | — | 거래소 `dydx`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.hyperliquid | number | — | 거래소 `hyperliquid`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.backpack | number | — | 거래소 `backpack`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.bitget | number | — | 거래소 `bitget`의 값(키는 거래소 ID). |
| data[].byExchange.htx | number | — | 거래소 `htx`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.lighter | number | — | 거래소 `lighter`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.bybit | number | — | 거래소 `bybit`의 값(키는 거래소 ID). |
| data[].byExchange.binance | number | — | 거래소 `binance`의 값(키는 거래소 ID). |
| data[].byExchange.gate | number | — | 거래소 `gate`의 값(키는 거래소 ID). |
| data[].byExchange.mexc | number | — | 거래소 `mexc`의 값(키는 거래소 ID). |
| data[].byExchange.cryptocom | number | — | 거래소 `cryptocom`의 값(키는 거래소 ID). |
| data[].byExchange.kraken | number | — | 거래소 `kraken`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.paradex | number | — | 거래소 `paradex`의 값(키는 거래소 ID). 없을 수 있음 |
| data[].byExchange.whitebit | number | — | 거래소 `whitebit`의 값(키는 거래소 ID). |
| data[].byExchange.cme | number | — | 거래소 `cme`의 값(키는 거래소 ID). 없을 수 있음 |
2026-11-11 23:00 UTC에 실제 응답 4건으로 생성.
응답 예시
/api/oi/history?base=BTC&hours=168 · 2026-11-13 03:57:41 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: data: 원래 항목 168개; exchanges: 원래 항목 22개.
- "success"true
- "base""BTC"
- "hours"168
- "exchanges"
- "aster"
- "backpack"
- "binance"
- "bingx"
- "bitfinex"
- "bitget"
- "bybit"
- "cme"
- "count"168
- "data"
검증된 샘플
프로브는 위 예시 외에도 아래 파라미터로 이 엔드포인트를 호출하고 매번 스키마를 검사합니다.
| 파라미터 | HTTP | 지연 시간 | 결과 |
|---|---|---|---|
| base=ETH&hours=168 | 200 | 32 ms | 통과 |
| base=SOL&hours=168 | 200 | 32 ms | 통과 |
| base=ARKM&hours=168 | 200 | 34 ms | 통과 |
2026-11-13 03:57:41 UTC 점검
상세 정보
- 인증
- 없음. 공개 엔드포인트.
- 요청 한도
- IP당 분당 1200회
- 서버 캐시
- 5m
- 엣지 마이크로 캐시
- 10s
- 갱신 주기
- UTC 시간이 바뀔 때마다 1시간 단위로 아카이브(최신 테이블의 스냅샷); ClickHouse 사본은 5분마다 동기화
- 구간
- hours 파라미터, 기본값 168 h, 범위 1..2160 h; 1시간 단위 포인트
- 데이터 소스
- 자체 수집기가 파생상품 거래소 22곳(예: binance, okx, bybit, gate, bitget, hyperliquid)의 공개 REST API에서 폴링한 미결제약정과 CME의 공식 일일 거래량/미결제약정 보고서.
- 거래소 커버리지
- 해당 코인의 1시간 단위 아카이브에 있는 거래소; 2026-11-11부터는 최신 행만 아카이브(OI 3 h, cme 120 h); cme 일별 값은 1시간 단위로 이월
- 단위
- open interest in USD notional; hour_ts in Unix ms
- 산출 방식
- per hour and exchange: SUM(oi_usd) over all contract symbols of the coin; total_usd = sum over exchanges
- 타임스탬프
- 필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
- 응답 형식
- json
- 안정성
- 안정
실시간 상태
사용 가능2026-11-13 03:57:41 UTC 점검HTTP 20035 ms스키마 일치최신 데이터 포인트: 58m 경과
최근 30일 가용성
점검 410회 중 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`를 확인하십시오. | 메시지에 따라 다릅니다. 실패한 요청으로 처리하십시오. |
직접 실행
GET
/api/oi/history사용 가능파라미터
string — Base coin symbol (uppercase, e.g. BTC).
integer · 기본값 168 · 최소 1 · 최대 2160 — Look-back window in hours.
요청 URL
https://www.coinboss.com/api/oi/history?base=BTC&hours=168엔드포인트를 선택하고 “요청 보내기”를 누르십시오. 응답, 헤더, 소요 시간이 여기에 표시됩니다.
이 카테고리의 다른 엔드포인트
- 단일 코인의 미결제약정 /api/sd/oi
- 전체 거래소 기준 코인별 미결제약정 순위 /api/market/open-interest
- 단일 코인의 OI 누적 차트 시계열 /api/oi/chart
- 단일 코인의 통합 미결제약정 히스토리 /api/oi/history
- 미결제약정 매트릭스 /api/oi/matrix
- 단일 코인의 미결제약정 요약 /api/oi/summary