# 기타 [← REST API 가이드](../rest_api.md) ## 가상자산 정보 조회 {#get-_v2_currencies} ``` GET /v2/currencies ``` 가상자산 정보를 조회합니다. ### 스키마 ```ts // 요청 파라미터 없음 // JSON 응답 (`{ success: true, data }` 형태로 래핑되며, 아래는 `data` 필드의 구조) type Response = Array<{ /** 자산 심볼. Example: "btc" */ name: string; /** 자산 이름. Example: "Bitcoin" */ fullName: string; /** (삭제 예정) 출금 가능 상태. `networkList` 하단의 `withdrawalStatus` 필드를 참조해주세요. */ withdrawalStatus?: string; /** (삭제 예정) 입금 가능 상태. `networkList` 하단의 `depositStatus` 필드를 참조해주세요. */ depositStatus?: string; /** (삭제 예정) 입금에 필요한 컨펌 수. `networkList` 하단의 `confirmationCount` 필드를 참조해주세요. */ confirmationCount?: string; /** (삭제 예정) 출금 수수료. `networkList` 하단의 `withdrawalTxFee` 필드를 참조해주세요. */ withdrawalTxFee?: string; /** (삭제 예정) 최소 출금 수량. `networkList` 하단의 `withdrawalMinAmount` 필드를 참조해주세요. */ withdrawalMinAmount?: string; /** 요청 1회당 최대 출금 수량. Example: "10" */ withdrawalMaxAmountPerRequest: string; /** 기본 네트워크 심볼. Example: "BTC" */ defaultNetwork?: string; /** 지원하는 블록체인 네트워크 목록 (법정통화에는 표시되지 않음) */ networkList?: Array<{ /** 네트워크 심볼. Example: "ETH" */ name: string; /** 네트워크 이름. Example: "Ethereum" */ fullName: string; /** * 출금 가능 상태. * 값: */ withdrawalStatus: | "launched" // 출금 가능 | "stopped" // 출금 중단 ; /** * 입금 가능 상태 * 값: */ depositStatus: | "launched" // 입금 가능 | "stopped" // 입금 중단 ; /** 입금에 필요한 컨펌 수. Example: 3 */ confirmationCount: number; /** 출금 수수료. Example: "0.0001" */ withdrawalTxFee: string; /** 최소 출금 수량. Example: "0.00000001" */ withdrawalMinAmount: string; /** 출금 수량의 소숫점 자릿수. Example: 8 */ withdrawalPrecision: number; /** 2차 주소 존재 여부 */ hasSecondaryAddr: boolean; /** 컨트랙트 주소. Example: "0x6b3595068778dd592e39a122f4f5a5cf09c90fe2" */ contractAddress?: string; /** 블록체인 탐색기 주소. Example: "https://etherscan.io/address/" */ addressExplorerUrl?: string; }>; }>; ``` ### 예시 #### 요청 ```sh curl 'https://api.korbit.co.kr/v2/currencies' ``` #### 응답 ```json { "success": true, "data": [ { "name": "krw", "fullName": "Won", "withdrawalMaxAmountPerRequest": "5000000000", "depositStatus": "launched", "withdrawalStatus": "launched", "withdrawalTxFee": "1000", "withdrawalMinAmount": "1000" }, { "name": "btc", "fullName": "Bitcoin", "withdrawalMaxAmountPerRequest": "120", "defaultNetwork": "BTC", "networkList": [ { "name": "BTC", "fullName": "Bitcoin", "depositStatus": "launched", "withdrawalStatus": "launched", "confirmationCount": 3, "withdrawalTxFee": "0.0008", "withdrawalMinAmount": "0.0001", "withdrawalPrecision": 8, "hasSecondaryAddr": false, "addressExplorerUrl": "https://www.blockchain.com/ko/btc/address/" } ], "depositStatus": "launched", "withdrawalStatus": "launched", "confirmationCount": "3", "withdrawalTxFee": "0.0008", "withdrawalMinAmount": "0.0001" }, { "name": "eth", "fullName": "Ethereum", "withdrawalMaxAmountPerRequest": "2000", "defaultNetwork": "ETH", "networkList": [ { "name": "ETH", "fullName": "Ethereum", "depositStatus": "launched", "withdrawalStatus": "launched", "confirmationCount": 45, "withdrawalTxFee": "0.005", "withdrawalMinAmount": "0.0001", "withdrawalPrecision": 8, "hasSecondaryAddr": false, "addressExplorerUrl": "https://etherscan.io/address/" }, { "name": "BASE", "fullName": "BASE", "depositStatus": "launched", "withdrawalStatus": "launched", "confirmationCount": 1, "withdrawalTxFee": "0.001", "withdrawalMinAmount": "0.0001", "withdrawalPrecision": 8, "hasSecondaryAddr": false, "addressExplorerUrl": "https://basescan.org/address/" } ], "depositStatus": "launched", "withdrawalStatus": "launched", "confirmationCount": "45", "withdrawalTxFee": "0.005", "withdrawalMinAmount": "0.0001" }, { "name": "usdt", "fullName": "Tether", "withdrawalMaxAmountPerRequest": "500000", "defaultNetwork": "TRX", "networkList": [ { "name": "TRX", "fullName": "Tron", "depositStatus": "launched", "withdrawalStatus": "launched", "confirmationCount": 1, "withdrawalTxFee": "1", "withdrawalMinAmount": "1", "withdrawalPrecision": 6, "hasSecondaryAddr": false, "addressExplorerUrl": "https://tronscan.org/#/address/" } ], "depositStatus": "launched", "withdrawalStatus": "launched", "confirmationCount": "1", "withdrawalTxFee": "1", "withdrawalMinAmount": "1" } ] } ``` ## 서버 시각 조회 {#get-_v2_time} ``` GET /v2/time ``` 서버 시각을 조회합니다. ### 스키마 ```ts // 요청 파라미터 없음 // JSON 응답 (`{ success: true, data }` 형태로 래핑되며, 아래는 `data` 필드의 구조) type Response = { /** 서버 시각(timestamp). Example: 1700000000000 */ time: number; }; ``` ### 예시 #### 요청 ```sh curl 'https://api.korbit.co.kr/v2/time' ``` #### 응답 ```json { "success": true, "data": { "time": 1700000000000 } } ``` ## 거래수수료율 조회 {#get-_v2_tradingFeePolicy} ``` GET /v2/tradingFeePolicy ``` 현재 회원 계정에 적용되는 거래수수료율을 조회합니다. **필요 권한:** `readOrders` ### 스키마 ```ts // URL 쿼리 파라미터 type RequestQuery = { /** 어카운트 시퀀스 번호. 기본값은 1 (메인 어카운트). Example: 1 */ accountSeq?: number; /** 조회하려는 거래쌍을 입력합니다. 여러 거래쌍을 입력하려면 콤마(,)로 구분해 입력합니다. 입력하지 않으면 코빗에서 거래 가능한 모든 거래쌍의 정보를 응답합니다. Example: "btc_krw,eth_krw" */ symbol?: string; }; // JSON 응답 (`{ success: true, data }` 형태로 래핑되며, 아래는 `data` 필드의 구조) type Response = Array<{ /** 거래쌍. Example: "btc_krw" */ symbol: string; /** 매수 주문시 수수료 수취 자산. Example: "btc" */ buyFeeCurrency: string; /** 매도 주문시 수수료 수취 자산. Example: "krw" */ sellFeeCurrency: string; /** 최대 수취 가능 수수료율. `buyFeeCurrency`가 해당 거래쌍의 `quoteCurrency`와 같은 경우, 매수 주문 시 `수량*가격*maxFeeRate`만큼의 상대자산이 추가로 필요하며(사용 중 금액으로 전환) 주문이 체결되면 체결시 수수료율에 따라 정산됩니다. Example: "0.0015" */ maxFeeRate: string; /** 테이커(Taker) 주문 체결시 수수료율. Example: "0.0015" */ takerFeeRate: string; /** 메이커(Maker) 주문 체결시 수수료율. Example: "0" */ makerFeeRate: string; }>; ``` ### 예시 #### 요청 ```sh curl -H X-KAPI-KEY=API키 'https://api.korbit.co.kr/v2/tradingFeePolicy?timestamp=시각&signature=서명' ``` #### 응답 ```json { "success": true, "data": [ { "symbol": "btc_krw", "buyFeeCurrency": "btc", "sellFeeCurrency": "krw", "maxFeeRate": "0.002", "takerFeeRate": "0.0015", "makerFeeRate": "0" }, { "symbol": "eth_krw", "buyFeeCurrency": "eth", "sellFeeCurrency": "krw", "maxFeeRate": "0.002", "takerFeeRate": "0.0015", "makerFeeRate": "0" }, { "symbol": "etc_krw", "buyFeeCurrency": "krw", "sellFeeCurrency": "krw", "maxFeeRate": "0.002", "takerFeeRate": "0.0015", "makerFeeRate": "0" }, { "symbol": "xrp_krw", "buyFeeCurrency": "krw", "sellFeeCurrency": "krw", "maxFeeRate": "0.002", "takerFeeRate": "0.0015", "makerFeeRate": "0" } ] } ``` ## API 키 정보 조회 {#get-_v2_currentKeyInfo} ``` GET /v2/currentKeyInfo ``` 현재 사용중인 API 키의 정보를 조회합니다. **필요 권한:** 없음 ### 스키마 ```ts // 요청 파라미터 없음 // JSON 응답 (`{ success: true, data }` 형태로 래핑되며, 아래는 `data` 필드의 구조) type Response = { /** API 키 ID. Example: "FFSoRME97Sr7WBCMZJ_NO5Bj8MZ03EyArRzqyr1NKIA" */ apiKey: string; /** 이 API 키를 소유한 사용자의 UUID. Example: "f81d4fae-7dec-11d0-a765-00a0c91e6bf6" */ userUuid?: string; /** 키 종류 */ type: "hmac-sha256" | "ed25519"; /** ed25519 공개 키. 키 종류가 `ed25519`일 때만 출력됩니다. Example: -----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEAk+Yp3C31eFwoky+zyRNB6rAv/lgULTeghxTQpqwQHzM= -----END PUBLIC KEY----- */ publicKey?: string; /** API 키의 권한 목록 */ permissions: Array<"readBalances" | "readOrders" | "writeOrders" | "readDeposits" | "writeDeposits" | "readWithdrawals" | "writeWithdrawals">; /** API 키의 접속 가능한 IP 주소 목록. 여러 개의 주소는 콤마(`,`)로 구분합니다. Example: "1.2.3.4,5.6.7.8" */ whitelist: string; /** API 키 만료 시각. Example: 1700000000000 */ expiration: number; /** API 키 상태 */ status: | "activated" // 활성화 | "deactivated" // 비활성화 ; /** API 키 라벨. Example: "test key" */ label?: string; /** 이 API 키로 접근 가능한 어카운트 시퀀스 번호 목록. */ allowedAccountSeqs: number[]; /** API 키 생성 시각. Example: 1700000000000 */ createdAt: number; }; ``` ### 예시 #### 요청 ```sh curl -H X-KAPI-KEY=API키 'https://api.korbit.co.kr/v2/currentKeyInfo?timestamp=시각&signature=서명' ``` #### 응답 ```json { "success": true, "data": { "apiKey": "FFSoRME97Sr7WBCMZJ_NO5Bj8MZ03EyArRzqyr1NKIA", "userUuid": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6", "type": "ed25519", "publicKey": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAk+Yp3C31eFwoky+zyRNB6rAv/lgULTeghxTQpqwQHzM=\n-----END PUBLIC KEY-----\n", "permissions": ["readBalances", "readOrders"], "whitelist": "1.2.3.4,5.6.7.8", "allowedAccountSeqs": [1, 2], "expiration": 1700000000000, "status": "activated", "label": "test key", "createdAt": 1700000000000 } } ``` ## 공지사항 조회 {#get-_v2_notices} ``` GET /v2/notices ``` 최근 공지사항 20건을 최신순으로 조회합니다. 일반 코빗 공지와 오픈API(개발자센터) 공지를 함께 포함합니다. ### 스키마 ```ts // 요청 파라미터 없음 // JSON 응답 (`{ success: true, data }` 형태로 래핑되며, 아래는 `data` 필드의 구조) type Response = Array<{ /** 공지 제목. Example: "공지사항 제목 샘플" */ title: string; /** 공지 작성 시각 (ms). Example: 1700000000000 */ createdAt: number; /** 공지 최종 수정 시각 (ms). 일부 공지에는 없을 수 있습니다. Example: 1700000000000 */ updatedAt?: number; /** 공지 상세 페이지 URL. Example: "https://www.korbit.co.kr/notice/detail/?noticeId=4Oy9q6ALiM7jABzMt32ul5" */ url: string; }>; ``` ### 예시 #### Request ```sh curl 'https://api.korbit.co.kr/v2/notices' ``` #### Response ```json { "success": true, "data": [ { "title": "공지사항 제목 샘플", "createdAt": 1700000000000, "updatedAt": 1700000000000, "url": "https://www.korbit.co.kr/notice/detail/?noticeId=4Oy9q6ALiM7jABzMt32ul5" } ] } ``` ## 시장경보제 발동현황 조회 {#get-_v2_marketAlerts} ``` GET /v2/marketAlerts ``` 거래쌍별 시장경보제 발동현황을 조회합니다. 현재 경보가 발동된 거래쌍만 반환됩니다. ### 스키마 ```ts // 요청 파라미터 없음 // JSON 응답 (`{ success: true, data }` 형태로 래핑되며, 아래는 `data` 필드의 구조) type Response = Array<{ /** 거래쌍 심볼. Example: "btc_krw" */ symbol: string; /** 해당 거래쌍에 발동된 시장경보 목록 */ alerts: Array<{ /** 경보 유형. Example: "price" */ type: string; /** 경보 유형 (한글). Example: "가격 급등락" */ typeKorean?: string; /** 경보 단계 (일부 경보 유형에만 존재). Example: "danger" */ level?: string; /** 경보 단계 (한글). Example: "투자위험" */ levelKorean?: string; /** 경보 시작 시각 (ms). Example: 1700000000000 */ startAt?: number; /** 경보 종료 시각 (ms). Example: 1700000000000 */ endAt?: number; /** 경보 기준/측정 값 (소수 문자열, 의미는 `type`에 따라 다름). Example: "250.5" */ value?: string; }>; }>; ``` ### 예시 #### Request ```sh curl 'https://api.korbit.co.kr/v2/marketAlerts' ``` #### Response ```json { "success": true, "data": [ { "symbol": "btc_krw", "alerts": [ { "type": "price", "typeKorean": "가격 급등락", "level": "danger", "levelKorean": "투자위험", "startAt": 1700000000000, "endAt": 1700000000000, "value": "250.5" }, { "type": "limit_buy_range", "typeKorean": "주문가격 제한", "startAt": 1700000000000, "endAt": 1700000000000, "value": "145000000" } ] } ] } ```