업비트 API 파이썬 자동매매 가이드
업비트 파이썬 자동매매는 ① 업비트 계정 → ② API 키 발급(허용 IP 입력) → ③ Access Key·Secret Key를 공통모듈에 입력 → ④ 조회부터 테스트 순서로 진행합니다. 업비트에는 한 계정 안에서 자산을 나누는 포켓(메인·서브) 기능이 있어, 포켓마다 API 키를 발급해 전략별로 자산을 분리할 수 있습니다. 게만아 패키지의 업비트 코드는 98번부터 pyupbit 대신 업비트 REST API를 직접 호출하는 공통모듈로 통일됐습니다.
게만아 업비트 포켓 공통모듈 대표 포스팅
업비트 포켓 활용과 공통모듈(패키지 98번)의 설정·사용 방법은 게만아 블로그의 대표 포스팅에서 설명합니다. 실제로 연결할 때는 이 포스팅을 먼저 읽어 주세요.
업비트 포켓 공통모듈 설명 포스팅 보기 →한눈에 보기
| 방식 | REST API. 게만아 공통모듈은 pyupbit 같은 외부 라이브러리 없이 업비트 REST API를 직접 호출합니다. 외부 라이브러리는 업데이트가 늦으면 새 기능(포켓 등)에 바로 대응하기 어렵기 때문입니다. |
|---|---|
| 키 발급 | 업비트 웹의 API 키 발급 페이지에서 새 키를 발급합니다. 권한을 선택하고 허용 IP를 입력한 뒤 발급하면 Access Key와 Secret Key가 나옵니다. |
| 허용 IP | 필수. 업비트 공지 기준으로 주문하기·출금하기를 쓸 때 IP 주소 등록이 필수입니다. 게만아는 보통 내 PC의 IP와 자동매매 서버의 IP를 함께 입력합니다. |
| Secret Key | 창을 닫으면 다시 볼 수 없으므로 발급 직후 안전한 곳에 복사해 둡니다. |
| 포켓 | 계정마다 메인포켓이 있고 서브포켓을 추가할 수 있습니다. 포켓마다 별도 API 키를 발급받으며, 서브포켓은 API로만 매매하도록 쓰는 구성입니다(게만아 포스팅 기준). |
| 호출 한도 | 거래·자산관리 API 요청 한도는 포켓 단위로 적용됩니다. 같은 포켓에서 만든 키끼리는 한도를 공유하고, 다른 포켓은 독립적인 한도를 갖습니다(업비트 공식 문서의 요청 수 제한 정책 기준). 한도를 넘으면 HTTP 429가 오고, 429가 누적되면 418로 일시 차단됩니다. |
| 종목 표기 | KRW-BTC처럼 “시장-코인” 형식입니다. 빗썸도 같고, 코인원은 BTC 형식입니다. |
| 게만아 연결 | 패키지 98번 · 공통모듈 myUpbitNew.py · 포켓 원화 이전(메인→서브, 서브→메인)과 포켓 잔고 확인 코드 포함 |
파이썬 자동매매 연동 순서
- 업비트 계정을 준비합니다.
- 업비트 웹의 API 키 발급 페이지에서 새 키를 발급합니다. 메인포켓을 선택하고 필요한 권한을 고르며, 포켓을 더 만들 계획이라면 [포켓관리]를 체크합니다.
- 허용 IP에 내 PC의 IP와 자동매매 서버의 IP를 입력하고 발급합니다.
- Access Key와 Secret Key를 복사해 안전하게 보관합니다. Secret Key는 창을 닫으면 다시 볼 수 없습니다.
- 공통모듈의 포켓 키 설정에 키를 넣습니다. 메인포켓만 쓴다면 메인포켓 한 쌍만 남깁니다.
- 조회부터 테스트(잔고 → 현재가)한 뒤, 주문은 가장 작은 금액으로 확인합니다.
포켓으로 전략별 자산을 분리하기
업비트 포켓(Pocket)은 하나의 업비트 계정 안에 여러 개의 독립된 지갑을 만드는 기능입니다. 기본으로 메인포켓이 있고 필요하면 서브포켓을 추가할 수 있으며, 포켓마다 별도의 API 키를 발급받아 서로 영향을 주지 않고 주문·잔고조회를 할 수 있습니다.
왜 포켓이 도움이 되나요?
- 전략이 서로 충돌하지 않습니다. 한 계좌에서 비율로 나눠 쓰면 A 전략이 산 비트코인을 B 전략이 팔아버리는 문제가 생길 수 있지만, 포켓은 코인도 따로 관리합니다.
- 여러 봇을 독립적으로 실험할 수 있습니다. 포켓마다 새 계좌를 만든 것과 비슷합니다.
- 호출 한도가 포켓 단위로 적용됩니다(아래 표 참고). 봇이 늘어날 때 유리합니다.
설정은 이렇게 합니다
# 포켓별 키 설정 (포켓 이름과 키쌍 이름을 같게)
POCKET_KEYS = {
"메인포켓": ("메인포켓 ACCESS KEY", "메인포켓 SECRET KEY"),
"서브포켓": ("서브포켓 ACCESS KEY", "서브포켓 SECRET KEY"),
}
# 봇 상단에서 이 봇이 매매할 포켓을 지정
myUpbitNew.SetPocket("서브포켓")
- 메인포켓에서 [포켓관리]를 체크하고 API 키를 발급받습니다(포켓을 더 만들 계획일 때).
- [포켓추가]로 포켓 이름을 정해 서브포켓을 만들고, 포켓마다 API 키를 발급받습니다.
- 공통모듈의 포켓 키 설정에 포켓 이름과 같은 이름으로 키쌍을 넣습니다. 메인포켓만 쓴다면 하나만 남기면 됩니다.
- 봇 상단에서 대상 포켓을 한 줄로 지정합니다.
- 서브포켓에서 매매하려면 메인포켓의 원화를 서브포켓으로 옮깁니다. 패키지 98번에 이전용·잔고 확인용 코드가 함께 있습니다.
꼭 알아둘 점: 서브포켓으로 보낸 돈은 업비트 앱·웹에서 바로 조회되지 않습니다. 당황하지 말고 포켓 잔고 확인 코드로 확인하고, 되돌릴 때는 웹의 [자산 관리 → 자산 일괄 이전]이나 서브→메인 이전 코드를 사용하세요. 코드로 옮기는 것은 원화(현금)뿐이라 서브포켓에서 산 코인을 옮기려면 웹이 더 편할 수 있습니다.
게만아 공통모듈로 쓰면
게만아 패키지의 모든 업비트 봇은 98번부터 myUpbitNew.py 기준으로 통일됐습니다. 빗썸·코인원 공통모듈과 비슷한 방식으로 맞춰 API 키를 공통모듈 안에 직접 넣으면 되고, 예전 강의에서 쓰던 키 암호화 설정(ende_key.py 등)은 더 이상 필요하지 않습니다. 초보자도 패키지만으로 업비트 자동매매를 훨씬 간단히 세팅할 수 있습니다.
이미 myUpbit.py와 pyupbit로 만든 봇이 서버에서 잘 돌아가고 있다면 당장 바꿀 필요는 없습니다. 기존 봇은 기존 키와 기존 모듈 그대로 두고, 새 봇은 새로 발급한 메인포켓 API 키와 새 모듈을 쓰는 방식이 안전합니다. 새 구조를 테스트하다 문제가 생겨도 기존 봇에 영향이 없습니다.
이 거래소에서 쓸 수 있는 패키지 콘텐츠
전략마다 시장·대상·실행 주기는 전략·시스템 카탈로그에서 확인할 수 있습니다.
- [15] 업비트 전 종목 모멘텀 스코어 상위 분산 투자
- [17] 코인 백테스팅 기초 (업비트 현물·바이낸스 선물)
- [20] 업비트 구간 분할 장기 투자 전략
- [21] 구간 분할 전략 파라미터 조합 백테스트 (기간·분할 수)
- [23] 업비트 이동평균선 조합 전략
- [25] 업비트 이평조합 전략 개선 (BTC·ETH, 과최적화 점검)
- [27] 업비트 이평조합 돌파 전략 (BTC·ETH)
- [31] 업비트·바이낸스 알트코인 일봉 매매 (거래대금·등락률 선정)
- [36] 업비트 BTC·ETH 이평 돌파 안전 전략
- [46] 업비트 1시간봉 변동성 돌파 + 트레일링 스탑 단타
- [48] 업비트 비트코인 위험관리: 바이낸스 선물 헤지 봇
- [52] 업비트 할트 전략 (시장별 적용 한계 점검)
- [62] 코인 매직스플릿·스마트스플릿 (업비트·빗썸·코인원)
- [63] 코인 시가총액 상위 목록 자동 수집 (코인마켓캡 API)
- [64] 코인 분할매매 시스템 스플릿 트레이더
- [68] 코인 스탑 트레이더 (스탑·트레일링 스탑 주문 시스템)
- [72] 업비트 New 돌파 단타 전략 (스탑 트레이더·캔들 패턴 활용)
- [93] 알트코인 심화 전략 모음 (바이낸스·빗썸·업비트·코인원)
- [98] 업비트 메인포켓·서브포켓 공통모듈 (전략별 자산 분리)
- [99] 비트코인·이더리움 안전 전략 종합판 (업비트·빗썸·코인원)
- [102] 코인 더블 이동평균 New 전략 (업비트·빗썸·코인원)
- [104] 코인 더블 이동평균 일봉 + 4시간 전략 (업비트·빗썸·코인원)
실전에서 주의할 점
- Secret Key는 발급 직후에만 보입니다. 닫기 전에 반드시 복사해 두세요. 잃어버리면 새 키를 발급해야 합니다.
- 허용 IP에 없는 환경에서는 호출이 거절될 수 있습니다. 서버를 옮기거나 공인 IP가 바뀌면 허용 IP를 다시 확인하세요.
- 포켓 이름과 키쌍 이름은 같게 넣어야 봇이 올바른 포켓을 찾습니다.
- 서브포켓에 보낸 돈이 앱에 안 보여도 사라진 것이 아닙니다. 포켓 잔고 확인 코드나 웹의 자산 일괄 이전으로 확인하세요.
- 코드로 이전되는 것은 원화(현금)뿐입니다. 서브포켓에서 산 코인은 웹에서 옮기는 편이 편합니다.
- 요청 수 제한을 넘기지 마세요. 한도를 넘으면 429, 누적되면 418로 일시 차단될 수 있습니다. 응답 헤더로 잔여 요청 수를 확인할 수 있습니다.
- 자동매매에 필요하지 않은 권한, 특히 출금은 주지 않는 것이 안전합니다.
- 주문은 항상 가장 작은 금액으로 먼저 확인하고, 응답이 불안정할 때의 처리는 API 불안정 대응 가이드를 참고하세요.
자주 묻는 질문
업비트 API 키는 어디에서 발급받나요?
업비트 웹의 API 키 발급 페이지에서 새 키를 발급합니다. 권한을 선택하고 허용 IP를 입력한 뒤 발급하면 Access Key와 Secret Key가 나옵니다. Secret Key는 창을 닫으면 다시 볼 수 없으니 바로 복사해 두세요.
업비트 API는 IP를 등록해야 하나요?
네. 업비트 공지 기준으로 주문하기·출금하기를 사용할 때 IP 주소 등록이 필수이며, 키를 발급할 때 사용할 환경의 IP를 입력합니다. 게만아는 보통 내 PC의 IP와 자동매매 서버의 IP를 함께 넣습니다. 시세 조회용 Quotation API는 인증 없이 쓸 수 있는 공개 API입니다.
업비트 포켓이란 무엇인가요?
하나의 업비트 계정 안에 여러 개의 독립된 지갑을 만드는 기능입니다. 기본으로 메인포켓이 있고 서브포켓을 추가할 수 있으며, 포켓마다 별도의 API 키를 발급받아 서로 영향을 주지 않고 주문·잔고조회를 할 수 있습니다.
업비트 API 호출 한도는 어떻게 적용되나요?
업비트의 거래·자산관리 API 요청 한도는 포켓 단위로 적용됩니다. 같은 포켓에서 만든 API 키끼리는 한도를 공유하고, 서로 다른 포켓은 각각 독립적인 한도를 가집니다. 그래서 봇이 여러 개로 늘어나면 포켓을 나눠 배치하는 구조가 유리합니다.
왜 pyupbit를 쓰지 않고 REST API를 직접 호출하나요?
외부 라이브러리에 의존하면 업비트에 새 기능이 추가됐을 때 바로 대응하기 어렵습니다. pyupbit는 업데이트된 지 오래됐고 포켓 기능을 반영하려면 대부분을 뜯어고쳐야 해서, 게만아는 업비트 REST API를 직접 호출하는 공통모듈(myUpbitNew.py)을 새로 만들었습니다.
기존에 pyupbit로 만든 봇을 꼭 바꿔야 하나요?
아니요. 서버에서 잘 돌아가는 기존 봇은 그대로 두어도 됩니다. 다만 새로 내려받는 패키지의 업비트 코드는 새 공통모듈 기준이므로, 새 봇에는 메인포켓 API 키를 새로 발급해 쓰는 것을 권장합니다.
서브포켓으로 돈을 보냈는데 앱에서 보이지 않아요.
정상입니다. 서브포켓의 자산은 업비트 앱·웹에서 바로 조회되지 않습니다. 포켓 잔고 확인 코드로 확인하고, 되돌릴 때는 웹의 [자산 관리 → 자산 일괄 이전]을 쓰거나 서브→메인 이전 코드를 사용하세요.
근거와 확인 시점
이 페이지는 게만아의 업비트 포켓 공통모듈 포스팅(패키지 98번, 2026-09-01 게시)을 업비트 공식 문서(요청 수 제한 정책, API 키 변경 공지)와 대조해 정리한 것입니다. 거래소의 API 사양과 정책, 가입·발급 조건은 바뀔 수 있으므로 키 발급과 실제 주문 전에 공식 문서의 최신 내용을 확인하세요.
공식 자료: 업비트 API 문서 · 업비트 포켓 공지
함께 보기
빗썸 API 가이드 · 코인원 API 가이드 · 바이낸스 API 가이드 · 코인 자동매매 구조 · 전략·시스템 카탈로그 · API가 불안정할 때 대응 가이드 · API가 처음이라면 용어 풀이
API 보안
발급받은 API 키·Secret·접근토큰은 비밀번호와 같은 민감한 정보입니다. 다른 사람에게 보이거나 공개적으로 노출되지 않게 주의하고, 노출됐다면 폐기·재발급하는 것이 안전합니다. 자동매매에 필요하지 않은 권한(특히 출금)은 주지 않는 것이 좋습니다.
문서 업데이트: 2026-10-16 · 교육·기술 정보 제공 목적이며 투자 권유가 아닙니다. 가상자산은 가격 변동성이 크고 원금 손실이 발생할 수 있습니다.