매 거래일 18:30 전후 갱신시세 기준일 2026-09-17 (확정 종가)정상 발행 09-18 18:10실시간 시세 아님

파이썬으로 한국 주식 데이터 받기 2026.09.18

한국주식데이터는 KOSPI·KOSDAQ·KONEX 전 종목의 확정 종가·재무·공시를 API 키도 회원가입도 승인 신청도 없이, 주소를 그대로 읽는 것만으로 쓸 수 있게 CSV·JSON 으로 공개합니다(2026.09.18 기준 2,787종목).

토큰 발급 절차가 없습니다. 아래 세 줄이 전부입니다.

전 종목 한 번에 — 세 줄

import pandas as pd
df = pd.read_csv("https://aikstockdata.com/data/public/quotes.csv", dtype={"종목코드": str})
print(len(df))  # 2,787

어떤 이름표(User-Agent)로 불러도 200 입니다(2026-09-16 확인). 예전에는 파이썬 기본 이름표(Python-urllib/*)를 앞단 봇 필터가 막았는데 그 설정을 껐습니다. 혹시 403 이 나면 기본값을 그대로 두지 말고 아무 이름이나 넣어 보세요: urllib.request.Request(url, headers={"User-Agent": "my-app"}).

판다스 없이 requests 로 받으셔도 같습니다.

import requests, pandas as pd, io
csv = requests.get("https://aikstockdata.com/data/public/quotes.csv").text
df = pd.read_csv(io.StringIO(csv), dtype={"종목코드": str})

열 14개의 뜻은 종목코드·종가 CSV 장에 표로 있습니다. 같은 내용의 quotes.json 도 있습니다.

판다스 없이, 표준 라이브러리만

import json, urllib.request
u = "https://aikstockdata.com/data/public/s/005930.json"
req = urllib.request.Request(u, headers={"User-Agent": "my-script/1.0"})
d = json.load(urllib.request.urlopen(req))
print(d["name_ko"], d["quote"]["close"], d["as_of"])
# 삼성전자 252500 20260917

종목별 주소는 /data/public/s/{종목코드}.json 입니다. 한 파일 안에 시세·재무·최근 공시·밸류에이션이 함께 들어 있어, 종목 하나를 보려고 여러 번 부를 일이 없습니다.

필드 뜻을 파일이 스스로 말합니다

종목 JSON 에는 field_definitions 가 들어 있습니다. 어느 열이 무슨 뜻인지 문서를 찾아다니지 않아도 됩니다 — 파일 안에 적혀 있습니다.

for k, v in d["field_definitions"]["quote"].items():
    print(k, "=", v)

같은 자리에 licensecitation 도 들어 있습니다. 인용 문구를 따로 만들 필요 없이 그대로 쓰시면 됩니다.

주식 시계열 데이터 — 종목마다 한 파일

종목별 일별 종가와 거래량을 한 파일로 드립니다(종목마다 최대 321거래일). 주소는 종목 JSON 바로 옆입니다 — /data/public/s/{종목코드}_history.json. 빈 날짜·없는 것(수정주가·분봉)까지 정리한 설명은 과거 주식 데이터 다운로드에 있습니다.

import requests, pandas as pd
u = "https://aikstockdata.com/data/public/s/005930_history.json"
h = requests.get(u).json()
df = pd.DataFrame(h["rows"], columns=h["columns"])
# date, close, volume

기간은 파일 안 period 에, 행 수는 count 에 적혀 있습니다. 시계열을 다루실 때 걸리기 쉬운 것 셋을 미리 적어 둡니다 — 파일 안 notes 에도 같은 내용이 있습니다.

시가총액은 이 파일에 없습니다 — 같은 종목의 상세 JSON 에 있는 quote.shares_outstanding(상장주식수)에 종가를 곱하시면 됩니다. 전 종목 한 줄짜리가 필요하시면 quotes.csvlstgStCnt(상장주식수) 열을 쓰십시오.

시장과 견주려면 — 지수도 같은 모양입니다

market_index_history.json 에 코스피·코스닥 지수의 일별 종가가 들어 있고, 같은 date 로 그대로 조인됩니다. 시장 대비 초과수익률을 직접 계산하실 수 있습니다.

i = requests.get(
    "https://aikstockdata.com/data/public/market_index_history.json").json()
ks = pd.DataFrame(i["series"]["코스피"]["rows"], columns=["date", "close"])
m = df.merge(ks, on="date", suffixes=("", "_kospi"))

이 지수 계열이 공시 뒤 주가 경로의 시장조정 기준선과 같은 값입니다 — 저희 집계를 그대로 재현해 보실 수 있습니다.

공시만 따로

u = "https://aikstockdata.com/data/public/disclosures.json"
req = urllib.request.Request(u, headers={"User-Agent": "my-script/1.0"})
d = json.load(urllib.request.urlopen(req))

종목 JSON 안의 recent_disclosures 로도 종목별 최근 공시를 볼 수 있고, 공시가 몇 시에 접수되는지는 공시 시계에 있습니다.

자주 걸리는 것 셋

세 가지 다 데이터를 잘못 읽는 게 아니라 뜻을 잘못 읽는 경우입니다
증상왜 그런가 어떻게 하나
종목코드 005930 이 5930 이 된다판다스가 숫자로 읽어 앞자리 0 을 지웁니다.read_csv 에 dtype={"종목코드": str} 를 주십시오.
값이 None 이거나 — 로 나온다0 이 아니라 '제공되지 않았다'는 뜻입니다. 원천에 없는 항목입니다.0 으로 채우지 마시고 결측으로 두십시오. 평균을 내면 숫자가 틀어집니다.
어제 숫자와 다르다이 파일은 전 영업일 확정 종가입니다. 장중 시세가 아닙니다.기준일은 basDt 열과 as_of 에 있습니다. 함께 기록하십시오.

403 이 나면 — 이름표를 하나 붙이십시오

2026-08-11 부터 2026-09-16 까지는 아래 두 줄이 403 이었습니다. 저희 서버 앞단의 보안 설정이 Python-urllib 라는 기본 이름표를 자동 도구로 보고 막았습니다 (error code: 1010). 데이터를 아낀 것이 아니라 저희가 못 푼 설정이었고, 2026-09-16 에 껐습니다 — 지금은 아래 두 줄도 그대로 됩니다.

# 2026-08-11~09-16 에는 이것이 403 이었다
pd.read_csv("https://aikstockdata.com/data/public/quotes.csv")
urllib.request.urlopen("https://aikstockdata.com/data/public/quotes.csv")

혹시 다시 403 을 받으시면 이름표를 아무거나 하나 주시면 됩니다. 값은 무엇이든 됩니다 — my-script/1.0 이든 스크립트 이름이든 상관없습니다. requests 를 쓰시면 라이브러리가 알아서 자기 이름표를 붙이므로 아무것도 안 하셔도 됩니다. 그리고 그런 일이 생기면 알려 주십시오 — 저희 쪽 설정이지 이용자 잘못이 아닙니다.

얼마나 자주 불러도 되나

파일은 매 거래일 저녁 6시 30분 전후(KST)에 한 번 갱신됩니다. 그러니 하루 한 번이면 충분합니다 — 1분마다 부르셔도 같은 파일입니다. 받아서 로컬에 두고 쓰시는 편이 빠르고, 저희 쪽에도 부담이 없습니다. 요청 수 제한도, 키 발급도 없습니다. 쓰신 뒤에 출처만 적어 주시면 그것으로 충분합니다.

pykrx 와 함께 쓰기 — 무엇이 다른가

pykrx 는 한국거래소(KRX) 통계를 파이썬으로 받는 라이브러리로, 수십 년치 일봉과 투자자별 매매 같은 긴 시계열에 강합니다. 대신 DART 공시는 다루지 않습니다. 이 사이트는 반대로 확정 종가와 DART 공시·실적을 하루 한 번 정리한 파일을 드립니다 — 겹치지 않으므로 같이 쓰시면 됩니다. 실제로 돌려 확인한 예제와 역할 비교표는 AI 연동 — 다른 도구와 함께 쓰기에 있습니다.

AI 도구에 바로 붙이기

클로드·커서 같은 도구라면 파이썬을 쓰지 않고 MCP 서버로 바로 연결할 수 있습니다. 붙이는 법과 도구 목록은 AI 연동에 있습니다. 영문 문서는 MCP for Korean stocks 입니다.

원천은 금융위원회 공공데이터포털(한국거래소 확정 종가)과 금융감독원 전자공시(DART)입니다. 출처를 표기하면 비영리 목적으로 인용·이용할 수 있고, 상업적 재배포는 허용하지 않습니다. 자세한 것은 인용 방법에 있습니다.

이 페이지의 모든 수치·표는 실시간이 아닌 2026-09-17 종가 기준 스냅샷입니다(2026.09.18 수집). 인용·분석 전 기준일을 확인하세요.

시세·공시·랭킹 데이터를 공공데이터(금융위원회·금융감독원 DART) 가공 JSON으로 무료 공개합니다 — AI로 읽기에서 안내. 증권사 원천 데이터는 약관에 따라 제공하지 않습니다.