Markdown 원본 보기 ↗

기타#

← REST API 가이드

가상자산 정보 조회#

GET/v2/currencies

가상자산 정보를 조회합니다.

스키마#

// 요청 파라미터 없음

// 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;
  }>;
}>;

예시#

요청#

curl 'https://api.korbit.co.kr/v2/currencies'

응답#

{
    "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

서버 시각을 조회합니다.

스키마#

// 요청 파라미터 없음

// JSON 응답 (`{ success: true, data }` 형태로 래핑되며, 아래는 `data` 필드의 구조)
type Response = {
  /** 서버 시각(timestamp). Example: 1700000000000 */
  time: number;
};

예시#

요청#

curl 'https://api.korbit.co.kr/v2/time'

응답#

{
  "success": true,
  "data": {
    "time": 1700000000000
  }
}

거래수수료율 조회#

GET/v2/tradingFeePolicy

현재 회원 계정에 적용되는 거래수수료율을 조회합니다.

필요 권한: readOrders

스키마#

// 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;
}>;

예시#

요청#

curl -H X-KAPI-KEY=API키 'https://api.korbit.co.kr/v2/tradingFeePolicy?timestamp=시각&signature=서명'

응답#

{
  "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

현재 사용중인 API 키의 정보를 조회합니다.

필요 권한: 없음

스키마#

// 요청 파라미터 없음

// 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;
};

예시#

요청#

curl -H X-KAPI-KEY=API키 'https://api.korbit.co.kr/v2/currentKeyInfo?timestamp=시각&signature=서명'

응답#

{
  "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

최근 공지사항 20건을 최신순으로 조회합니다.
일반 코빗 공지와 오픈API(개발자센터) 공지를 함께 포함합니다.

스키마#

// 요청 파라미터 없음

// 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#

curl 'https://api.korbit.co.kr/v2/notices'

Response#

{
  "success": true,
  "data": [
    {
      "title": "공지사항 제목 샘플",
      "createdAt": 1700000000000,
      "updatedAt": 1700000000000,
      "url": "https://www.korbit.co.kr/notice/detail/?noticeId=4Oy9q6ALiM7jABzMt32ul5"
    }
  ]
}

시장경보제 발동현황 조회#

GET/v2/marketAlerts

거래쌍별 시장경보제 발동현황을 조회합니다. 현재 경보가 발동된 거래쌍만 반환됩니다.

스키마#

// 요청 파라미터 없음

// 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#

curl 'https://api.korbit.co.kr/v2/marketAlerts'

Response#

{
  "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"
        }
      ]
    }
  ]
}