반응형
키움증권에서는 OpenAPI+뿐 아니라 REST API도 제공합니다.
REST API는 로그인 없이 HTTP 요청으로 데이터를 조회하거나 주문할 수 있어 자동화에 매우 적합합니다.
이 글에서는 키움증권 모의투자용 REST API를 사용하여 접근 토큰을 발급받는 방법과 그에 해당하는 파이썬 코드를 공유합니다.
✅ 접근 토큰이란?
Access Token은 키움 API 서버에 “나는 인증된 사용자입니다”라고 알려주는 전자 열쇠입니다.
API를 사용할 때는 항상 이 토큰을 Authorization 헤더에 포함시켜야 하며, 이 토큰은 일정 시간이 지나면 만료되므로 정기적으로 갱신해야 합니다.
🔐 토큰 발급을 위한 준비
- 키움증권 Open API 개발자 센터에 로그인
- 모의투자 앱 등록
- AppKey / SecretKey 발급
- 아래 API를 통해 토큰 발급
📡 API 정보
- 요청 URL: https://mockapi.kiwoom.com/oauth2/token
- 요청 방식: POST
- 요청 헤더: Content-Type: application/json
- 요청 바디(JSON):
{
"grant_type": "client_credentials",
"appkey": "받은 AppKey",
"secretkey": "받은 SecretKey"
}
📡 전체코드
import requests # HTTP 요청을 위한 라이브러리
# ✅ 접근 토큰을 발급받는 함수 정의
def get_token():
url = "https://mockapi.kiwoom.com/oauth2/token" # 키움 모의투자 API 토큰 발급 주소
# HTTP 요청 헤더 설정
headers = {
"Content-Type": "application/json" # JSON 형식으로 데이터를 보낸다는 의미
}
# 요청에 포함할 데이터 (OAuth 인증 방식에 필요한 필드들)
data = {
"grant_type": "client_credentials", # 인증 방식 고정값
"appkey": "앱키", # 발급받은 앱 키 (개발자 센터에서 확인)
"secretkey": "시크릿키" # 발급받은 시크릿 키
}
# POST 요청을 보내고 응답 받기
response = requests.post(url, headers=headers, json=data)
# 응답 상태코드 출력 (200이면 성공)
print("Status:", response.status_code)
# 응답 본문 출력 (token, 만료정보 등 포함)
print("Body:", response.text)
# 상태 코드가 200이면 token 값을 반환
if response.status_code == 200:
return response.json().get("token") # 응답 JSON에서 token 값만 꺼냄
else:
return None # 실패 시 None 반환
# ✅ 이 파일이 직접 실행될 때만 아래 코드 실행
if __name__ == "__main__":
token = get_token() # 토큰 발급 요청
if token:
print("✅ 접근 토큰:", token) # 토큰 정상 출력
else:
print("❌ 토큰 발급 실패") # 실패 메시지
✅ 출력

반응형