REST API를 이용한 업비트 시세 수신

1. 마켓 정보 및 Ticker 조회

업비트에서 제공하는 마켓 리스트를 확인하기 위해서는 다음 API를 사용합니다.

curl --request GET \
  --url https://api.upbit.com/v1/market/all

결과값은 마켓 코드 리스트이며, 앞으로 사용될 API에 마켓 코드 필드의 파라미터 값으로 사용할 수 있습니다.

예를 들어, 원화 마켓의 비트코인 시세를 알고싶다면 market 파라미터에 KRW-BTC 라고 명시할 수 있습니다.

만약 원화 시장에 상장된 비트코인의 현재 가격을 얻어오고 싶다면 Ticker API를 사용할 수 있습니다.

curl --request GET \
  --url 'https://api.upbit.com/v1/ticker?markets=KRW-BTC'

Ticker API는 다른 API들과는 다르게 markets 파라미터에 반점(,)으로 구분된 여러 개의 마켓을 명시할 수 있습니다. 이 API는 디지털 자산 시장에서 특정 마켓의 상태(스냅샷)를 가져오는 데 유용하게 사용할 수 있습니다.

2. 캔들 조회

캔들이란 일반적으로 봉이라고 불리기도 하며 차트를 구성하는 기본적인 막대입니다.
업비트 시세 API를 통해 얻을 수 있는 캔들 중 분 캔들(분봉) 이란 각각의 막대가 1, 3, 5, 10, 30, 60분 간격의 시세를 종합한 정보라고 할 수 있습니다.

예를 들어 KRW-BTC (원화, 비트코인 마켓)에서 가장 최근으로부터 5분봉을 3개 가져오고 싶다면 다음과 같이 요청할 수 있습니다.

curl --request GET \
  --url 'https://api.upbit.com/v1/candles/minutes/5?market=KRW-BTC&count=3'

해당 요청의 결과값은 가장 최신 시간을 기준으로 5분봉 3개를 가져옵니다. 분봉의 특성상 기준 시각이 매 시의 0, 5, 10, 15.. 55분으로 이루어져있습니다.

주의할 점은, 한 번에 200개 까지의 캔들을 요청할 수 있으며 이를 초과하는 경우 페이지네이션 기술을 이용해 순차적으로 요청하는 것을 권장합니다.

이와 마찬가지로 일, 월, 주 캔들을 얻어올 수 있습니다.

to 파라미터 사용하기

캔들 API에서 사용하는 to 파라미터의 경우, ISO8061 표준을 따릅니다. 따라서 요청시 다음과 같이 요청할 수 있습니다.

  1. UTC 기준 0시까지 1분봉을 1개 요청하기
    https://api.upbit.com/v1/candles/minutes/1?market=KRW-BTC&to=2018-07-24T00:00:00Z

  2. KST 기준(UTC + 09:00) 7시까지 1분봉을 1개 요청하기
    https://api.upbit.com/v1/candles/minutes/1?market=KRW-BTC&to=2018-09-27T07:00:00+09:00

to 파라미터 사용시 URL Encode가 제대로 되었는지 확인하시기 바라며, 위 요청을 브라우저에서 바로 요청해보려는 경우에는 다음과 같이 요청하실 수 있습니다.

https://api.upbit.com/v1/candles/minutes/1?market=KRW-BTC&to=2018-09-27T07:00:00%2B09:00

3. 시세 체결 조회

체결이란 거래가 성사된 것을 의미하며 시세 API를 통해 당일 또는 최근 일자의 체결 내역을 얻어올 수 있습니다.
기본적으로 API를 호출했을 때 특정 코인의 가장 최근 체결 데이터를 반환합니다.
예를 들어 가장 최근 체결이 이틀 전일 경우 이틀 전의 체결 데이터를 반환합니다.

추가적으로 쿼리 스트링을 이용하여 가장 최근 체결 일자 기준 7일 이내의 과거 체결 데이터를 확인할 수 있습니다.

한 번에 최대 200개의 체결만을 요청할 수 있으며 이를 초과하는 경우 페이지네이션 기술을 이용해 순차적으로 요청하는 것을 권장합니다.

📘

API 응답 내용 압축해서 받아보기

(2019. 01.17) 업데이트 이후, 시세 API에 한해 gzip 압축을 지원하고 있습니다. 요청 헤더(Request Header)에 Accept-Encoding: gzip 을 추가하시면 트래픽 비용을 줄일 수 있습니다.