키움 REST API · 설치 가이드

키움 REST API
인증키(App Key) 발급 가이드

프로그램이 키움증권과 연결되려면 App Key(앱키)App Secret(앱시크릿)이 필요합니다. 이 두 개를 키움 홈페이지에서 발급받아 프로그램에 넣어주면 실행됩니다. 아래 순서대로 천천히 따라오세요.

한 줄 요약. 키움 REST API 앱키는 openapi.kiwoom.com에서 받습니다(한국투자증권의 apiportal이 아닙니다). 순서는 ① 로그인 → ② ‘API 신청/해지’에서 약관 동의·신청 → ③ ‘계좌 App Key 관리’에서 내 IP 등록 → ④ 자동매매에 쓸 계좌 등록 → ⑤ App Key·App Secret 다운로드(1회만) → ⑥ 프로그램에 입력 → ⑦ 연결 확인입니다. ③·④를 건너뛰면 다운로드 버튼이 나타나지 않고 ‘인증된 계좌가 없습니다’가 뜹니다. 가장 많이 사고가 나는 곳은 ⑤ — 키는 1회만 받을 수 있고 잃어버리면 갱신으로 재발급해야 합니다.
💡 영웅문(HTS) 로그인이 아닙니다. REST API 방식은 아이디/비밀번호로 연결하는 게 아니라, 아래에서 발급받는 App Key · App Secret으로 연결됩니다. 처음 보시는 화면이라 낯설 수 있어요 — 막히면 맨 아래 채팅 안내를 보세요.
STEP 1

키움 REST API 포털 접속 · 로그인

  1. 주소창에 openapi.kiwoom.com 입력해 접속 (‘apiportal’ 아님 — openapi 입니다)
  2. 오른쪽 위 로그인 → 키움증권 계정(공동인증서/간편인증/아이디)으로 로그인
키움 REST API 로그인 화면
STEP 2

‘API 신청/해지’ 탭에서 API 사용 등록

먼저 REST API 서비스 자체를 켜야 합니다.

  1. 상단 API 사용신청API 신청/해지
  2. 맨 아래 오픈 API 서비스 이용약관 확인 후 동의 체크 → 신청
  3. ‘키움 REST API 신청 현황’ 표에 상태: 등록 으로 뜨면 완료
API 신청/해지 상태 등록 화면
STEP 3

‘계좌 App Key 관리’ 탭 → 내 PC IP 등록

상단 계좌 App Key 관리 탭으로 이동합니다. (‘모의투자’ 아님)

  1. IP 등록 및 현황에서 ‘현재 나의 IP’ 주소 확인 (예: 115.138.■■■.■■■)
  2. 그 주소를 IP 주소등록 입력란에 넣고 추가 → 아래 표에 올라오면 완료 (최대 10개)
💡 ‘잘못된 IP 형식입니다’가 뜨면 앞뒤 공백·특수문자를 확인하세요. IP는 숫자.숫자.숫자.숫자 형식입니다.
🔒 스크린샷엔 실제 IP를 가리세요 (115.138.■■■.■■■). IP는 접속 위치 정보입니다.
IP 등록 화면
STEP 4

자동매매에 쓸 계좌 등록

App Key는 계좌별로 발급되므로, 먼저 사용할 계좌를 등록해야 합니다. 이 단계를 건너뛰면 ‘인증된 계좌가 없습니다’ 가 떠요.

  1. 같은 화면 맨 아래 ‘계좌 등록하기’ 버튼 클릭
  2. 자동매매에 쓸 실전투자 계좌 선택·등록
  3. 표에 계좌주·계좌번호·구분(실전투자)·만료일이 뜨면 완료
계좌 등록 화면
STEP 5

App Key · App Secret 다운로드 (⚠️ 1회만 가능)

등록된 계좌 행 오른쪽 다운로드하기에서 발급받습니다.

  1. App Key 다운로드 → App Secret 다운로드 (각각 버튼)
  2. 받은 값을 안전한 곳에 꼭 저장하세요
⚠️ App Key·App Secret은 1회만 다운로드 가능하고 이후 비활성화됩니다. 잃어버리면 ‘갱신’으로 재발급해야 해요. 받자마자 파일·메모장에 보관하세요.
App Key 다운로드 화면
STEP 6

발급받은 키를 프로그램에 입력

여기까지 하면 발급은 끝입니다. 이제 AppKey · SecretKey · 계좌번호를 사용하는 프로그램에 입력하면 연결됩니다. 대부분의 프로그램은 아래처럼 ‘API 설정’ 창에 붙여넣는 방식입니다.

  1. 프로그램 실행 → ‘API 설정 (키·계좌)’ 메뉴/버튼 열기
  2. 창에 AppKey · SecretKey · 계좌번호(STEP 4에서 등록한 계좌) 붙여넣기
  3. ‘저장 후 연결’ → 자동으로 저장·연결됩니다 (.env 파일을 직접 만들 필요 없음)
프로그램 API 설정 창
💡 실전투자면 ‘모의투자 서버 사용’은 체크 해제 하세요. SecretKey는 안 보이게(●●●) 입력되며 ‘SecretKey 표시’로 확인할 수 있어요.
📄 만약 이런 ‘API 설정’ 창이 없고 .env 파일을 직접 만들라고 안내된 프로그램이면, 동봉된 사용설명서의 .env 방법을 따르세요.
STEP 7

연결 확인 후 시작

  1. ‘저장 후 연결’ 후, 프로그램에 ‘● API: 연결됨’ 표시가 뜨면 성공
  2. 종목·투자금·전략 설정을 확인하고 프로그램에서 운영(자동매매)을 시작합니다
발급 확인

키가 진짜 살아 있는지 30초 만에 확인하기

프로그램이 아직 없거나, ‘연결됨’이 안 뜨는데 원인이 키인지 프로그램인지 모르겠을 때 쓰는 방법입니다. 키움 REST API에서 App Key·App Secret으로 가장 먼저 하는 일은 접속 토큰을 받는 것(au10001)이고, 이 호출 하나만 성공하면 키·IP·계좌 등록이 전부 정상이라는 뜻입니다.

# 실전: https://api.kiwoom.com / 모의: https://mockapi.kiwoom.com POST /oauth2/token Content-Type: application/json;charset=UTF-8 { "grant_type": "client_credentials", "appkey": "발급받은 App Key", "secretkey": "발급받은 App Secret" }

성공하면 이렇게 돌아옵니다. return_code0이면 끝입니다.

{ "expires_dt": "20241107083713", // 이 토큰이 언제 죽는지 "token_type": "bearer", "token": "WQJCwyqInphKnR3bSRtB9NE1lv...", "return_code": 0, "return_msg": "정상적으로 처리되었습니다" }
⚠️ 가장 흔한 오타 두 개. 필드 이름이 secret_key가 아니라 secretkey(붙여쓰기)이고, grant_type에는 client_credentials를 그대로 넣어야 합니다. 둘 중 하나만 틀려도 토큰이 나오지 않습니다.

파이썬이라면 세 줄이면 됩니다. 키 값을 코드에 직접 적지 말고 환경변수나 별도 파일에서 읽으세요.

import os, requests r = requests.post("https://api.kiwoom.com/oauth2/token", json={ "grant_type": "client_credentials", "appkey": os.environ["KIWOOM_APPKEY"], "secretkey": os.environ["KIWOOM_SECRETKEY"]}) print(r.json()) # return_code 가 0 이면 발급 완료

토큰이 안 나올 때 — 오류코드로 원인 찾기

키움 공식 명세의 오류코드를 발급 단계에서 실제로 만나는 것들만 추렸습니다. 번호만 보면 어느 STEP으로 돌아가야 하는지가 바로 나옵니다.

💡 App Key와 접속 토큰은 다릅니다. App Key·App Secret은 계좌별로 한 번 발급받아 계속 쓰는 값이고, 토큰은 그 키로 수시로 새로 받아 쓰는 임시 출입증입니다. “어제는 됐는데 오늘 안 된다”의 대부분은 키가 아니라 토큰 또는 IP 문제입니다. 다 쓴 토큰을 명시적으로 버리는 API(au10002, /oauth2/revoke)도 따로 있습니다.
자주 막히는 곳

발급 후 여기서 많이 멈춥니다

여기부터는 발급이 끝난 다음 이야기입니다. 프로그램을 쓰시는 분은 읽지 않으셔도 되고, 궁금하실 때만 보세요.

🔒 키 값은 비밀번호와 같습니다. 채팅·메일·메신저로 App Key나 App Secret을 그대로 보내지 마세요. 알고랩은 어떤 경우에도 고객님의 키 값을 요구하지 않습니다.

화면 구성·메뉴 이름은 2026년 8월 17일 기준, 토큰 발급 규격과 오류코드는 2026년 9월 16일 공식 명세 대조 기준이며 키움증권 사정으로 변경될 수 있습니다. 현재 화면과 다르면 키움 공식 안내를 확인하시거나 아래 채팅으로 물어보세요.

막히는 부분은 채팅으로 물어보세요

어느 단계에서 막히시는지 채팅으로 말씀해주시거나, 지금 화면을 📎로 캡처해서 보내주시면
담당자가 화면을 보고 다음 단계를 바로 알려드립니다.

채팅으로 물어보기