[개발이야기] 업비트 API

업비트에서 API를 오픈한다는 이야기를 듣고 신청을 하려고 하니 카카오페이를 먼저 신청해야 한다고 한다. 카카오페이를 신청을 하니 현재 휴대폰 번호로 등록된 기존 서비스가 나의 개인정보와 다르다고 한다. 그래서 실사용자 증명을 하라고 한다.

결과적으로 실사용자 증명을 하는데, 1달이 걸렸다. 카카오는 전화를 직접 받지 않고 고객센터에 이메일을 보내는 구조이어서 부족한 질문 혹은 답신을 받은 후 다시 질문하고 답을 받는데 1주일이 걸렸다. 요즘 같은 시기에 IT 기업의 대명사인 카카오의 대응방법으로는 적절하지 않은 것 같다.


지난 수요일에 드디어 카카오페이 신청이 완료되었다. 오랜만에 업비트에 들어가서 API를 위한 KEY를 생성하였다. 그리고 관련 API 문서를 확인해 보았다.
https://docs.upbit.com/v1.0/reference

문서를 봐서는 잘 이해가 되지 않아서 github에 들어가서 파이썬 예제를 찾아보았다. 역시나.. 몇 건이 있었다. 이 중 아래 src를 이용하였다.
https://github.com/inasie/upbitpy

BTC, EOS 현재가 알아오기 코드

from upbitpy import Upbitpy
upbit = Upbitpy()

tickers = upbit.get_ticker(['KRW-BTC', 'KRW-EOS'])

for ticker in tickers:
    print('%s trade price : %d' % (ticker['market'], ticker['trade_price']))

image.png

EOS orderbook 내역 읽어오기

from upbitpy import Upbitpy

upbit = Upbitpy()

orderBook = upbit.get_orderbook(['KRW-EOS'])
units = orderBook[0]['orderbook_units']
orderBookLen = len(units) 

# 팔자 주문 list 출력 (높은 가격이 위로 오도록)
for i in range(orderBookLen) :
    print(units[orderBookLen-i-1]['ask_price'], units[orderBookLen-i-1]['ask_size'])
print("====")

# 사자 주문 list 출력
i=0
for i in range(orderBookLen) :
    print(units[i]['bid_price'], units[i]['bid_size'])                      

get_orderbook의 결과는 아래와 같이 ask(팔자), bid(사자) 가격이 묶여서 돌아온다. ask(팔자)는 오름차순으로 저장되어 있으므로, 내림차순으로 출력하도록 코딩하였다.

"orderbook_units": [
        {
          "ask_price": 6956000,
          "bid_price": 6954000,
          "ask_size": 0.24078656,
          "bid_size": 0.00718341
        },
        {
          "ask_price": 6958000,
          "bid_price": 6953000,
          "ask_size": 1.12919,
          "bid_size": 0.11500074
        },

그 결과는 아래와 같다.
image.png


이제 아래 거래소에 대한 API 매매가 가능하다.

  • upbit
  • coinex
  • gopax
  • bigone

여러 거래소에 있는 코인들의 현재가를 한눈에 볼 수 있는 프로그램을 만들어서 재정거래 가능 여부에 대하여 검토해볼 예정이다.

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center