Files
KisStock/한국투자증권(API)/legacy/rest/current_price_samle.py
2026-01-31 22:34:57 +09:00

55 lines
1.4 KiB
Python

import requests
import json
APP_KEY = ""
APP_SECRET = ""
ACCESS_TOKEN = ""
URL_BASE = "https://openapi.koreainvestment.com:9443" #실전투자
# Auth
def auth():
headers = {"content-type":"application/json"}
body = {
"grant_type":"client_credentials",
"appkey":APP_KEY,
"appsecret":APP_SECRET
}
PATH = "oauth2/tokenP"
URL = f"{URL_BASE}/{PATH}"
res = requests.post(URL, headers=headers, data=json.dumps(body))
global ACCESS_TOKEN
ACCESS_TOKEN = res.json()["access_token"]
# 주식현재가 시세
def get_current_price(stock_no):
PATH = "uapi/domestic-stock/v1/quotations/inquire-price"
URL = f"{URL_BASE}/{PATH}"
# 헤더 설정
headers = {"Content-Type":"application/json",
"authorization": f"Bearer {ACCESS_TOKEN}",
"appKey":APP_KEY,
"appSecret":APP_SECRET,
"tr_id":"FHKST01010100"}
params = {
"fid_cond_mrkt_div_code":"J",
"fid_input_iscd": stock_no
}
# 호출
res = requests.get(URL, headers=headers, params=params)
if res.status_code == 200 and res.json()["rt_cd"] == "0" :
return(res.json())
# 토큰 만료 시
elif res.status_code == 200 and res.json()["msg_cd"] == "EGW00123" :
auth()
get_current_price(stock_no)
else:
print("Error Code : " + str(res.status_code) + " | " + res.text)
return None
get_current_price("005930")