Package: python-upbit-api
Python Upbit API💙 Python Upbit API는 간단하고 명료한 Upbit API Wrapper 입니다. 👍Installationpip 명령어로 간단하게 설치할 수 있습니다.pipinstallpython-upbit-apiQuick Start인증 없이 사용하기각종 시세 정보를 얻기 위한QUOTATION API만사용한다면 인증 정보 없이 초기화 후 사용합니다.⚠️ EXCHANGE API를 사용하면upbit.exceptions.ApiKeyError예외가 발생합니다.# example.pyfromupbitimportUpbitupbit=Upbit()res=upbit.get_markets()data=res.json()upbit.get_accounts()# upbit.exceptions.ApiKeyError 발생인증 사용하기인증이 필요한EXCHANGE API를 사용해야 한다면 인증 정보를 초기화시 등록 후 사용합니다.🙆🏻‍♀️ QUOTATION API도 사용할 수 있습니다..env환경설정 파일에 발급 받은 인증 정보를 설정합니다.UPBIT_OPEN_API_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
UPBIT_OPEN_API_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx# example.pyimportosfromupbitimportUpbitaccess_key=os.environ.get('UPBIT_OPEN_API_ACCESS_KEY')secret_key=os.environ.get('UPBIT_OPEN_API_SECRET_KEY')upbit=Upbit(access_key,secret_key)res=upbit.get_accounts()data=res.json()Features업비트 REST API를 모두 메서드로 제공업비트 REST API를Upbit클래스의 메서드로 제공합니다.
자세한 내용은upbit.py파일 내 docstring 참조.메서드명자산전체 계좌 조회get_accounts주문주문 가능 정보get_order_chance개별 주문 조회get_order주문 리스트 조회get_orders주문 취소 접수delete_order주문하기create_order출금출금 리스트 조회get_withdraws개별 출금 조회get_withdraw출금 가능 정보get_withdraw_chance디지털 자산 출금하기create_withdraw_coin원화 출금하기create_withdraw_krw출금 허용 주소 리스트 조회get_withdraw_addresses입금입금 리스트 조회get_deposits개별 입금 조회get_deposit입금 주소 생성 요청create_coin_address전체 입금 주소 조회get_coin_addresses개별 입금 주소 조회get_coin_address원화 입금하기create_deposit_krw서비스 정보입출금 현황get_wallet_statusAPI 키 리스트 조회get_api_keys시세 종목 조회마켓 코드 조회get_markets시세 캔들 조회분(Minute) 캔들get_candles_minute일(Day) 캔들get_candles_day주(Week) 캔들get_candles_week월(Month) 캔들get_candles_month시세 체결 조회최근 체결 내역get_trades_ticks시세 현재가 조회현재가 정보get_ticker시세 호가 조회호가 정보get_orderbookRequests 사용Requests라이브러리를 사용합니다.requests.Response객체를 그대로 반환합니다.# example.pyfromupbitimportUpbitupbit=Upbit()res=upbit.get_markets()data=res.json()status_code=res.status_coderequests.adapters.HTTPAdapter클래스를 사용하여 재시도 횟수 등을 설정할 수 있습니다.# example.pyfromupbitimportUpbitimportrequestsadapter=requests.adapters.HTTPAdapter(max_retries=3)upbit=Upbit(http_adapter=adapter)requests.Session.request요청 파라미터timeout값을 설정할 수 있습니다.# example.pyfromupbitimportUpbitupbit=Upbit(timeout=(10,5))# 모든 요청에 설정할 timeoutres=upbit.get_markets(timeout=10)# 이 요청에만 설정할 timeout예외 클래스 제공모든 API 요청에서 발생한requests.exceptions.HTTPError예외는 이 예외를 상속한upbit.exceptions.UpbitHTTPError예외로 발생합니다.아래 Upbit 공식 문서에 공개한 에러 유형에 맞는 예외 쌍을 가집니다.요청 수 제한API 주요 에러 코드 목록# example.pyfromupbitimportUpbit,TooManyRequests,UpbitClientError,UpbitServerErrorupbit=Upbit()try:res=upbit.get_markets()exceptTooManyRequestsase:status_code=e.response.status_code# 429# ...예외 처리 코드exceptUpbitClientErrorase:res=e.response# ...예외 처리 코드exceptUpbitServerErrorase:res=e.response# ...예외 처리 코드잔여 요청 수 확인업비트 APIRemaining-Req응답 헤더에 담긴 잔여 요청 수를upbit.models.RemainingReq객체로 제공되어 정보에 쉽게 접근 할 수 있습니다.
요청 그룹별 최신 값을 프로퍼티에 저장하며get_remaining_reqs()함수를 호출하면 그룹의 최신 잔여 요청 수 객체를 확인 할 수 있습니다.참고:Exchange API 잔여 요청 수 확인 방법# example.pyfromupbitimportUpbitfromupbit.modelsimportRemainingRequpbit=Upbit()res=upbit.get_candles_day('KRW-BTC')rr:RemainingReq=upbit.get_remaining_reqs('candles')rr.minuterr.updated# 응답 헤더도 그대로 사용 가능rr_text=res.headers['Remaining-Req']# 'group=candles; min=59; sec=4'요청 파라미터 모델 제공Upbit API 요청 파라미터에 사용할 다양한 데이터 모델을 타입으로 제공합니다.# example.pyfromupbit.modelsimportOrderSide# ...# Type Hintorder_side:OrderSide='bid'res=upbit.create_order(market='KRW-BTC',side=order_side,ord_type='limit',price='100',volume='0.01')Docstring & Type Hint잘 작성한 Docstring 내용과 타입으로 IDE에서 사용하기 편리합니다. 📝💡WebSocket아직 지원하지 않습니다.참고 이슈Changelog최신 변경 사항은 아래에서 확인할 수 있습니다.CHANGELOG.mdPyPI Releases