Skip to main content

krx-openapi

check PyPI Python License

English | 한국어

한국거래소 KRX Open API의 일별 시장 데이터를 읽어옵니다.

지수(KRX·KOSPI·KOSDAQ·채권·파생), 주식 일별매매정보와 종목기본정보, ETF·ETN·ELW, 채권(국채·일반·소액), 선물·옵션, 석유·금·배출권, 그리고 ESG까지 — 공식 API가 제공하는 7개 서비스, 31개 항목을 다룹니다.

1. 설치

pip install krx-openapi

무료 인증키는 https://openapi.krx.co.kr 에서 발급받습니다. 인증키만으로는 호출이 안 되고, '서비스 이용' 메뉴에서 사용할 개별 API를 신청하고 승인을 받아야 합니다.

config 파일 (모든 OS 공통, 권장) — ~/.config/krx-openapi/credentials.json (~는 홈 폴더 — Linux /home/이름, macOS /Users/이름, Windows C:\Users\이름):

{ "KRX_API_KEY": "발급받은-키" }

환경변수 — macOS·Linux: export KRX_API_KEY=... / Windows PowerShell: setx KRX_API_KEY "...".

2. 빠른 시작

from krx_openapi import KRX

krx = KRX(api_key="your-key")                   # 또는 KRX() — 저장해둔 키(env/config)를 자동으로 찾음

rows = krx.index.kospi("20200414")              # KOSPI 시리즈 지수, 하루치

krx.stock.daily("20200414", market="KOSPI")     # KOSPI 전종목 일별매매정보
krx.etp.etf("20200414")                         # ETF 일별매매정보

날짜(date)는 YYYYMMDD 거래일입니다. 반환은 dict의 목록(list)이라, 표(DataFrame)로 한 줄에 바뀝니다 (pandas는 필수가 아닙니다).

# pandas
import pandas as pd
pd.DataFrame(rows)

# polars
import polars as pl
pl.DataFrame(rows)

3. API

접근자 서비스
krx.index KRX·KOSPI·KOSDAQ 시리즈, 채권지수, 파생상품지수 일별시세
krx.stock KOSPI/KOSDAQ/KONEX 일별매매·종목기본정보, 신주인수권증권·증서
krx.etp ETF·ETN·ELW 일별매매정보
krx.bond 국채전문·일반·소액채권 일별매매정보
krx.derivatives 선물·옵션·주식선물·주식옵션 일별매매정보
krx.commodity 석유·금·배출권 일별매매정보
krx.esg 사회책임투자채권·ESG 지수·ESG 증권상품

전체 메서드 (모든 인자 date = YYYYMMDD 거래일):

KRX()
├─ index                                       # 지수
│   ├─ .krx(date)                              KRX 시리즈 일별시세
│   ├─ .kospi(date)                            KOSPI 시리즈 일별시세
│   ├─ .kosdaq(date)                           KOSDAQ 시리즈 일별시세
│   ├─ .bond(date)                             채권지수 시세
│   └─ .derivatives(date)                      파생상품지수 시세
├─ stock                                       # 주식
│   ├─ .info(date, market="KOSPI")             종목기본정보 (KOSPI/KOSDAQ/KONEX)
│   ├─ .daily(date, market="KOSPI")            일별매매정보 (KOSPI/KOSDAQ/KONEX)
│   ├─ .warrant(date)                          신주인수권증권
│   └─ .right(date)                            신주인수권증서
├─ etp                                         # 증권상품
│   ├─ .etf(date)                              ETF
│   ├─ .etn(date)                              ETN
│   └─ .elw(date)                              ELW
├─ bond                                        # 채권
│   ├─ .treasury(date)                         국채전문유통시장
│   ├─ .general(date)                          일반채권시장
│   └─ .small_lot(date)                        소액채권시장
├─ derivatives                                 # 파생상품
│   ├─ .futures(date)                          선물 (주식선물外)
│   ├─ .options(date)                          옵션 (주식옵션外)
│   ├─ .stock_futures(date, market="KOSPI")    주식선물 (KOSPI/KOSDAQ)
│   └─ .stock_options(date, market="KOSPI")    주식옵션 (KOSPI/KOSDAQ)
├─ commodity                                   # 일반상품
│   ├─ .oil(date)                              석유시장
│   ├─ .gold(date)                             금시장
│   └─ .emissions(date)                        배출권시장
└─ esg                                         # ESG
    ├─ .sri_bond(date)                         사회책임투자채권
    ├─ .index(date)                            ESG 지수
    └─ .etp(date)                              ESG 증권상품

어떤 서비스에 어떤 필드가 오는지는 네트워크 없이 오프라인으로 확인할 수 있습니다.

from krx_openapi import catalog

catalog.groups()                  # ['index', 'stock', ...]
catalog.methods("bond")           # ['treasury', 'general', 'small_lot']
catalog.fields("index", "kospi")  # 이 서비스가 돌려주는 필드명 (컬럼)

4. 커맨드라인

명령줄은 세 명령 list · fields · fetch를 씁니다. list·fields는 오프라인(키 불필요)으로 뭐가 있고 어떤 컬럼이 오는지 훑고, fetch는 하루치 데이터를 가져옵니다 — krx fetch <그룹> <메서드> <날짜> (예: krx fetch index kospi 20200414 = krx.index.kospi("20200414")). 명령은 krx 또는 python -m krx_openapi로 실행하고, 어디에 --json을 붙이면 JSON으로 나옵니다.

# 무슨 서비스가 있나 / 어떤 컬럼이 오나 (오프라인, 키 불필요)
krx list                      # 전체 그룹·메서드
krx list stock                # 한 그룹만
krx fields index kospi        # 이 서비스가 돌려주는 컬럼

# 데이터 조회 (KRX_API_KEY 필요)
krx fetch index kospi 20200414
krx fetch stock daily 20200414 --market KOSDAQ
krx fetch bond treasury 20200414

5. AI 코딩 에이전트에서 사용

  • 이 저장소는 Claude Code·Codex용 플러그인 마켓플레이스도 겸합니다.
  • list·fields·fetch 스킬을 제공하며, 각각 같은 이름의 krx 명령을 호출합니다 (krx list, krx fields <그룹> <이름>, krx fetch <그룹> <이름> <날짜>).
  • 먼저 위에서 패키지를 설치하세요 (list·fields는 키 없이, fetch는 API 키가 필요합니다).

5.1 Claude Code

Claude Code 채팅창에서 마켓플레이스를 추가하고 설치합니다:

/plugin marketplace add seokhoonj/krx-openapi
/plugin install krx@krx-openapi

설치 후 평범하게 물어보거나("코스피 전종목 시세 가져와", "무슨 KRX 서비스 있어"), 스킬을 직접 부르세요 — /krx:list, /krx:fields index kospi, /krx:fetch index kospi 20200414.

5.2 Codex

터미널에서 마켓플레이스를 추가하고 설치합니다:

codex plugin marketplace add seokhoonj/krx-openapi
codex plugin add krx@krx-openapi

플러그인으로 설치하지 않고 쓰려면, 스킬을 각 에이전트의 스킬 디렉터리에 symlink합니다.

for s in list fields fetch; do
  ln -s "$PWD/plugins/krx/skills/$s" ~/.claude/skills/$s   # Claude Code → /$s
  ln -s "$PWD/plugins/krx/skills/$s" ~/.codex/skills/$s    # Codex → $krx:$s
done

Claude Code는 바로 인식하고, Codex는 재시작해야 로딩됩니다.

6. 주의사항

  • 일별 데이터만. 당일·실시간·장중 데이터는 없습니다. 전일 데이터가 다음 영업일 오전 8시에 갱신됩니다. 주말·공휴일, 갱신 전 조회는 빈 결과입니다.
  • 호출 한도: 인증키당 하루 10,000회(IP 아님, 자정 리셋). 초과 시 KRXRateLimitError(HTTP 429). 과도한 호출은 IP 차단 사유가 됩니다.
  • 단순주가(원주가)만 제공합니다. 수정주가는 없습니다.
  • API 미제공 데이터: 투자자별 거래실적, 외국인 보유량, 공매도, PER/PBR, ETF 구성종목(PDF), 지정내역(투자경고·거래정지·관리종목) 등은 제공되지 않습니다.
  • 이용약관: 비상업적 목적(개인 연구·투자)만 허용됩니다. 가공하여 표출할 때는 **출처 "한국거래소 통계정보"**를 표기하고, 원천 데이터를 제3자에게 재배포할 수 없습니다. 자세한 내용은 KRX Open API 이용약관을 확인하세요.

7. 에러

모든 에러는 KRXError를 상속합니다.

예외 언제
KRXConfigError 인증키를 찾을 수 없음 (요청 전)
KRXAuthError 키 거부 또는 미신청 서비스 (respCode 401)
KRXRateLimitError 일일 호출 한도 초과 (HTTP 429)
KRXResponseError 그 밖의 벤더 에러 (respCode)
KRXNetworkError 전송 실패·비-JSON 응답·기타 HTTP 에러

잘못된 market 코드는 ValueError, 모르는 서비스 이름은 KeyError입니다.

8. 라이선스

MIT. 이 패키지의 코드에 대한 라이선스이며, KRX 데이터 자체의 이용 조건은 위 KRX 이용약관을 따릅니다.

Metadata

Release files for krx-openapi 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for krx-openapi 0.2.1
File Size Uploaded
krx_openapi-0.2.1.tar.gz 41.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for krx-openapi 0.2.1
File Interpreter ABI Platform
krx_openapi-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 68.4 kB

Release files / krx_openapi-0.2.1.tar.gz

Download URL krx_openapi-0.2.1.tar.gz
Size 41.6 kB
Tags Source
SHA-256 checksum
How to use checksums
678cdeccb79e627622d484f360f30e6350a4b408ad38fe8104d3abcb710686cc
BLAKE2b-256 checksum
How to use checksums
d639056adc0f5b6e79b2aaa1041ab29f299ad94a53d8a4179834d1364229ef22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / krx_openapi-0.2.1-py3-none-any.whl

Download URL krx_openapi-0.2.1-py3-none-any.whl
Size 26.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6dd26824db0dde8d7f49de54dbe8f21c3f24e8b3bfdad8c4f50b7bdbdd5cfc27
BLAKE2b-256 checksum
How to use checksums
58afde25c16e80496f3a9a2ef4d7b2ce887eb906064ad05e3dca0d89f79f5590
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page