한국거래소(KRX)가 무료로 지수·시세·거래대금 같은 시장 데이터를 API로 열어 두었습니다.
회원가입 → 인증키 신청 → 서비스 이용 신청
이 세 단계면 오늘부터 내 코드로 주식 데이터를 받을 수 있습니다.
주식 데이터를 매번 손으로 긁어 오거나 남이 정리한 표만 보고 계셨나요? 한국거래소가 운영하는 'KRX 데이터 마켓플레이스 오픈API'를 쓰면, 코스피·코스닥 지수부터 종목별 시세, 거래대금, ETF까지 무료로 받아 올 수 있습니다. 오늘은 코딩이 처음인 분도 따라 할 수 있도록, 키를 발급받아 첫 데이터를 받아 보는 데까지 순서대로 정리하겠습니다.
① 먼저 회원가입부터 — 어디로 들어가나요.
KRX 오픈API 사이트(openapi.krx.co.kr)에 접속해 회원가입을 합니다. 그런데 이 사이트로 들어가면 보안관련 파일을 설치하라고 나옵니다. 그래서 KRX 정보데이터시스템(https://data.krx.co.kr/)에서 계정을 개설하는게 덜 피곤합니다. ㅎㅎㅎ(강추)
https://data.krx.co.kr/ 에서 회원가입하고 다른 SNS로도 로그인됩니다. 이 사이트에서 많이 놀아보시길 권해드립니다. 재미있어요. 데이터를 받을 수도 있고 모르고 있었던 여러가지 데이터가 있습니다.

제일 오른 쪽 아래에 보시면 OPEN API라고 보이시죠? 그것을 클릭하고 들어가시면 됩니다.
오픈API가 뭐예요? 내 프로그램이 KRX 서버에 "오늘 코스피 시세 줘"라고 요청하면, 사람이 보는 웹페이지 대신 컴퓨터가 읽기 좋은 형태(JSON)로 데이터를 돌려주는 창구입니다.
② 인증키(AUTH_KEY) 신청 — 나만의 출입증 받기
로그인한 뒤 마이페이지에서 'API 인증키(AUTH_KEY)'를 신청합니다. 이 키는 "이 요청은 가입한 나에게서 나온 것"임을 증명하는 출입증입니다. 발급되면 길고 복잡한 문자열 하나가 나오는데, 남에게 노출되지 않게 잘 보관하세요. 코드에 그대로 적어 두기보다 환경변수에 넣어 두는 습관을 들이면 좋습니다.

API인증키 발급을 누르시고 잠시 있으면 인증키가 발급되었습니다.
③ 쓸 데이터 서비스를 '개별로' 신청 — 여기서 많이들 막힙니다
KRX 오픈API에서 가장 헷갈리는 지점입니다. 키만 받았다고 모든 데이터가 열리지 않습니다. 서비스 목록에서 내가 쓸 항목을 하나씩 '이용 신청'해야 합니다.

여기에 가시면 내가 뽑아볼 데이터 목록을 볼 수 있습니다.
초보자에게 쓸모 많은 것부터 꼽으면 이렇습니다.
- 지수 일별시세(코스피·코스닥): 그날 시장이 오르고 내린 방향을 봅니다.
- 유가증권·코스닥 종목별 일별매매정보: 종목별 종가·등락률·거래량·거래대금·시가총액이 한 번에 나옵니다. 등락 분포나 거래대금이 몰린 종목을 뽑을 때 핵심입니다.
- ETF 일별매매정보: 어떤 테마에 자금이 몰렸는지 볼 때 유용합니다.

이 화면 아랫쪽에 보면 이용신청이 나옵니다.



각 서비스는 승인까지 잠깐 시간이 걸릴 수 있으니, 필요한 것을 미리 신청해 두세요.

④ 첫 호출 테스트 — 주소·헤더·날짜 세 가지만 기억하면 됩니다
호출 구조는 단순합니다. 주소 뒤에 분류와 서비스 이름을 붙이고, 요청 헤더에 인증키를 담고, 조회할 날짜를 파라미터로 넘깁니다.
- 주소 형태: http://data-dbg.krx.co.kr/svc/apis/{분류}/{서비스}
- 예) 코스피 일별시세: .../svc/apis/idx/kospi_dd_trd
- 예) 유가증권 종목별: .../svc/apis/sto/stk_bydd_trd
- 헤더: AUTH_KEY: 내가 받은 인증키
- 파라미터: basDd=YYYYMMDD (예: 20260715)
파이썬으로는 이 몇 줄이면 첫 데이터가 손에 들어옵니다.
import requests
url = "http://data-dbg.krx.co.kr/svc/apis/idx/kospi_dd_trd"
headers = {"AUTH_KEY": "내가_발급받은_인증키"}
params = {"basDd": "20260715"}
res = requests.get(url, headers=headers, params=params)
data = res.json() # {"OutBlock_1": [ ... ]}
for row in data["OutBlock_1"]:
print(row)
응답은 JSON으로 오고, 실제 데이터는 보통 OutBlock_1이라는 목록 안에 들어 있습니다. 종목코드(ISU_CD), 종목명(ISU_NM), 종가(TDD_CLSPRC), 등락률(FLUC_RT) 같은 영어 필드 이름으로 담겨 오니, 처음엔 한 줄 출력해 보며 어떤 필드가 있는지 눈으로 확인하면 됩니다.
키를 넣었는데 401 Unauthorized가 뜬다면? 당황하지 마세요. 401은 "서버에는 잘 닿았지만 키가 아직 받아들여지지 않았다"는 뜻입니다. 코드나 주소가 틀린 게 아닙니다. 가장 흔한 원인은 ③에서 한 서비스 활용신청이 아직 '승인 대기'이거나, 신청 자체를 안 한 경우입니다. 마이페이지에서 인증키와 각 서비스 상태가 '승인'인지 '대기'인지 확인하세요. 키를 복사할 때 앞뒤 공백이나 줄바꿈이 딸려 오지 않았는지도 함께 살피면 좋습니다. 진짜 거부 사유가 궁금하면 오류를 그냥 넘기지 말고 응답 본문(response.text)을 출력해 보세요. KRX가 이유를 문장으로 적어 줍니다.
⑤ 알아 두면 덜 당황하는 제약들
무료지만 몇 가지 선이 있습니다. 하루 호출은 대체로 1만 회 이하, 데이터는 2010년 이후, 용도는 비상업 목적으로 정해져 있습니다. 그리고 앞서 말했듯 서비스마다 별도 신청이 필요하니, "키는 받았는데 데이터가 안 나온다" 싶으면 해당 서비스 이용 신청이 됐는지부터 확인하세요. 주말과 공휴일은 장이 열리지 않아 그날 날짜로는 빈 값이 옵니다.
⑥ 발급받은 인증키는 어디서 다시 보나요
키를 한 번 받고 나면 어디서 확인하는지 헷갈리기 쉽습니다. 로그인한 뒤 마이페이지의 'API 인증키' 메뉴로 들어가면 내 키를 다시 보거나 재발급할 수 있습니다. 키를 잊었거나 어딘가에 노출된 것 같으면, 망설이지 말고 재발급을 눌러 기존 키를 무효화하세요. 새 키가 나오면 예전 키는 더 이상 쓰이지 않습니다.
⑦ 딱 하나만 지키세요 — 인증키를 인공지능이나 공개된 곳에 넣지 마세요
여기부터가 이 글에서 가장 중요합니다. 인증키는 '나'를 증명하는 출입증이라, 남의 손에 들어가면 내 이름으로 쓰입니다. 그래서 규칙은 딱 하나입니다. 인증키를 사람이 볼 수 있는 곳이나 인공지능에 넣지 마세요.
인공지능에게 코드를 부탁할 때 특히 조심하세요. ChatGPT·Claude 같은 도구에게 "이 코드 만들어 줘"라고 할 때, 진짜 인증키를 대화창에 붙여넣지 마세요. 키 자리에는 "여기에_내_키" 같은 자리표시자를 넣어 코드를 받고, 실제 키는 내 컴퓨터에서만 채워 넣습니다.
넣으면 안 되는 곳을 콕 집으면 이렇습니다. 인공지능 대화창, 블로그와 깃허브, 남에게 공유되는 구글 코랩 노트북, 그리고 카톡·메일로 누군가에게 보내는 것까지 모두 위험합니다. 코드 안에 키를 직접 적기보다 '환경변수'에 넣어 두는 습관을 들이면, 코드를 남과 공유해도 키는 새어 나가지 않습니다.
"뭐 어때, 데이터 좀 받는 건데" 하고 가볍게 넘겼다가 생길 수 있는 일도 미리 알아 두면 좋습니다. 우선 내 키가 유출되면 남이 내 하루 호출 한도를 대신 써 버리고, 그 부정 사용 탓에 내 계정이 이용 정지될 수 있습니다. 또 KRX 데이터는 개인 참고·비상업 용도라, 이를 무단으로 재배포하거나 상업적으로 되팔면 이용약관 위반은 물론 데이터에 대한 권리 문제로 번질 수 있습니다. 특히 조심할 것은 증권사의 '브로커 API'(예: 한국투자증권)입니다. 여기서 주는 앱키·시크릿은 단순 조회를 넘어 실제 주문과 계좌 접근까지 가능한 열쇠라서, 유출되면 데이터 문제를 넘어 부정 거래와 자산 피해로 이어질 수 있고, 이는 형사 문제(예: 컴퓨터등사용사기)로 커질 수 있습니다.
정리하면 간단합니다. 인증키는 은행 비밀번호와 똑같이 다루세요. 화면을 캡처해 블로그에 올릴 때도 키 부분은 반드시 가리고요. (참고로 저는 법률 전문가가 아니므로, 구체적인 이용 범위와 책임은 KRX 이용약관을 확인하고 필요하면 전문가의 도움을 받으시길 권합니다.)
한 번 흐름을 익혀 두면, 매일 종가를 손으로 옮겨 적던 수고가 코드 몇 줄로 바뀝니다. 처음에는 코스피 지수 하나만 받아 보고, 익숙해지면 종목별 매매정보로 넓혀 가며 나만의 '오늘의 시장 요약'을 만들어 보시길 권합니다. 데이터를 직접 손에 쥐는 순간, 시장을 보는 눈이 한 뼘 넓어집니다.
참고
- KRX Data Marketplace 오픈API: https://openapi.krx.co.kr/
- KRX 정보데이터시스템(회원가입): https://data.krx.co.kr/
이 글은 공개된 자료를 바탕으로 한 안내이며, API 정책·제공 항목은 KRX 공지에 따라 바뀔 수 있습니다. 최신 내용은 공식 사이트에서 확인하시기 바랍니다.
'IT잡동사니좌충우돌경험기' 카테고리의 다른 글
| 오픈 카카오톡 개인 채팅만들기 (0) | 2026.05.17 |
|---|---|
| AI 튜터 만들기 — Google Gem 활용 가이드 (0) | 2026.03.15 |
| 글쓰기 루틴 만들기: 생명줄 같았던 아침 1시간을 블로그에 투자해봤다 (0) | 2025.07.03 |
| 나만의 다락방이 된 내 블로그 (0) | 2025.07.03 |
| AI 글처럼 보이지 않게 쓰는 법: 블로그 초보가 자주 하는 5가지 실수 (0) | 2025.07.03 |