키움 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 포털 접속 · 로그인
- 주소창에
openapi.kiwoom.com 입력해 접속 (‘apiportal’ 아님 — openapi 입니다)
- 오른쪽 위 로그인 → 키움증권 계정(공동인증서/간편인증/아이디)으로 로그인
스크린샷 대기web/guide-img/step1-login.png 저장 시 표시
STEP 2
‘API 신청/해지’ 탭에서 API 사용 등록
먼저 REST API 서비스 자체를 켜야 합니다.
- 상단 API 사용신청 → API 신청/해지 탭
- 맨 아래 오픈 API 서비스 이용약관 확인 후 동의 체크 → 신청
- ‘키움 REST API 신청 현황’ 표에 상태: 등록 으로 뜨면 완료
스크린샷 대기web/guide-img/step2-apply.png (ID·이름 마스킹)
STEP 3
‘계좌 App Key 관리’ 탭 → 내 PC IP 등록
상단 계좌 App Key 관리 탭으로 이동합니다. (‘모의투자’ 아님)
- IP 등록 및 현황에서 ‘현재 나의 IP’ 주소 확인 (예:
115.138.■■■.■■■)
- 그 주소를 IP 주소등록 입력란에 넣고 추가 → 아래 표에 올라오면 완료 (최대 10개)
💡 ‘잘못된 IP 형식입니다’가 뜨면 앞뒤 공백·특수문자를 확인하세요. IP는 숫자.숫자.숫자.숫자 형식입니다.
🔒 스크린샷엔 실제 IP를 가리세요 (115.138.■■■.■■■). IP는 접속 위치 정보입니다.
스크린샷 대기web/guide-img/step3-ip.png (IP 마스킹)
STEP 4
자동매매에 쓸 계좌 등록
App Key는 계좌별로 발급되므로, 먼저 사용할 계좌를 등록해야 합니다. 이 단계를 건너뛰면 ‘인증된 계좌가 없습니다’ 가 떠요.
- 같은 화면 맨 아래 ‘계좌 등록하기’ 버튼 클릭
- 자동매매에 쓸 실전투자 계좌 선택·등록
- 표에 계좌주·계좌번호·구분(실전투자)·만료일이 뜨면 완료
스크린샷 대기web/guide-img/step4-account.png (계좌번호 마스킹)
STEP 5
App Key · App Secret 다운로드 (⚠️ 1회만 가능)
등록된 계좌 행 오른쪽 다운로드하기에서 발급받습니다.
- App Key 다운로드 → App Secret 다운로드 (각각 버튼)
- 받은 값을 안전한 곳에 꼭 저장하세요
⚠️ App Key·App Secret은 1회만 다운로드 가능하고 이후 비활성화됩니다. 잃어버리면 ‘갱신’으로 재발급해야 해요. 받자마자 파일·메모장에 보관하세요.
스크린샷 대기web/guide-img/step5-appkey.png (키 값 마스킹)
STEP 6
발급받은 키를 프로그램에 입력
여기까지 하면 발급은 끝입니다. 이제 AppKey · SecretKey · 계좌번호를 사용하는 프로그램에 입력하면 연결됩니다. 대부분의 프로그램은 아래처럼 ‘API 설정’ 창에 붙여넣는 방식입니다.
- 프로그램 실행 → ‘API 설정 (키·계좌)’ 메뉴/버튼 열기
- 창에 AppKey · SecretKey · 계좌번호(STEP 4에서 등록한 계좌) 붙여넣기
- ‘저장 후 연결’ → 자동으로 저장·연결됩니다 (
.env 파일을 직접 만들 필요 없음)
스크린샷 대기web/guide-img/step6-apiset.svg
💡 실전투자면 ‘모의투자 서버 사용’은 체크 해제 하세요. SecretKey는 안 보이게(●●●) 입력되며 ‘SecretKey 표시’로 확인할 수 있어요.
📄 만약 이런 ‘API 설정’ 창이 없고 .env 파일을 직접 만들라고 안내된 프로그램이면, 동봉된 사용설명서의 .env 방법을 따르세요.
STEP 7
연결 확인 후 시작
- ‘저장 후 연결’ 후, 프로그램에 ‘● API: 연결됨’ 표시가 뜨면 성공
- 종목·투자금·전략 설정을 확인하고 프로그램에서 운영(자동매매)을 시작합니다
발급 확인
키가 진짜 살아 있는지 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_code가 0이면 끝입니다.
{
"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으로 돌아가야 하는지가 바로 나옵니다.
8020 입력파라미터로 appkey 또는 secretkey가 들어오지 않았습니다
→ 필드 이름 오타(secret_key) 또는 빈 값. STEP 5에서 받은 값을 다시 확인.
8012 grant_type의 값이 맞지 않습니다 / 8011 grant_type이 들어오지 않았습니다
→ client_credentials 철자 확인.
8010 Token을 발급받은 IP와 서비스를 요청한 IP가 동일하지 않습니다
→ STEP 3의 IP 등록 문제입니다. 공유기·통신사 사정으로 공인 IP가 바뀌면 이 번호가 뜹니다.
클라우드·VPS에서 돌린다면 그 서버의 IP를 등록해야 합니다(내 PC IP가 아닙니다).
8031 투자구분(실전/모의)이 달라서 Token를 사용할수가 없습니다
→ 실전 키로 mockapi에 붙었거나 그 반대입니다. STEP 6의 ‘모의투자 서버 사용’ 체크를 확인하세요.
1513 authorization 필드가 설정되어 있어야 합니다 / 1514 형식이 맞지 않습니다
→ 토큰은 나왔는데 그다음 호출에서 나는 오류입니다. 헤더에 Bearer (뒤 공백 포함)를 붙였는지 보세요.
8005 Token이 유효하지 않습니다 → 만료됐습니다. expires_dt를 보고 미리 갱신하는 구조가 필요합니다.
💡 App Key와 접속 토큰은 다릅니다. App Key·App Secret은 계좌별로 한 번 발급받아 계속 쓰는 값이고,
토큰은 그 키로 수시로 새로 받아 쓰는 임시 출입증입니다.
“어제는 됐는데 오늘 안 된다”의 대부분은 키가 아니라 토큰 또는 IP 문제입니다.
다 쓴 토큰을 명시적으로 버리는 API(au10002, /oauth2/revoke)도 따로 있습니다.
자주 막히는 곳
발급 후 여기서 많이 멈춥니다
여기부터는 발급이 끝난 다음 이야기입니다. 프로그램을 쓰시는 분은 읽지 않으셔도 되고, 궁금하실 때만 보세요.
- ‘인증된 계좌가 없습니다’ — STEP 4의 계좌 등록을 안 했을 때 뜹니다. App Key는 계좌별로 발급됩니다.
- 어제는 됐는데 오늘 인증 오류 — 공유기·통신사 사정으로 공인 IP가 바뀐 경우가 대부분입니다. STEP 3에서 현재 IP를 다시 확인해 추가하세요(최대 10개). 이때 뜨는 오류코드가
8010입니다.
- 오래 켜 두면 끊긴다 — 앱키가 아니라 접속 토큰의 만료입니다. 키움은 토큰 발급이
au10001, 폐기가 au10002이고 만료 시각은 응답의 expires_dt로 내려옵니다. 자세한 건
키움 REST API 토큰 유효기간에 정리해 두었습니다.
- 주문이 자주 실패한다 — 호출이 몰리면
429가 돌아옵니다.
키움 REST API 429 유량 제한을 참고하세요.
- 모의투자로 먼저 해 보고 싶다 — 도메인이 다릅니다. 실전은
api.kiwoom.com, 모의는 mockapi.kiwoom.com입니다. 프로그램에 ‘모의투자 서버 사용’ 옵션이 있으면 그것을 쓰세요. 실전 키로 모의 도메인에 붙으면 8031이 돌아옵니다.
🔒 키 값은 비밀번호와 같습니다. 채팅·메일·메신저로 App Key나 App Secret을 그대로 보내지 마세요.
알고랩은 어떤 경우에도 고객님의 키 값을 요구하지 않습니다.
화면 구성·메뉴 이름은 2026년 8월 17일 기준, 토큰 발급 규격과 오류코드는 2026년 9월 16일 공식 명세 대조 기준이며 키움증권 사정으로 변경될 수 있습니다.
현재 화면과 다르면 키움 공식 안내를 확인하시거나 아래 채팅으로 물어보세요.
막히는 부분은 채팅으로 물어보세요
어느 단계에서 막히시는지 채팅으로 말씀해주시거나, 지금 화면을 📎로 캡처해서 보내주시면
담당자가 화면을 보고 다음 단계를 바로 알려드립니다.
채팅으로 물어보기