Statistics
  • 현재 접속자 175 명
  • 오늘 방문자 3,227 명
  • 어제 방문자 3,367 명
  • 최대 방문자 11,031 명
  • 전체 방문자 1,115,658 명
  • 전체 회원수 76 명
  • 전체 게시물 2,691 개
  • 전체 댓글수 4 개
AI강의사이트

비트겟(Bitget) API를 사용하기 위해서는 **API Key**와 **Secret Key**를 생성하고 인증하는 과정이 …

페이지 정보

작성자 bryanai 작성일 25-01-21 15:42 조회 534 댓글 0

본문

비트겟(Bitget) API를 사용하기 위해서는 API KeySecret Key를 생성하고 인증하는 과정이 필요합니다.
아래는 API 인증을 위한 HMAC SHA256 서명(Signature) 생성 및 요청 방법을 설명하는 코드입니다.


1️⃣ API Key & Secret 생성

✅ 비트겟 API Key 발급 방법

  1. 비트겟(Bitget) 웹사이트에 로그인 https://www.bitget.com
  2. [API 관리] 메뉴로 이동
  3. 새 API 키 생성 (권한: 읽기(Read), 거래(Trade) 선택)
  4. API Key, API Secret, Passphrase 저장 (나중에 필요함)

2️⃣ API 인증 방식

비트겟 API는 요청 시 HMAC SHA256 방식으로 **서명(Signature)**을 생성해야 합니다.

요청 헤더 예시

{
    "X-BG-APIKEY": "your_api_key",
    "X-BG-SIGNATURE": "your_signature",
    "X-BG-TIMESTAMP": "your_timestamp",
    "X-BG-PASSPHRASE": "your_passphrase"
}
  • X-BG-APIKEY: API Key
  • X-BG-SIGNATURE: HMAC SHA256 서명
  • X-BG-TIMESTAMP: 현재 시간 (밀리초)
  • X-BG-PASSPHRASE: API 생성 시 입력한 패스프레이즈

3️⃣ Python 코드: API 인증 및 계정 잔고 조회

아래 코드는 비트겟 API 인증을 거쳐 계정 잔고를 조회하는 예제입니다.

import requests
import time
import hmac
import hashlib
import base64
import json

# ===  비트겟 API 정보 입력 ===
API_KEY = "your_api_key"
API_SECRET = "your_api_secret"
PASSPHRASE = "your_passphrase"
BASE_URL = "https://api.bitget.com"

# ===  서명(Signature) 생성 함수 ===
def create_signature(timestamp, method, endpoint, body=""):
    message = timestamp + method + endpoint + body
    signature = hmac.new(API_SECRET.encode(), message.encode(), hashlib.sha256).hexdigest()
    return signature

# ===  계정 잔고 조회 함수 ===
def get_balance():
    endpoint = "/api/v2/spot/accounts"
    url = BASE_URL + endpoint
    timestamp = str(int(time.time() * 1000))  # 밀리초 단위 시간
    method = "GET"

    # 서명(Signature) 생성
    signature = create_signature(timestamp, method, endpoint)

    headers = {
        "X-BG-APIKEY": API_KEY,
        "X-BG-SIGNATURE": signature,
        "X-BG-TIMESTAMP": timestamp,
        "X-BG-PASSPHRASE": PASSPHRASE
    }

    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        print("✅ 계정 잔고 조회 성공:", response.json())
    else:
        print("❌ API 요청 실패:", response.text)

# ===  실행 ===
get_balance()

4️⃣ 코드 설명

  1. HMAC SHA256 서명 생성

    • timestamp + method + endpoint + body 조합 후, HMAC SHA256 해시 생성
    • create_signature() 함수에서 처리
  2. API 요청 헤더 구성

    • X-BG-APIKEY: API Key 포함
    • X-BG-SIGNATURE: 서명(Signature) 포함
    • X-BG-TIMESTAMP: 현재 시간(밀리초) 포함
    • X-BG-PASSPHRASE: API 패스프레이즈 포함
  3. 잔고 조회 API 요청

    • get_balance() 함수에서 /api/v2/spot/accounts 엔드포인트 호출
    • 계정의 잔고 정보를 JSON 형태로 반환

5️⃣ 실행 방법

  1. Python 라이브러리 설치
pip install requests
  1. API Key, Secret 입력

    • API_KEY, API_SECRET, PASSPHRASE를 본인 값으로 변경
  2. Python 코드 실행

python bitget_api_auth.py
  1. 결과 예시 (잔고 조회 성공)
✅ 계정 잔고 조회 성공: {
    "code": "00000",
    "data": [
        {
            "asset": "USDT",
            "available": "1234.56",
            "frozen": "0.00"
        },
        {
            "asset": "BTC",
            "available": "0.02",
            "frozen": "0.00"
        }
    ]
}

추가 기능 (다른 API 요청)

  • 현재 시세 조회: /api/v2/market/ticker
  • 거래 주문 실행: /api/v2/spot/orders
  • 거래 내역 조회: /api/v2/spot/orders/history

더 추가하고 싶은 기능이 있다면 알려주세요!


자바스크립트


// === Bitget API Info ===

const API_KEY = "your_api_key";

const API_SECRET = "your_api_secret";

const PASSPHRASE = "your_passphrase";

const BASE_URL = "https://api.bitget.com";


const fetch = require("node-fetch");

const crypto = require("crypto");


// === Create Signature Function ===

function createSignature(timestamp, method, endpoint, body = "") {

    const message = timestamp + method + endpoint + body;

    const signature = crypto.createHmac("sha256", API_SECRET).update(message).digest("hex");

    return signature;

}


// === Get Account Balance Function ===

async function getBalance() {

    const endpoint = "/api/v2/spot/accounts";

    const url = `${BASE_URL}${endpoint}`;

    const timestamp = Date.now().toString(); // Milliseconds timestamp

    const method = "GET";


    // Create Signature

    const signature = createSignature(timestamp, method, endpoint);


    const headers = {

        "X-BG-APIKEY": API_KEY,

        "X-BG-SIGNATURE": signature,

        "X-BG-TIMESTAMP": timestamp,

        "X-BG-PASSPHRASE": PASSPHRASE

    };


    try {

        const response = await fetch(url, { method, headers });

        if (response.ok) {

            const data = await response.json();

            console.log("✅ Account balance fetched successfully:", data);

        } else {

            const errorText = await response.text();

            console.error("❌ API request failed:", errorText);

        }

    } catch (error) {

        console.error("❌ Error fetching account balance:", error);

    }

}


// === Execute ===

getBalance();

 

댓글목록 0

등록된 댓글이 없습니다.

Notice