- Notifications
You must be signed in to change notification settings - Fork0
designmeme/python-upbit-api
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
💙 Python Upbit API는 간단하고 명료한 Upbit API Wrapper 입니다. 👍
pip 명령어로 간단하게 설치할 수 있습니다.
pip install python-upbit-api
각종 시세 정보를 얻기 위한QUOTATION 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=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxUPBIT_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()
업비트 REST API를Upbit
클래스의 메서드로 제공합니다.자세한 내용은upbit.py 파일 내 docstring 참조.
메서드명 | ||
---|---|---|
자산 | 전체 계좌 조회 | get_accounts |
주문 | 주문 가능 정보 | get_order_chance |
개별 주문 조회 | get_order | |
주문 리스트 조회 | get_orders | |
id로 주문리스트 조회 | get_orders_by_id | |
체결 대기 주문 (Open Order) 조회 | get_open_orders | |
종료된 주문 (Closed Order) 조회 | get_closed_orders | |
주문 취소 접수 | delete_order | |
주문 일괄 취소 접수 | delete_orders | |
id로 주문리스트 취소 접수 | delete_orders_by_id | |
주문하기 | 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_vasps | |
입금 UUID로 트래블룰 검증하기 | verify_travel_rule_by_uuid | |
입금 TxID로 트래블룰 검증하기 | verify_travel_rule_by_txid | |
서비스 정보 | 입출금 현황 | get_wallet_status |
API 키 리스트 조회 | get_api_keys | |
시세 종목 조회 | 마켓 코드 조회 | get_markets |
시세 캔들 조회 | 초(Second) 캔들 | get_candles_second |
분(Minute) 캔들 | get_candles_minute | |
일(Day) 캔들 | get_candles_day | |
주(Week) 캔들 | get_candles_week | |
월(Month) 캔들 | get_candles_month | |
연(Year) 캔들 | get_candles_year | |
시세 체결 조회 | 최근 체결 내역 | get_trades_ticks |
시세 현재가 조회 | 현재가 정보 | get_ticker |
시세 현재가 조회 | 마켓 단위 현재가 정보 | get_tickers_by_quote |
시세 호가 조회 | 호가 정보 | get_orderbook |
호가 모아보기 단위 정보 | get_orderbook_levels |
Requests 라이브러리를 사용합니다.
requests.Response
객체를 그대로 반환합니다.# example.pyfromupbitimportUpbitupbit=Upbit()res=upbit.get_markets()data=res.json()status_code=res.status_code
requests.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 공식 문서에 공개한 에러 유형에 맞는 예외 쌍을 가집니다.
# 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()
함수를 호출하면 그룹의 최신 잔여 요청 수 객체를 확인 할 수 있습니다.
# 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 내용과 타입으로 IDE에서 사용하기 편리합니다. 📝💡
아직 지원하지 않습니다.참고 이슈
최신 변경 사항은 아래에서 확인할 수 있습니다.
About
💙 Python Upbit API Wrapper
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.