Z.PROJ

UPbit API

최 수빈 2025. 1. 10. 11:38

 

API(Application Programming Interface)

 

 

프로그램 간 데이터를 주고받기 위한 규칙을 정의한 인터페이스

 

 

- 특정 서비스나 데이터를 외부 개발자들이 쉽게 사용할 수 있도록 제공

- 개발자는 API를 통해 새로운 프로그램을 개발하거나 데이터를 활용할 수 있음

 

 

 

Client : API를 사용하는 사용

API Server : 데이터를 제공하는 서버

API : 서버와 소통하기 위한 규약

Request : API 규약에 따라 데이터를 요청

Response : 서버가 요청에 응답해 데이터를 반환

 
postman

 

 

UPbit

 

국내에서 운영중인 가상화폐 거래소

비트코인, 이더리움 등을 구매, 판매 가능

 

 

upbit.com

 

홈 | 업비트

비트코인, 이더리움, 리플, NFT 등 다양한 디지털 자산, 국내 거래량 1위 거래소 업비트에서 지금 확인해보세요. No.1 Digital Asset Exchange in Korea, Upbit. Trade various digital assets conveniently and securely including

upbit.com

 

 

UPbit Open API

 

업비트에서 제공하는 Open API

 

 

자산조회 : 내 자산의 상태를 확인

주문하기/취소 : 암호화폐 매수 및 매도

시세 조회 : 암호화폐 시세 데이터 가져오기

 

 

Open API 종류 (업비트 개발자 센터 활용)

 

EXCHANGE API : 암호화폐 매수, 매도, 자산 조회 가능 (API Key 필요)

QUOTATION API : 시세 조회 가능 (API Key 불필요) - 캔들 데이터, 현재가 정보 등

WEBSOCKET API : 실시간 거래 데이터 수신

 

API Key 발급 및 사용

 

EXCHANGE API사용 시 API Key 필요 → 매수, 매도 프로그램 작성 시 발급 진행

 

1. 업비트 계정 로그인 Open API 안내 페이지 → Open API 사용하기

2. 2채널 인증 설정 → 인증 진행

3. 약관 동의 후 API Key 발급

 

 

QUOTATION API는 Key없이 사용 가능 → 과거, 현재 시세 조회 후 미래 예측 프로그램 작성 가능

 

 

 

API 요청(Request)과 응답(Response)

 

doc.upbit
doc.upbit/reference/초second-캔들
doc.upbit/reference/초second-캔들

 

 

docs에 정리가 굉장히 잘 돼있음

코드 복붙ㄱ

 

 

Request Parameters(요청 매개변수) : API 요청 시 세부 조건 설정

  • market : 조회할 암호화폐 (예 : KRW-BTC)
  • to : 캔들 종료 시각 (예 : 2025-01-01T00:00:00+09:00)
  • count : 요청할 데이터 개수 (최대 200개)

 

(1) 일 시세 캔들 조회

import requests

url = "https://api.upbit.com/v1/candles/days?KRW-BTC&count=1"
headers = {"accept": "application/json"}
response = requests.get(url, headers=headers)

print(response.text)

 

(2) 주 시세 캔들 조회

import requests

url = "https://api.upbit.com/v1/candles/weeks?market=KRW-BTC&count=1"
headers = {"accept": "application/json"}
response = requests.get(url, headers = headers)

print(response.text)

 

→days와 weeks로 URL을 바꾸어 조회 주기를 조정

→매개변수 조작으로 데이터 세부 조정 가능

 

 

실시간 데이터 활용

 

WEBSOCKET API 활용

 

 

Response : 요청 결과로 반환되는 데이터

 

일반적으로 JSON 형식

[
 {
   "market":"KRW-BTC",
   "candle_date_time_utc":"2025-01-10T00:00:00",
   "candle_date_time_kst":"2025-01-10T09:00:00",
   "opening_price":139748000.00000000,
   "high_price":141200000.00000000,
   "low_price":139687000.00000000,
   "trade_price":141131000.00000000,
   "timestamp":1736474886340,
   "candle_acc_trade_price":45753250982.38052000,
   "candle_acc_trade_volume":325.58255311,
   "prev_closing_price":139740000.00000000,
   "change_price":1391000.00000000,
   "change_rate":0.0099542007
 }
]

'Z.PROJ' 카테고리의 다른 글

생성형 AI, LLM (Large Language Model), Transformer  (1) 2025.01.20
인공지능(AI)의 이해  (1) 2025.01.13
PostgreSQL  (2) 2025.01.08
암호화폐 데이터의 특성  (3) 2025.01.08
시계열 데이터  (2) 2025.01.04