Skip to content

2. API Document

Kapoo edited this page Dec 7, 2021 · 6 revisions

2. API Document

이 장은 Upbit API for JAVA 라이브러리가 제공하는 메서드에 대해 기술합니다.

제공되는 메서드는 패키지 test.java에서 확인 및 테스트할 수 있습니다. (몇몇 메소드는 Upbit API Key를 요구합니다)




2-1. API 목록

구현된 API는 아래와 같습니다.

  • 인증
    • ✅ 인증 토큰
    • ✅ 파라미터가 있는 인증 토큰
  • QUOTATION API
    • 시세 종목 조회
      • ✅ 마켓 코드 조회
    • 시세 캔들 조회
      • ✅ 분(Minute) 캔들
      • ✅ 일(Day) 캔들
      • ✅ 주(Week) 캔들
      • ✅ 월(Month) 캔들
    • 시세 체결 조회
      • ✅ 최근 체결 내역
    • 시세 Ticker 조회
      • ✅ 현재가 정보
    • 시세 호가 정보(Orderbook) 조회
      • ✅ 호가 정보 조회
  • EXCHANGE API
    • 자산
      • ✅ 전체 계좌 조회
    • 주문
      • ✅ 주문 가능 정보
      • ✅ 개별 주문 정보
      • ✅ 주문 리스트 조회
      • ✅ 주문 취소 접수
      • ✅ 주문하기
    • 출금
      • ❌ 출금 리스트 조회
      • ❌ 개별 출금 조회
      • ❌ 출금 가능 정보
      • ❌ 코인 출금하기
      • ❌ 원화 출금하기
    • 입금
      • ❌ 입금 리스트 조회
      • ❌ 개별 입금 조회
      • ❌ 입금 주소 생성 요청
      • ❌ 전체 입금 주소 조회
      • ❌ 개별 입금 주소 조회
      • ❌ 원화 입금하기
    • 서비스 정보
      • ❌ 입출금 현황
      • ❌ API 키 리스트 조회

업비트의 전체 API는 여기에서 확인할 수 있습니다.



2-2. UpbitResponse

인증을 제외한 EXCHANGE API, QUOTATION APIUpbitResponse<T>라는 규격화된 응답을 제공합니다.

T는 제네릭 클래스로, Upbit 응답을 구현한 Bean 객체가 주로 할당됩니다.

구분타입설명
statusintHTTP 응답 코드
isSuccessboolean연결 성공 여부
bodyT응답 객체
rawString응답 원본
errorString에러 코드
errorMessageString에러 설명

isSuccesstrue일 경우 errorerrorMessagenull을 가집니다.

반대로 isSuccessfalse일 경우, bodynull을 가집니다.

isSuccess로 단순 연결 여부를 확인할 수 있으며, status를 활용하여 응답 코드별로 로직을 분리할 수도 있습니다.



2-3. 인증

인증 JWT 토큰을 받아오는 API입니다.

요청을 직접 커스텀하여 보내고 싶을 경우, 인증 정보만을 받아와서 요청을 구성하는데 사용할 수 있습니다.

AuthApiauthApi = newAuthApi("{API Key}", "{SECRET Key}");

클래스 선언은 위와 같습니다.


2-3-1. 인증 토큰

인증 토큰을 반환하는 API입니다. 요청에 별다른 파라미터가 포함되지 않을 경우 사용합니다.

AuthApiauthApi = newAuthApi("{API Key}", "{SECRET Key}");
Stringjwt = authApi.getAuthToken();

메서드 사용법은 위와 같습니다.

JWT에 포함되는 내용은 아래와 같습니다.

{
"access_key": "발급 받은 acccess key (필수)",
"nonce": "무작위의 UUID 문자열 (필수)"
}
구분타입설명
access_keyStringAPI Key
nonceString무작위 UUID

위 내용의 JSON을 토대로 JWT를 만들어 사용합니다.


2-3-2. 파라미터가 있는 인증 토큰

동일한 인증 토큰이지만, 파라미터가 포함된 인증 토큰을 반환합니다.

{
"access_key": "발급 받은 acccess key (필수)",
"nonce": "무작위의 UUID 문자열 (필수)",
"query_hash": "해싱된 query string (파라미터가 있을 경우 필수)",
"query_hash_alg": "query_hash를 생성하는 데에 사용한 알고리즘 (기본값 : SHA512)"
}
구분타입설명
access_keyStringAPI Key
nonceString무작위 UUID
query_hashString해싱된 쿼리 내용
query_hash_algString해싱 알고리즘

요청의 내용을 SHA-512로 암호화하여 query_hash에 포함하여 전달합니다.

Upbit에서 API 요청을 수행할 때, 요청의 쿼리문과 JWT의 암호화된 쿼리문을 비교하여, 다를 경우 요청이 수행되지 않습니다.



2-4. QUOTATION API

Upbit의 QUOTATION API입니다. 코인의 시세와 관련된 API이므로, 인증을 요구하지 않는 API들입니다.

UpbitApiupbitApi = newUpbitApi();

클래스 선언은 위와 같습니다.


2-4-1. 시세 종목 조회 - 마켓 코드 조회

Upbit에서 거래 가능한 마켓 목록을 제공합니다.

공식 API


요청

UpbitApiupbitApi = newUpbitApi();
UpbitResponse<MarketCode[]> response = upbitApi.getMarketCodes(isDetail);
구분타입내용
isDetailboolean상세정보 노출 여부

응답

MarketCode의 배열로 이루어진 응답을 반환합니다.

구분타입내용
marketString마켓 코드
korean_nameString마켓 한글명
english_nameString마켓 영문명
market_warningString유의 종목 여부 (NONE, CAUTION)

market_warningisDetail=true일 경우에만 포함됩니다.


2-4-2. 시세 캔들 조회 - 분(Minute) 캔들

지정된 코인의 분 단위 캔들 정보를 제공합니다.

공식 API


요청

UpbitApiupbitApi = newUpbitApi();
UpbitResponse<MinuteCandle[]> response1 = upbitApi.getMinuteCandles(unit, market);
UpbitResponse<MinuteCandle[]> response2 = upbitApi.getMinuteCandles(unit, market, to, count);
구분타입내용
unitint분 단위 (1, 3, 5, 10, 15, 30, 60, 240)
marketString마켓 코드
toString마지막 캔들 시간 (yyyy-MM-ddTHH:mm:ssZ, yyyy-MM-dd) (기본값: 현재시간)
countint캔들 갯수 (최대 200) (기본값: 1)

제공되는 메서드는 to, count 파라미터의 생략 여부에 따라 두 가지로 제공됩니다.


응답

MinuteCandle의 배열로 이루어진 응답을 반환합니다.

구분타입내용
marketString마켓명
candle_date_time_utcString캔들 기준 시각(UTC 기준)
candle_date_time_kstString캔들 기준 시각(KST 기준)
opening_pricedouble시가
high_pricedouble고가
low_pricedouble저가
trade_pricedouble종가
timestamplong해당 캔들에서 마지막 틱이 저장된 시각
candle_acc_trade_pricedouble누적 거래 금액
candle_acc_trade_volumedouble누적 거래량
unitint분 단위(유닛)

2-4-3. 시세 캔들 조회 - 일(Day) 캔들

지정된 코인의 일 단위 캔들 정보를 제공합니다.

공식 API


요청

UpbitApiupbitApi = newUpbitApi();
UpbitResponse<DayCandle[]> response1 = upbitApi.getDayCandles(market);
UpbitResponse<DayCandle[]> response2 = upbitApi.getDayCandles(market, to, count, convertingPriceUnit);
구분타입내용
marketString마켓 코드
toString마지막 캔들 시간 (yyyy-MM-ddTHH:mm:ssZ, yyyy-MM-dd) (기본값: 현재시간)
countint캔들 갯수 (최대 200) (기본값: 1)
convertingPriceUnitString종가 환산 화폐 단위 (KRW)

제공되는 메서드는 to, count, convertingPriceUnit 파라미터의 생략 여부에 따라 두 가지로 제공됩니다.

convertingPriceUnit는 현재 원화(KRW)만을 지원합니다. 원화 마켓이 아닌 다른 마켓의 캔들을 요청할 경우, convertingPriceUnit=KRW라면 종가 금액을 환산하여 converted_trade_price로 제공합니다.

현재까지는 KRW만 지원하며, 추후 확장 가능성이 있습니다.


응답

DayCandle의 배열로 이루어진 응답을 반환합니다.

구분타입내용
marketString마켓명
candle_date_time_utcString캔들 기준 시각(UTC 기준)
candle_date_time_kstString캔들 기준 시각(KST 기준)
opening_pricedouble시가
high_pricedouble고가
low_pricedouble저가
trade_pricedouble종가
timestamplong마지막 틱이 저장된 시각
candle_acc_trade_pricedouble누적 거래 금액
candle_acc_trade_volumedouble누적 거래량
prev_closing_pricedouble전일 종가(UTC 0시 기준)
change_pricedouble전일 종가 대비 변화 금액
change_ratedouble전일 종가 대비 변화량
converted_trade_pricedouble종가 환산 화폐 단위로 환산된 가격(요청에 convertingPriceUnit 파라미터 없을 시 해당 필드 포함되지 않음.)

2-4-4. 시세 캔들 조회 - 주(Week) 캔들

지정된 코인의 주 단위 캔들 정보를 제공합니다.

공식 API


요청

UpbitApiupbitApi = newUpbitApi();
UpbitResponse<Candle[]> response1 = upbitApi.getWeekCandles(market);
UpbitResponse<Candle[]> response2 = upbitApi.getWeekCandles(market, to, count);
구분타입내용
marketString마켓 코드
toString마지막 캔들 시간 (yyyy-MM-ddTHH:mm:ssZ, yyyy-MM-dd) (기본값: 현재시간)
countint캔들 갯수 (최대 200) (기본값: 1)

제공되는 메서드는 to, count 파라미터의 생략 여부에 따라 두 가지로 제공됩니다.


응답

Candle의 배열로 이루어진 응답을 반환합니다.

구분타입내용
marketString마켓명
candle_date_time_utcString캔들 기준 시각(UTC 기준)
candle_date_time_kstString캔들 기준 시각(KST 기준)
opening_pricedouble시가
high_pricedouble고가
low_pricedouble저가
trade_pricedouble종가
timestamplong마지막 틱이 저장된 시각
candle_acc_trade_pricedouble누적 거래 금액
candle_acc_trade_volumedouble누적 거래량
first_day_of_periodString캔들 기간의 가장 첫 날

2-4-5. 시세 캔들 조회 - 월(Month) 캔들

지정된 코인의 월 단위 캔들 정보를 제공합니다.

공식 API


요청

UpbitApiupbitApi = newUpbitApi();
UpbitResponse<Candle[]> response1 = upbitApi.getMonthCandles(market);
UpbitResponse<Candle[]> response2 = upbitApi.getMonthCandles(market, to, count);
구분타입내용
marketString마켓 코드
toString마지막 캔들 시간 (yyyy-MM-ddTHH:mm:ssZ, yyyy-MM-dd) (기본값: 현재시간)
countint캔들 갯수 (최대 200) (기본값: 1)

제공되는 메서드는 to, count 파라미터의 생략 여부에 따라 두 가지로 제공됩니다.


응답

Candle의 배열로 이루어진 응답을 반환합니다.

구분타입내용
marketString마켓명
candle_date_time_utcString캔들 기준 시각(UTC 기준)
candle_date_time_kstString캔들 기준 시각(KST 기준)
opening_pricedouble시가
high_pricedouble고가
low_pricedouble저가
trade_pricedouble종가
timestamplong마지막 틱이 저장된 시각
candle_acc_trade_pricedouble누적 거래 금액
candle_acc_trade_volumedouble누적 거래량
first_day_of_periodString캔들 기간의 가장 첫 날

일 캔들과 주 캔들의 경우 응답 형태가 완전히 동일하므로 Candle 객체를 공유합니다.


2-4-6. 시세 체결 조회 - 최근 체결 내역

지정된 코인의 최근 체결(Ticks) 내역에 대한 정보를 제공합니다.

공식 API


요청

UpbitApiupbitApi = newUpbitApi();
UpbitResponse<Tick[]> response1 = upbitApi.getTicks(market);
UpbitResponse<Tick[]> response2 = upbitApi.getTicks(market, to, count, cursor, daysAgo);
구분타입내용
marketString마켓 코드
toString마지막 캔들 시간 (yyyy-MM-ddTHH:mm:ssZ, yyyy-MM-dd) (기본값: 현재시간)
countint캔들 갯수 (최대 200) (기본값: 1)
cursorString페이지네이션 커서 (sequentialId)
daysAgoint최근 체결 날짜 기준의 이전 데이터 (1 ~ 7일 이전 조회 가능)

파라미터에 따라 두 메서드로 구분됩니다.

cursor는 거래 고유값인 sequentialId를 기준으로 표시해줍니다. 지정한 sequentialId의 체결 내역부터 순차적으로 내역을 제공합니다.

daysAgo가 5일 경우, to 기준(생략할 경우 현재 시각)으로 5일 이전의 체결 내역을 제공합니다.


응답

Tick의 배열로 이루어진 응답을 반환합니다.

구분타입내용
marketString마켓 구분 코드
trade_date_utcString체결 일자(UTC 기준)
trade_time_utcString체결 시각(UTC 기준)
timestamplong체결 타임스탬프
trade_pricedouble체결 가격
trade_volumedouble체결량
prev_closing_pricedouble전일 종가
change_pricedouble변화량
ask_bidString매도/매수
sequential_idlong체결 번호(Unique)

2-4-7. 시세 Ticker 조회 - 현재가 정보

지정된 코인의 시세 Ticker에 대한 정보를 제공합니다.

공식 API


요청

UpbitApiupbitApi = newUpbitApi();
UpbitResponse<Ticker[]> response = upbitApi.getTickers(markets);
구분타입내용
marketsString[]마켓 코드 배열

배열을 통해 여러 마켓 코드를 조회할 수 있습니다.


응답

Ticker의 배열로 이루어진 응답을 반환합니다.

구분타입내용
marketString종목 구분 코드
trade_dateString최근 거래 일자(UTC)
trade_timeString최근 거래 시각(UTC)
trade_date_kstString최근 거래 일자(KST)
trade_time_kstString최근 거래 시각(KST)
opening_pricedouble시가
high_pricedouble고가
low_pricedouble저가
trade_pricedouble종가
prev_closing_pricedouble전일 종가
changeString변화값 (EVEN, RISE, FALL)
change_pricedouble변화액의 절대값
change_ratedouble변화율의 절대값
signed_change_pricedouble부호가 있는 변화액
signed_change_ratedouble부호가 있는 변화율
trade_volumedouble가장 최근 거래량
acc_trade_pricedouble누적 거래대금(UTC 0시 기준)
acc_trade_price_24hdouble24시간 누적 거래대금
acc_trade_volumedouble누적 거래량(UTC 0시 기준)
acc_trade_volume_24hdouble24시간 누적 거래량
highest_52_week_pricedouble52주 신고가
highest_52_week_dateString52주 신고가 달성일
lowest_52_week_pricedouble52주 신저가
lowest_52_week_dateString52주 신저가 달성일
timestamplong타임스탬프

2-4-8. 시세 호가 정보(Orderbook) 조회 - 호가 정보 조회

지정된 코인의 호가 정보에 대한 정보를 제공합니다.

공식 API


요청

UpbitApiupbitApi = newUpbitApi();
UpbitResponse<OrderBook[]> response = upbitApi.getOrderBooks(markets);
구분타입내용
marketsString[]마켓 코드 배열

배열을 통해 여러 마켓 코드를 조회할 수 있습니다.


응답

OrderBook의 배열로 이루어진 응답을 반환합니다.

  • OrderBook
구분타입내용
marketString마켓 코드
timestamplong호가 생성 시각
total_ask_sizedouble호가 매도 총 잔량
total_bid_sizedouble호가 매수 총 잔량
orderbook_unitsOrderBookUnit[]호가
  • OrderBookUnit
구분타입내용
ask_pricedouble매도호가
bid_pricedouble매수호가
ask_sizedouble매도 잔량
bid_sizedouble매수 잔량

orderbook_unitsOrderBookUnit 객체의 배열을 가집니다.

OrderBookUnit은 호가를 의미하며, 1호가 부터 15호가까지의 호가 정보를 배열에 담아 제공합니다.



2-5. EXCHANGE API

Upbit의 EXCHANGE API입니다. 자산, 주문, 입출금과 같이 사용자의 자산에 직접적인 영향을 미치는 API들로 이루어져 있습니다.

이러한 특성으로 인해, EXCHANGE API는 인증 토큰을 반드시 요구합니다.

UpbitAuthApiupbitAuthApi = newUpbitAuthApi(api, secret);
구분타입내용
apiStringAPI Key
secretStringSecret Key

클래스 선언은 위와 같습니다.

Upbit에서 반드시 API 키를 발급받아야 사용할 수 있습니다. UpbitAuthApi는 인증이 필요한 API 이외에도 인증이 필요하지 않는 UpbitApi의 메서드도 포함되어 있습니다.


2-5-1. 자산 - 전체 계좌 조회

보유한 자산 리스트를 제공합니다.

공식 API


요청

UpbitAuthApiupbitAuthApi = newUpbitAuthApi(api, secret);
UpbitResponse<Account[]> response = upbitAuthApi.getAccounts();

응답

Account의 배열로 이루어진 응답을 반환합니다.

구분타입내용
currencyString화폐를 의미하는 영문 대문자 코드
balanceString주문가능 금액/수량
lockedString주문 중 묶여있는 금액/수량
avg_buy_priceString매수평균가
avg_buy_price_modifiedboolean매수평균가 수정 여부
unit_currencyString평단가 기준 화폐

사용자가 가진 코인 종류의 갯수만큼 줄력됩니다.


2-5-2. 주문 - 주문 가능 정보

코인별 주문 가능 정보를 제공합니다.

공식 API


요청

UpbitAuthApiupbitAuthApi = newUpbitAuthApi(api, secret);
UpbitResponse<OrderInfo> response = upbitAuthApi.getOrderInfo(market);
구분타입내용
marketString마켓 코드

응답

OrderInfo으로 이루어진 응답을 반환합니다.

  • OrderInfo
구분타입내용
bid_feeString매수 수수료 비율
ask_feeString매도 수수료 비율
marketMarket마켓에 대한 정보
bid_accountAccount매수 시 사용하는 화폐의 계좌 상태
ask_accountAccount매도 시 사용하는 화폐의 계좌 상태
  • Market
구분타입내용
idString마켓의 유일 키
nameString마켓 이름
order_typesString지원 주문 방식
order_sidesString지원 주문 종류
bidMarketAskBid매수 시 제약사항
askMarketAskBid매도 시 제약사항
max_totalString최대 매도/매수 금액
stateString마켓 운영 상태
  • MarketAskBid
구분타입내용
ask.currencyString화폐를 의미하는 영문 대문자 코드
ask.price_unitString주문금액 단위
ask.min_totalint최소 매도/매수 금액
  • Account
구분타입내용
currencyString화폐를 의미하는 영문 대문자 코드
balanceString주문가능 금액/수량
lockedString주문 중 묶여있는 금액/수량
avg_buy_priceString매수평균가
avg_buy_price_modifiedboolean매수평균가 수정 여부
unit_currencyString평단가 기준 화폐

OrderInfo는 내부 응답의 여러 사용자 정의 객체를 포함하고 있습니다.

그 중 Account의 경우 자산 - 전체 계좌 조회의 응답 객체와 동일합니다.


2-5-3. 주문 - 개별 주문 조회

주문 UUID를 통한 개별 주문의 정보를 제공합니다.

공식 API


요청

UpbitAuthApiupbitAuthApi = newUpbitAuthApi(api, secret);
UpbitResponse<OrderDetail> response1 = upbitAuthApi.getOrder(uuid);
UpbitResponse<OrderDetail> response2 = upbitAuthApi.getOrder(uuid, identifier);
구분타입내용
uuidString마켓 코드
identifierString조회용 사용자 지정값

identifier는 API 주문 요청 시, 사용자가 직접 지정할 수 있는 주문의 고유키입니다.

통상 주문별로 자동으로 부여되는 UUID를 많이 사용하므로, identifier 단독 요청 메서드는 따로 구현하지 않았습니다.


응답

OrderDetail로 이루어진 응답을 반환합니다.

  • OrderDetail
구분타입내용
uuidString주문의 고유 아이디
sideString주문 종류
ord_typeString주문 방식
priceString주문 당시 화폐 가격
stateString주문 상태
marketString마켓의 유일키
created_atString주문 생성 시간
volumeString사용자가 입력한 주문 양
remaining_volumeString체결 후 남은 주문 양
reserved_feeString수수료로 예약된 비용
remaining_feeString남은 수수료
paid_feeString사용된 수수료
lockedString거래에 사용중인 비용
executed_volumeString체결된 양
trade_countint해당 주문에 걸린 체결 수
tradesTrade[]체결
  • Trade
구분타입내용
marketString마켓의 유일 키
uuidString체결의 고유 아이디
priceString체결 가격
volumeString체결 양
fundsString체결된 총 가격
sideString체결 종류
created_atString체결 시각

2-5-4. 주문 - 주문 리스트 조회

주문 리스트를 제공합니다.

공식 API


요청

UpbitAuthApiupbitAuthApi = newUpbitAuthApi(api, secret);
UpbitResponse<Order[]> response1 = upbitAuthApi.getOrderLists();
UpbitResponse<Order[]> response2 = upbitAuthApi.getOrderLists(market, state);
UpbitResponse<Order[]> response3 = upbitAuthApi.getOrderLists(market, uuids, identifiers, state, states, page, limit, order_by);
구분타입내용
marketString마켓 아이디
uuidsString[]주문 UUID의 목록
identifiersString[]주문 identifier의 목록
stateString주문 상태 (wait - 기본값, watch, done, cancel)
statesString[]주문 상태의 목록
pageint페이지 수 (기본값: 1)
limitint요청 개수 (기본값: 100)
order_byString정렬 방식 (asc, desc - 기본값)
  • wait - 체결 대기 중인 거래 내역으로, 기본값입니다.
  • watch - 예약 대기 중인 거래 내역입니다. 예약 매도/매수 내역과 동일합니다. (체결 대기가 아님)
  • done - 체결 완료된 거래 내역입니다. 매도/매수가 완료된 내역과 동일합니다.
  • cancel - 주문 취소된 거래 내역입니다.

응답

Order의 배열로 이루어진 응답을 반환합니다.

구분타입내용
uuidString주문의 고유 아이디
sideString주문 종류
ord_typeString주문 방식
priceString주문 당시 화폐 가격
stateString주문 상태
marketString마켓의 유일키
created_atString주문 생성 시간
volumeString사용자가 입력한 주문 양
remaining_volumeString체결 후 남은 주문 양
reserved_feeString수수료로 예약된 비용
remaining_feeString남은 수수료
paid_feeString사용된 수수료
lockedString거래에 사용중인 비용
executed_volumeString체결된 양
trade_countint해당 주문에 걸린 체결 수

2-5-5. 주문 - 주문 취소 접수

주문 취소 접수 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.

공식 API


요청

UpbitAuthApiupbitAuthApi = newUpbitAuthApi(api, secret);
UpbitResponse<Order> response1 = upbitAuthApi.deleteOrder(uuid);
UpbitResponse<Order> response2 = upbitAuthApi.deleteOrder(uuid, identifier);
구분타입내용
uuidString취소할 주문의 UUID
identifierString조회용 사용자 지정값

응답

Order로 이루어진 응답을 반환합니다.

구분타입내용
uuidString주문의 고유 아이디
sideString주문 종류
ord_typeString주문 방식
priceString주문 당시 화폐 가격
stateString주문 상태
marketString마켓의 유일키
created_atString주문 생성 시간
volumeString사용자가 입력한 주문 양
remaining_volumeString체결 후 남은 주문 양
reserved_feeString수수료로 예약된 비용
remaining_feeString남은 수수료
paid_feeString사용된 수수료
lockedString거래에 사용중인 비용
executed_volumeString체결된 양
trade_countint해당 주문에 걸린 체결 수

2-5-6. 주문 - 매수 시장가 주문하기

매수 시장가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.

주문 API는 총 6개가 제공됩니다.

  • 매수 시장가 주문 (필수 파라미터)
  • 매수 시장가 주문 (전체 파라미터)
  • 매수 지정가 주문
  • 매도 시장가 주문 (필수 파라미터)
  • 매도 시장가 주문 (전체 파라미터)
  • 매도 지정가 주문

지정된 코인의 현재 시세를 기준으로 원하는 금액만큼 구매합니다.

공식 API

Upbit의 주문하기 API는 하나인데요?
Upbit의 주문 API는 매도/매수 및 시장가/지정가의 요청이 전부 하나의 API로 사용하도록 구성되어있습니다. 매도/매수, 시장가/지정가의 요청에 따라 특정 파라미터를 비우거나, 필수로 삽입해야하기 때문에 사용에 혼돈을 유발할 가능성이 높습니다.
이를 방지하기 위해서, 매도/매수, 시장가/지정가의 API를 분리하여 좀 더 직관적인 API 활용이 가능하도록 유도했습니다.


요청

UpbitAuthApiupbitAuthApi = newUpbitAuthApi(api, secret);
UpbitResponse<Order> response1 = upbitAuthApi.postBuyOrder(market, price);
UpbitResponse<Order> response2 = upbitAuthApi.postBuyOrder(market, price, identifier);
구분타입내용
marketString마켓 ID
priceint주문 가격
identifierString조회용 사용자 지정값

이전의 조회 메서드에 있던 identifier 파라미터가 주문 API에서 입력하는 identifier입니다.

주문 시 identifier를 특정할 경우, Upbit에서 자동으로 입력해주는 UUID 외에도 사용자가 임의로 고유값을 지정해줄 수 있습니다.

고유값이므로, 한 계정 내에서 기존에 사용됐던 identifier를 사용하여 주문할 경우 오류가 출력되니 주의하시기 바랍니다.


응답

Order로 이루어진 응답을 반환합니다.

구분타입내용
uuidString주문의 고유 아이디
sideString주문 종류
ord_typeString주문 방식
priceString주문 당시 화폐 가격
stateString주문 상태
marketString마켓의 유일키
created_atString주문 생성 시간
volumeString사용자가 입력한 주문 양
remaining_volumeString체결 후 남은 주문 양
reserved_feeString수수료로 예약된 비용
remaining_feeString남은 수수료
paid_feeString사용된 수수료
lockedString거래에 사용중인 비용
executed_volumeString체결된 양
trade_countint해당 주문에 걸린 체결 수

2-5-7. 주문 - 매수 지정가 주문하기

매수 지정가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.

지정된 코인을 원하는 시세에 원하는 수량만큼 구매합니다. 즉, 예약 매수입니다.

공식 API


요청

UpbitAuthApiupbitAuthApi = newUpbitAuthApi(api, secret);
UpbitResponse<Order> response1 = upbitAuthApi.postLimitOrder(market, side, volume, price, identifier);
구분타입내용
marketString마켓 ID
sideString주문 종류. bid로 고정
volumeint주문 양
priceint주문 가격
identifierString조회용 사용자 지정값

매수일 경우 side는 반드시 bid로 고정해야합니다.

지정가 매도/매수는 동일한 메서드를 사용하므로, side 입력에 주의하시기 바랍니다.


응답

Order로 이루어진 응답을 반환합니다.

구분타입내용
uuidString주문의 고유 아이디
sideString주문 종류
ord_typeString주문 방식
priceString주문 당시 화폐 가격
stateString주문 상태
marketString마켓의 유일키
created_atString주문 생성 시간
volumeString사용자가 입력한 주문 양
remaining_volumeString체결 후 남은 주문 양
reserved_feeString수수료로 예약된 비용
remaining_feeString남은 수수료
paid_feeString사용된 수수료
lockedString거래에 사용중인 비용
executed_volumeString체결된 양
trade_countint해당 주문에 걸린 체결 수

2-5-8. 주문 - 매도 시장가 주문하기

매도 시장가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.

지정된 코인의 현재 시세를 기준으로 원하는 갯수만큼 판매합니다.

공식 API


요청

UpbitAuthApiupbitAuthApi = newUpbitAuthApi(api, secret);
UpbitResponse<Order> response1 = upbitAuthApi.postSellOrder(market, volume);
UpbitResponse<Order> response2 = upbitAuthApi.postSellOrder(market, volume, identifier);
구분타입내용
marketString마켓 ID
priceint주문 양
identifierString조회용 사용자 지정값

매수와 달리, 원하는 코인의 갯수를 판매합니다.


응답

Order로 이루어진 응답을 반환합니다.

구분타입내용
uuidString주문의 고유 아이디
sideString주문 종류
ord_typeString주문 방식
priceString주문 당시 화폐 가격
stateString주문 상태
marketString마켓의 유일키
created_atString주문 생성 시간
volumeString사용자가 입력한 주문 양
remaining_volumeString체결 후 남은 주문 양
reserved_feeString수수료로 예약된 비용
remaining_feeString남은 수수료
paid_feeString사용된 수수료
lockedString거래에 사용중인 비용
executed_volumeString체결된 양
trade_countint해당 주문에 걸린 체결 수

2-5-9. 주문 - 매도 지정가 주문하기

매도 지정가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.

지정된 코인을 원하는 시세에 원하는 수량만큼 판매합니다. 즉, 예약 매도입니다.

공식 API


요청

UpbitAuthApiupbitAuthApi = newUpbitAuthApi(api, secret);
UpbitResponse<Order> response1 = upbitAuthApi.postLimitOrder(market, side, volume, price, identifier);
구분타입내용
marketString마켓 ID
sideString주문 종류. ask로 고정
volumeint주문 양
priceint주문 가격
identifierString조회용 사용자 지정값

매도일 경우 side는 반드시 ask로 고정해야합니다.

지정가 매도/매수는 동일한 메서드를 사용하므로, side 입력에 주의하시기 바랍니다.


응답

Order로 이루어진 응답을 반환합니다.

구분타입내용
uuidString주문의 고유 아이디
sideString주문 종류
ord_typeString주문 방식
priceString주문 당시 화폐 가격
stateString주문 상태
marketString마켓의 유일키
created_atString주문 생성 시간
volumeString사용자가 입력한 주문 양
remaining_volumeString체결 후 남은 주문 양
reserved_feeString수수료로 예약된 비용
remaining_feeString남은 수수료
paid_feeString사용된 수수료
lockedString거래에 사용중인 비용
executed_volumeString체결된 양
trade_countint해당 주문에 걸린 체결 수