API(Application Programming Interface)
프로그램 간 데이터를 주고받기 위한 규칙을 정의한 인터페이스
- 특정 서비스나 데이터를 외부 개발자들이 쉽게 사용할 수 있도록 제공
- 개발자는 API를 통해 새로운 프로그램을 개발하거나 데이터를 활용할 수 있음
Client : API를 사용하는 사용
API Server : 데이터를 제공하는 서버
API : 서버와 소통하기 위한 규약
Request : API 규약에 따라 데이터를 요청
Response : 서버가 요청에 응답해 데이터를 반환
UPbit Open API
업비트에서 제공하는 Open API
자산조회 : 내 자산의 상태를 확인
주문하기/취소 : 암호화폐 매수 및 매도
시세 조회 : 암호화폐 시세 데이터 가져오기
Open API 종류 (업비트 개발자 센터 활용)
EXCHANGE API : 암호화폐 매수, 매도, 자산 조회 가능 (API Key 필요)
QUOTATION API : 시세 조회 가능 (API Key 불필요) - 캔들 데이터, 현재가 정보 등
WEBSOCKET API : 실시간 거래 데이터 수신
API Key 발급 및 사용
EXCHANGE API사용 시 API Key 필요 → 매수, 매도 프로그램 작성 시 발급 진행
1. 업비트 계정 로그인 → Open API 안내 페이지 → Open API 사용하기
2. 2채널 인증 설정 → 인증 진행
3. 약관 동의 후 API Key 발급
QUOTATION API는 Key없이 사용 가능 → 과거, 현재 시세 조회 후 미래 예측 프로그램 작성 가능
API 요청(Request)과 응답(Response)
docs에 정리가 굉장히 잘 돼있음
코드 복붙ㄱ
Request Parameters(요청 매개변수) : API 요청 시 세부 조건 설정
- market : 조회할 암호화폐 (예 : KRW-BTC)
- to : 캔들 종료 시각 (예 : 2025-01-01T00:00:00+09:00)
- count : 요청할 데이터 개수 (최대 200개)
(1) 일 시세 캔들 조회
import requests
url = "https://api.upbit.com/v1/candles/days?KRW-BTC&count=1"
headers = {"accept": "application/json"}
response = requests.get(url, headers=headers)
print(response.text)
(2) 주 시세 캔들 조회
import requests
url = "https://api.upbit.com/v1/candles/weeks?market=KRW-BTC&count=1"
headers = {"accept": "application/json"}
response = requests.get(url, headers = headers)
print(response.text)
→days와 weeks로 URL을 바꾸어 조회 주기를 조정
→매개변수 조작으로 데이터 세부 조정 가능
실시간 데이터 활용
Response : 요청 결과로 반환되는 데이터
일반적으로 JSON 형식
[
{
"market":"KRW-BTC",
"candle_date_time_utc":"2025-01-10T00:00:00",
"candle_date_time_kst":"2025-01-10T09:00:00",
"opening_price":139748000.00000000,
"high_price":141200000.00000000,
"low_price":139687000.00000000,
"trade_price":141131000.00000000,
"timestamp":1736474886340,
"candle_acc_trade_price":45753250982.38052000,
"candle_acc_trade_volume":325.58255311,
"prev_closing_price":139740000.00000000,
"change_price":1391000.00000000,
"change_rate":0.0099542007
}
]
'Z.PROJ' 카테고리의 다른 글
생성형 AI, LLM (Large Language Model), Transformer (1) | 2025.01.20 |
---|---|
인공지능(AI)의 이해 (1) | 2025.01.13 |
PostgreSQL (2) | 2025.01.08 |
암호화폐 데이터의 특성 (3) | 2025.01.08 |
시계열 데이터 (2) | 2025.01.04 |