클라이언트 (client · api)¶
KiwoomClient¶
KiwoomApi와 KiwoomAuth를 통합한 사용자 진입점 파사드입니다.
초기화 시 접근토큰을 자동으로 발급합니다.
kiwoompy.client
¶
KiwoomClient — KiwoomApi, KiwoomAuth, KiwoomQuery, KiwoomOrder를 통합한 사용자 진입점 파사드.
KiwoomClient
¶
키움증권 REST API 통합 클라이언트.
KiwoomApi(HTTP 통신·유량 제어), KiwoomAuth(토큰 발급·갱신),
KiwoomQuery(계좌·잔고·손익 조회), KiwoomOrder(주식·신용 주문)를
하나로 묶은 파사드 클래스. 초기화 시 접근토큰을 자동으로 발급한다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
env
|
Env
|
환경 구분. |
'demo'
|
appkey
|
str
|
키움증권 앱 키. |
''
|
secretkey
|
str
|
키움증권 시크릿 키. |
''
|
rps
|
float | None
|
초당 최대 요청 수. |
None
|
Examples:
기본 사용법:
from kiwoompy import KiwoomClient
client = KiwoomClient(
env="demo",
appkey="YOUR_APP_KEY",
secretkey="YOUR_APP_SECRET",
)
balance = client.query.get_account_balance()
print(balance.tot_evlt_amt) # 총평가금액
context manager:
with KiwoomClient(env="demo", appkey="...", secretkey="...") as client:
unfilled = client.query.get_unfilled_orders(all_stock_type="0", trade_type="0")
result = client.order.buy("005930", "1", trade_type="3") # 시장가 매수
Source code in src/kiwoompy/client.py
order
property
¶
query
property
¶
close
¶
refresh_token
¶
접근토큰을 재발급한다.
토큰 만료 전후로 명시적으로 갱신이 필요할 때 호출한다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
appkey
|
str
|
키움증권 앱 키. |
required |
secretkey
|
str
|
키움증권 시크릿 키. |
required |
Returns:
| Type | Description |
|---|---|
TokenResponse
|
새로 발급된 |
Source code in src/kiwoompy/client.py
KiwoomApi¶
HTTP 통신, 유량 제어, 자동 재시도를 담당하는 저수준 클라이언트입니다. 테스트 모킹이나 세밀한 제어가 필요할 때 직접 사용합니다.
kiwoompy.api
¶
REST 통신 계층 — base URL 관리, 토큰 보관, HTTP get/post 단일 진입점.
KiwoomApi
¶
키움 REST API HTTP 클라이언트.
모든 HTTP 호출은 이 클래스를 통해서만 이루어진다. 발급된 접근토큰을 내부에 보관하고, 이후 요청 헤더에 자동으로 포함한다.
유량 제어: 환경별 기본 RPS를 자동 적용한다.
- 실전(
real): 기본 20건/초 - 모의(
demo): 기본 2건/초
rps 파라미터로 직접 조정할 수 있다.
재시도: 네트워크 오류·타임아웃·5xx 서버 오류는 지수 백오프로 최대
_MAX_ATTEMPTS회 재시도한다. 4xx 인증 오류는 재시도하지 않는다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
env
|
Env
|
환경 구분. |
'demo'
|
rps
|
float | None
|
초당 최대 요청 수. |
None
|
Source code in src/kiwoompy/api.py
close
¶
get_auth_header
¶
현재 저장된 접근토큰으로 Authorization 헤더를 반환한다.
Returns:
| Type | Description |
|---|---|
dict[str, str]
|
|
Raises:
| Type | Description |
|---|---|
KiwoomAuthError
|
토큰이 아직 발급되지 않은 경우. |
Source code in src/kiwoompy/api.py
post
¶
JSON POST 요청을 보내고 응답 JSON을 반환한다.
유량 제어 후 요청을 전송한다. 네트워크 오류·타임아웃·5xx는 지수 백오프로
재시도한다. 4xx 응답(KiwoomAuthError)은 재시도하지 않고 즉시 raise한다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
엔드포인트 경로 (예: |
required |
body
|
dict
|
요청 본문 딕셔너리. |
required |
headers
|
dict[str, str] | None
|
추가 요청 헤더. |
None
|
Returns:
| Type | Description |
|---|---|
dict
|
응답 JSON을 파싱한 딕셔너리. |
Raises:
| Type | Description |
|---|---|
KiwoomAuthError
|
HTTP 4xx 응답 (인증 실패 등). 재시도 없음. |
KiwoomApiError
|
최대 재시도 후에도 5xx·네트워크·파싱 오류가 지속되는 경우. |