Skip to content

[버그]: 일부 엔드포인트가 모의투자를 지원하지 않음 #90

Description

@Xeonlink

빠른 문제 해결을 위해 다음을 확인했나요?

  • PyKis Issues에서 검색했지만 유사한 버그를 찾지 못했습니다.

버그 설명

return PyKis(
    id=env.KIS_ID,
    appkey=env.KIS_APP_KEY,
    secretkey=env.KIS_APP_SECRET,
    virtual_id=env.KIS_ID,
    virtual_appkey=env.KIS_APP_KEY,
    virtual_secretkey=env.KIS_APP_SECRET,
    keep_token=env.KIS_TOKEN_DIR,
)
(500) Internal Server Error
{"rt_cd":"1","msg1":"실전투자 도메인은 모의투자 앱키로 호출하실 수 없습니다.","msg_cd":"EGW02004"}

[  Request  ]: GET https://openapi.koreainvestment.com:9443/uapi/domestic-stock/v1/quotations/inquire-price
Headers: {'User-Agent': 'PyKis/2.1.6', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'tr_id': 'FHKST01010100', 'appkey': '***', 'appsecret': '***', 'Authorization': 'Bearer ***'}
Params: {'FID_COND_MRKT_DIV_CODE': ['J'], 'FID_INPUT_ISCD': ['005930']}

위와 같은 문제가 새롭게 발생했습니다. 확인해보니 요청하고 있는 주소가

Image
실전투자 -> openapi.koreainvestment.com:9443
모의투자 -> https://openapivts.koreainvestment.com:29443

주소가 달라야하는데, 잘못 처리되고 있는 것을 확인했습니다.
그래서 혹시나 모의투자가 비활성화되어있는게 아닌가 싶어서. 아래의 코드를 실험해보았습니다.

# self._kis is Pykis
print(self._kis.virtual) # True

하지만 결과는 True가 나왔습니다.

즉, 라이브러리 내부적으로 모의투자라는 것은 인지하고 있지만 요청을 보내는 주소가 잘못되어 있는 것으로 추정됩니다.

종속성 버전 문제 진단

Version: PyKis/2.1.6
Python: CPython 3.12.12
System: Darwin Darwin Kernel Version 25.5.0: Mon Apr 27 20:38:00 PDT 2026; root:xnu-12377.121.6~2/RELEASE_ARM64_T8103 [arm64]

Installed Packages: 
=========== requests ===========
Required: 2.32.3>=
Installed: 2.34.2
======= websocket-client =======
Required: 1.8.0>=
Installed: 1.9.0
========= cryptography =========
Required: 43.0.0>=
Installed: 49.0.0
=========== colorlog ===========
Required: 6.8.2>=
Installed: 6.10.1
================================

재현 방법

from pykis import PyKis

from src.shared.env import env


def main():
    _kis = PyKis(
        id=env.KIS_ID,
        appkey=env.KIS_APP_KEY,
        secretkey=env.KIS_APP_SECRET,
        virtual_id=env.KIS_ID,
        virtual_appkey=env.KIS_APP_KEY,
        virtual_secretkey=env.KIS_APP_SECRET,
        keep_token=env.KIS_TOKEN_DIR,
    )
    price = _kis.stock("005930").quote().close
    print(price)


if __name__ == "__main__":
    main()

추가 정보

No response

PR를 통해 라이브러리에 기여하고 싶으신가요?

  • 네, PR을 제출하여 도움을 주고 싶습니다!

Metadata

Metadata

Assignees

No one assigned

    Labels

    버그뭔가 작동하지 않습니다.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions