2026.01.05 - [AI&개발&데이터분석/기타개발] - 한국거래소 Data Marketplace OPEN API 사용해보기! - 권한신청하기!
한국거래소 Data Marketplace OPEN API 사용해보기! - 권한신청하기!
오늘은한국거래소 Data Marketplace의 OPEN API 키를 신청하고 사용해보겟습니다~! 계정이 필요하기에 먼저 간단히 회원가입을 해줍니다 (네이버 카카오를 통한 소셜 가입이 가능해요!)https://openapi.krx.c
drfirst.tistory.com
API 건별로의 권한신청까지 완료되었다면,
이제는 데이터를 불러와볼수 있습니다!!
이번 포스팅에서는 KRX의 지수정보를 불러와보겠습니다!!
우선 기본 package과 API KEY를 불러옵니다!
import requests
import pandas as pd
API_KEY = "{나의키 입력하기}"
이제! 코스피 지수에 대한 정보를 알아볼까요!?
# 명세서에 제공된 신규 엔드포인트 URL
url = "https://data-dbg.krx.co.kr/svc/apis/idx/kospi_dd_trd"
# 2. 요청 파라미터 (명세서 1.3.1 InBlock_1 참조)
params = {
"basDd": "20260102" # 예: "20240520"
}
# 3. HTTP 헤더 설정
headers = {
"AUTH_KEY": API_KEY,
}
# 4. GET 요청
response = requests.get(url, params=params, headers=headers)
print(response.status_code)
if response.status_code == 200:
res_data = response.json()
# 5. 응답 데이터 추출 (명세서 1.6 response Sample 참조)
# OutBlock_1 키 안에 데이터 리스트가 담겨 있음
out_block = res_data.get("OutBlock_1", [])
# 데이터프레임으로 변환하여 가독성 높이기
df = pd.DataFrame(out_block)
df
로하면
아래이미지와 같이 해당일자의 코스피 관련 모든 지수를 볼 수 있습니다

이번엔 target URL 만 url = "https://data-dbg.krx.co.kr/svc/apis/idx/kosdaq_dd_trd" 로 바꾸어서
# 명세서에 제공된 신규 엔드포인트 URL
url = "https://data-dbg.krx.co.kr/svc/apis/idx/kosdaq_dd_trd"
# 2. 요청 파라미터 (명세서 1.3.1 InBlock_1 참조)
params = {
"basDd": "20260102" # 예: "20240520"
}
# 3. HTTP 헤더 설정
headers = {
"AUTH_KEY": API_KEY,
}
# 4. GET 요청
response = requests.get(url, params=params, headers=headers)
print(response.status_code)
if response.status_code == 200:
res_data = response.json()
# 5. 응답 데이터 추출 (명세서 1.6 response Sample 참조)
# OutBlock_1 키 안에 데이터 리스트가 담겨 있음
out_block = res_data.get("OutBlock_1", [])
# 데이터프레임으로 변환하여 가독성 높이기
df = pd.DataFrame(out_block)
df
해보면!!

이렇게 다양한 코스닥 지수들을 볼 수 있지요~~
그럼!!
마지막으로 2025년 12개월의 월초 지수를 loop으로 수집해보면!!
import requests
import pandas as pd
from datetime import datetime, timedelta
# 1. API 설정
URL = "https://data-dbg.krx.co.kr/svc/apis/idx/kospi_dd_trd"
API_KEY = "{나의키}"
headers = {"AUTH_KEY": API_KEY}
def get_first_working_day_data(year, month):
"""특정 년/월의 첫 번째 영업일 데이터를 찾아 반환"""
# 해당 월의 1일부터 시작
current_date = datetime(year, month, 1)
# 최대 10일까지만 시도 (공휴일이 길 경우 대비)
for day_candidate in range(1,10):
date_str = datetime(year, month, day_candidate).strftime("%Y%m%d")
params = {"basDd": date_str}
response = requests.get(URL, params=params, headers=headers)
if response.status_code == 200:
res_data = response.json()
out_block = res_data.get("OutBlock_1", [])
# 데이터가 존재하면(영업일이면) 리스트 반환
# 데이터가 존재하면(영업일이면) 리스트 반환
if len(out_block)>0:
return out_block
print(f"[{month}월 성공] {date_str} 데이터를 가져왔습니다.")
else:
print(f"{month}월 {day_candidate}일에 정보없음")
# 데이터가 없으면 다음날로 이동
current_date += timedelta(days=1)
return None
# 2. 1월부터 12월까지 루프 실행
monthly_data_list = []
print("2025년 월별 첫 영업일 데이터 수집 시작...")
for month in range(1, 13):
data = get_first_working_day_data(2025, month)
if data:
# 데이터가 리스트 형태이므로 확장(extend)
monthly_data_list.extend(data)
# 3. 데이터프레임 생성 및 결과 확인
df_final = pd.DataFrame(monthly_data_list)
df_final = df_final.sort_values(by='BAS_DD')
print("\n--- 수집 완료 (12개월치) ---")
df_final
이렇게 예쁜 표 나오고~~

이런식으로 차트도 만들수 있습니다~~

'AI&개발&데이터분석 > 기타개발' 카테고리의 다른 글
| 개발자를 위한 GEO 세팅 가이드!! (SEO와 비교해보며!) (1) | 2026.02.04 |
|---|---|
| [GEO알아보기] SEO vs GEO: AI 검색 시대의 새로운 최적화 전략 (0) | 2026.02.03 |
| 한국거래소 Data Marketplace OPEN API 사용해보기! - 권한신청하기! (1) | 2026.01.05 |
| cloudflare 다운~!? (chatgpt 에러 - Please unblock challenges.cloudflare.com to proceed.) (0) | 2025.11.18 |
| 미밴드 프로9 중국 내수용 한글화 하기! (4) | 2025.11.15 |
댓글