주식 투자 앱이나 자산관리 서비스를 개발하다 보면, 실시간 주가 데이터를 안전하게 제공하는 API가 필요합니다.
저는 이번 프로젝트를 위해서 한국투자증권의 Open API를 사용 했습니다. 이를 활용하면 국내 상장 주식의 실시간 시세, 체결 정보, 거래 내역 등을 조회할 수 있습니다.
이번 글에서는 API 사용을 위한 신청과 승인 과정 그리고 간단한 구현 예제를 가이드 합니다.
한국투자증권 Open API란?
한국투자증권 Open API는 다음과 같은 특징을 가지고 있습니다.
- RESTful API 형식으로 제공
- OAuth2 인증 방식 사용
- 실시간 주식 시세, 주문, 계좌 정보 조회 가능
- 모의투자(테스트)와 실계좌 환경 제공
API 사용을 위해서는 개발자 계정 가입과 앱 등록, 그리고 사용 승인 과정이 필요합니다.
Open API 신청 절차
개발자 계정 생성
- 한국투자증권 Open API 개발자센터 접속
- API 신청 선택
- 계좌개설 및 ID 연결 후 Open API 서비스 신청
- 로그인 후 내 계정 페이지에서 개발자 정보 확인
- 한국투자증권 홈페이지 혹은 앱에서 로그인 후 확인 가능
- 앱 > 고객지원 > 거래서비스 신청 > KIS Developers 서비스 신청 > 신청하기
⚠️ 개인 개발자의 경우, 실계좌 연동 시 별도의 인증이 필요하며, 모의투자 환경은 가입 즉시 사용 가능합니다.
애플리케이션 등록
- 내 애플리케이션 → 앱 등록 메뉴 선택
- 신규 앱 등록 정보 입력
- 앱 이름, 설명, 서비스 목적
- API 사용 범위 선택 (예: 시세조회, 주문, 계좌조회)
- 플랫폼(웹, 모바일 등) 정보 입력
- 등록 후 발급되는 AppKey와 AppSecret 확인
🔑 AppKey와 AppSecret은 API 호출 시 인증 토큰 발급에 사용됩니다.
.env등 안전한 환경 변수에 보관하고 절대 외부에 노출하지 않습니다.
모의투자 환경과 실계좌 환경
- 모의투자(Open API 테스트)
- 개발 초기 단계에서 사용
- 계좌 연동 없이 자유롭게 API 테스트 가능
- 실시간 시세 데이터와 일부 체결 데이터를 제공
- 실계좌 연동
- 실제 투자 서비스를 제공할 때 필요
- 증권사 심사 후 승인 필요
- OAuth2 인증 과정 완료 후 실시간 거래 가능
개발 단계에서는 모의투자 환경으로 충분히 테스트 후,
서비스 론칭 단계에서 실계좌 환경으로 전환하는 것을 추천합니다.
API 이용 승인과 주의사항
- 심사 제출
- 앱 등록 시, API 사용 목적과 범위를 명확히 기재
- 서비스 화면 캡처, 기능 설명서 등 추가 자료 요구 가능
- 보안 관리
- AppKey, AppSecret 외부 노출 금지
- 인증 토큰은 일정 기간 후 만료되므로 안전하게 관리
- API 사용량 제한
- 초당 호출 수 제한 존재
- 다중 종목 조회 시 API 호출 최적화 필요
승인 이후에도 API 정책 변경 가능성이 있으므로 정기적으로 공지 사항 확인이 필요합니다.
신청 완료 후 확인 사항
- 발급 받은 AppKey, AppSecret 확인
- 모의투자 환경에서 API 호출 테스트
- OAuth2 인증 흐름 정상 작동 확인
- 요청/응답 데이터 형식 검증
이 과정을 완료하면, 실시간 주가 연동과 주문 기능을 안전하게 구현할 수 있습니다.
간단한 Python 연동 예제
아래 예제는 모의투자 환경에서 주식 현재가를 조회하는 최소 구조입니다.
import os
import requests
from dotenv import load_dotenv
# 환경변수 로드
load_dotenv()
APP_KEY = os.getenv("KIS_APP_KEY")
APP_SECRET = os.getenv("KIS_APP_SECRET")
BASE_URL = "https://openapi.koreainvestment.com:9443"
# 1️⃣ Access Token 발급
token_res = requests.post(
f"{BASE_URL}/oauth2/tokenP",
headers={"Content-Type": "application/json; charset=UTF-8"},
json={
"grant_type": "client_credentials",
"appkey": APP_KEY,
"appsecret": APP_SECRET
}
)
access_token = token_res.json()["access_token"]
# 2️⃣ 주식 시세 조회 (삼성전자 005930)
stock_res = requests.get(
f"{BASE_URL}/uapi/domestic-stock/v1/quotations/inquire-price",
headers={
"Content-Type": "application/json; charset=UTF-8",
"authorization": f"Bearer {access_token}",
"appkey": APP_KEY,
"appsecret": APP_SECRET,
"tr_id": "FHKST01010100",
"custtype": "P"
},
params={
"FID_COND_MRKT_DIV_CODE": "J",
"FID_INPUT_ISCD": "005930"
}
)
data = stock_res.json()
print("삼성전자 현재가:", data["output"]["stck_prpr"])
코드 설명
- 환경 변수 관리: AppKey와 AppSecret은
.env파일에서 안전하게 로드 - OAuth2 토큰 발급: API 호출 전 필수
- 주식 시세 조회: 종목코드(
FID_INPUT_ISCD)를 통해 현재가 조회 가능 - 모의투자 환경에서 테스트 가능하며, 실계좌 연동 시 인증만 추가하면 동일 구조 사용 가능
마무리
한국투자증권 Open API는 모의투자와 실계좌 환경 모두 제공하며,
안정적인 실시간 주가 연동 서비스를 개발하는 데 필수적인 도구입니다.
API 신청 시에는 개발자 계정 등록 → 앱 등록 → 사용 승인의 절차를 반드시 따라야 하며,
보안과 호출 제한 등 정책을 준수해야 합니다.