✅ 한국투자증권 오픈 API로 주식 데이터 조회하기
(파이썬 실습 코드 포함)
주식 자동매매나 데이터 분석에 도전해보고 싶으신가요?
한국투자증권 오픈 API(OpenAPI) 를 활용하면
파이썬 코드로 HTS(홈트레이딩시스템)에서 하던 대부분의 기능을 직접 구현해볼 수 있습니다.
이 글에서는
👉 삼성전자 1분봉 데이터를 API로 직접 조회하는 실습 코드를 예제로 다룹니다.
초보자도 그대로 따라할 수 있도록 설명과 주석을 함께 정리했습니다.
1. 준비 사항
(1) 한국투자증권 계좌 개설 및 모의투자 신청
https://securities.koreainvestment.com/main/Main.jsp
뱅키스 연말 절세 2종 이벤트 2025.11.25~2025.12.31 뱅키스
securities.koreainvestment.com
(2) KIS Developers 개발자 등록
- 한국투자증권 홈페이지에서 [OpenAPI] → [KIS Developers] 메뉴로 이동
- 개발자 등록 후 App Key, App Secret 발급
KIS Developers
한국투자증권 Open API 포탈
apiportal.koreainvestment.com
👉 이후 모든 API 요청에 이 값들이 필요합니다.
(3) 파이썬 환경 준비
API 요청을 보내기 위해 requests 패키지를 사용합니다.
pip install requests
2. 접근 토큰(access token) 발급받기
한국투자증권 API는 보안을 위해
접근 토큰(access token) 을 발급받아야 사용할 수 있습니다.
아래 코드를 실행하면 토큰을 받을 수 있습니다.
import requests
BASE_URL = "https://openapivts.koreainvestment.com:29443"
APPKEY = "여기에_여러분_APPKEY_입력"
APPSECRET = "여기에_여러분_APPSECRET_입력"
url = f"{BASE_URL}/oauth2/tokenP"
headers = {
"Content-Type": "application/json"
}
body = {
"grant_type": "client_credentials",
"appkey": APPKEY,
"appsecret": APPSECRET
}
res = requests.post(url, headers=headers, json=body)
data = res.json()
print(data["access_token"]) # 출력되는 토큰 문자열을 복사!
- 출력되는 access_token 값을 복사해 두세요
- 이 토큰은 하루 동안만 유효합니다.
3. 실습 코드 : 삼성전자 1분봉 데이터 가져오기
이제 본격적인 실습입니다.
위에서 발급받은 access_token 값을 아래 코드에 붙여넣고 실행해보세요.
import requests
BASE_URL = "https://openapivts.koreainvestment.com:29443"
APPKEY = "여기에_APPKEY"
APPSECRET = "여기에_APPSECRET"
ACCESS_TOKEN = "여기에_발급받은_access_token_값_붙여넣기"
url = f"{BASE_URL}/uapi/domestic-stock/v1/quotations/inquire-time-itemchartprice"
headers = {
"content-type": "application/json; charset=utf-8",
"authorization": f"Bearer {ACCESS_TOKEN}",
"appkey": APPKEY,
"appsecret": APPSECRET,
"tr_id": "FHKST03010200", # 분봉 데이터 조회용 트랜잭션ID
"custtype": "P" # 개인 투자자 (모의투자)
}
params = {
"FID_ETC_CLS_CODE": "",
"FID_COND_MRKT_DIV_CODE": "J", # 주식시장
"FID_INPUT_ISCD": "005930", # 삼성전자 종목코드
"FID_INPUT_HOUR_1": "093000", # 기준시간(예: 09:30)
"FID_PW_DATA_INCU_YN": "Y"
}
try:
res = requests.get(url, headers=headers, params=params)
data = res.json()
print(data["output1"]["hts_kor_isnm"]) # 종목 한글명 출력
for item in data["output2"]:
print(f"시간: {item['stck_bsop_date']} {item['stck_cntg_hour']} 가격:{item['stck_prpr']}")
except Exception as e:
print(e)

▶️ 코드 설명
- headers
- appkey, appsecret, authorization(access token)은 반드시 포함해야 함
- tr_id는 분봉 조회용 트랜잭션 ID
- params
- FID_INPUT_ISCD 값만 바꾸면 다른 종목 조회 가능
- 005930 → 삼성전자
- 출력 결과
- 각 분마다의 날짜 / 시간 / 가격 정보가 출력됨
4. 마무리
이렇게 하면
한국투자증권 OpenAPI를 이용해 원하는 주식의 분봉 데이터를 파이썬으로 직접 조회할 수 있습니다.
이제 이 데이터를 활용해
- 나만의 주식 데이터 분석
- 자동매매 로직 구현
- 백테스트 코드 작성
까지 확장해볼 수 있겠죠?
👉 더 많은 기능은 KIS Developers 공식 문서를 참고해보세요.
주식 프로그래밍의 세계가 훨씬 넓어집니다.
'개발 > Python 프로젝트: 주식 자동 매매' 카테고리의 다른 글
| [주식 자동 매매] 5. 주식 투자 자동화 프로젝트 정리 (0) | 2025.12.20 |
|---|---|
| [주식 자동 매매] 4. 투자 전략 소개(이동평균선 활용) (0) | 2025.12.20 |
| [주식 자동 매매] 2. requests 모듈 사용법 (0) | 2025.12.20 |
| [주식 자동 매매] 1. 리퀘스트(Request)와 리스폰스(Response) 쉽게 정리 (0) | 2025.12.20 |