승돌 쓰다

KRX Open API를 다양하게 제공 해보자 (krxon 모듈)

seungdols 2026. 3. 14. 01:10
사건의 발달
  • KRX 거래소쪽의 선물 지수 데이터 가져오고 싶었다.

 
  • 아, API 문서 관리 진짜 장난하나.
  • 대체 어느 시절의 개발 명세서 .docx 로 관리 하냐. (swagger 나 apidocs 라도 붙이던가.)

그래서 불만만 말하면 되냐? 안됩니다. 그래서 만들었습니다.

KRX(한국 거래소) API의 공개 된 모든 엔드포인트, 요청, 응답을 정리 했습니다.
  • API 키 신청 필요 (관리자 승인 필수)
  • 필요한 API 요청 필요 (관리자 승인 필수)

CLI 지원 

Homebrew (macOS/Linux)

첫 설치 시 한 번만 tap 하세요:
brew tap seungdols/krxon https://github.com/seungdols/krxon
그 다음부터는 아래만 실행하면 됩니다:
brew install krxon

Windows (winget)

winget install seungdols.krxon

Prerequisites

Setup

# API 키 저장 (대화형)
krxon init

# 또는 환경변수로 설정
export KRX_API_KEY=your_key_here

CLI Usage

fetch 접두어는 선택 사항입니다.
  • krxon index ... 와 krxon fetch index ... 는 동일하게 동작합니다.
  • krxon stock ... 와 krxon fetch stock ... 는 동일하게 동작합니다.

지수 데이터 조회

krxon index krx --date 20250301
krxon index kospi --date 20250301
krxon index kosdaq --date 20250301
krxon index derivatives --date 20250301

주식 데이터 조회

krxon stock kospi --date 20250301
krxon stock kosdaq --date 20250301
krxon stock kospi-info --date 20250301
krxon stock kosdaq-info --date 20250301

# ISIN 코드로 특정 종목 필터링
krxon stock kospi --date 20250301 --isin KR7005930003

ETP 데이터 조회

krxon etp etf --date 20250301
krxon etp etn --date 20250301

# ISIN 코드로 필터링
krxon etp etf --date 20250301 --isin KR7069500007

파생상품 데이터 조회

# 선물
krxon derivatives futures --date 20250301
krxon derivatives stock-futures-kospi --date 20250301
krxon derivatives stock-futures-kosdaq --date 20250301

# 옵션
krxon derivatives options --date 20250301
krxon derivatives stock-options-kospi --date 20250301
krxon derivatives stock-options-kosdaq --date 20250301

# 테이블 출력
krxon derivatives futures --date 20250301 --output table

cli sample

 
python / typescript 모듈도 한번 감싸서 배포 하게 되어, 같이 적용 하게 되었습니다. 
혹시나 필요하시면, 아래를 통해 활용 하시면 됩니다.

Python SDK (PyPI)

pip install krxon

TypeScript SDK (npm)

npm install @krxon/krx

SDK Usage

Python

from krx import KrxClient

client = KrxClient(api_key="your_key")
records = client.get_kospi_stock_daily(basDd="20250301")
for r in records:
    print(r["ISU_NM"], r["TDD_CLSPRC"])

TypeScript

import { KrxClient } from "@krxon/krx";

const client = new KrxClient({ apiKey: "your_key" });
const records = await client.getKospiStockDaily("20250301");
records.forEach((r) => console.log(r.ISU_NM, r.TDD_CLSPRC));

혹시나, 오류가 생길 경우, 문의 해주시면 바로 수정 하도록 하겠습니다.

 

 

반응형