from kiwoom_rest_api.core.base_api import KiwoomBaseAPI from typing import Union, Dict, Any, Awaitable class RankInfo(KiwoomBaseAPI): """한국 주식 랭크 정보 API를 제공하는 클래스""" def __init__( self, base_url: str = None, token_manager=None, use_async: bool = False, resource_url: str = "/api/dostk/rkinfo" ): """ RankInfo 클래스 초기화 Args: base_url (str, optional): API 기본 URL token_manager: 토큰 관리자 객체 use_async (bool): 비동기 클라이언트 사용 여부 (기본값: False) """ super().__init__( base_url=base_url, token_manager=token_manager, use_async=use_async, resource_url=resource_url ) def top_order_book_volume_request_ka10020( self, mrkt_tp: str, sort_tp: str, trde_qty_tp: str, stk_cnd: str, crd_cnd: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """호가잔량상위를 조회합니다. Args: mrkt_tp (str): 시장구분 (001:코스피, 101:코스닥) sort_tp (str): 정렬구분 - 1: 순매수잔량순 - 2: 순매도잔량순 - 3: 매수비율순 - 4: 매도비율순 trde_qty_tp (str): 거래량구분 - 0000: 장시작전(0주이상) - 0010: 만주이상 - 0050: 5만주이상 - 00100: 10만주이상 stk_cnd (str): 종목조건 - 0: 전체조회 - 1: 관리종목제외 - 5: 증100제외 - 6: 증100만보기 - 7: 증40만보기 - 8: 증30만보기 - 9: 증20만보기 crd_cnd (str): 신용조건 - 0: 전체조회 - 1: 신용융자A군 - 2: 신용융자B군 - 3: 신용융자C군 - 4: 신용융자D군 - 9: 신용융자전체 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 호가잔량상위 데이터 { "bid_req_upper": [ # 호가잔량상위 { "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "trde_qty": str, # 거래량 "tot_sel_req": str, # 총매도잔량 "tot_buy_req": str, # 총매수잔량 "netprps_req": str, # 순매수잔량 "buy_rt": str, # 매수비율 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_order_book_volume_request_ka10020( ... mrkt_tp="001", ... sort_tp="1", ... trde_qty_tp="0000", ... stk_cnd="0", ... crd_cnd="0", ... stex_tp="1" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10020", } data = { "mrkt_tp": mrkt_tp, "sort_tp": sort_tp, "trde_qty_tp": trde_qty_tp, "stk_cnd": stk_cnd, "crd_cnd": crd_cnd, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def sudden_increase_order_book_volume_request_ka10021( self, mrkt_tp: str, trde_tp: str, sort_tp: str, tm_tp: str, trde_qty_tp: str, stk_cnd: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """호가잔량급증을 조회합니다. Args: mrkt_tp (str): 시장구분 (001:코스피, 101:코스닥) trde_tp (str): 매매구분 - 1: 매수잔량 - 2: 매도잔량 sort_tp (str): 정렬구분 - 1: 급증량 - 2: 급증률 tm_tp (str): 시간구분 (분 입력) trde_qty_tp (str): 거래량구분 - 1: 천주이상 - 5: 5천주이상 - 10: 만주이상 - 50: 5만주이상 - 100: 10만주이상 stk_cnd (str): 종목조건 - 0: 전체조회 - 1: 관리종목제외 - 5: 증100제외 - 6: 증100만보기 - 7: 증40만보기 - 8: 증30만보기 - 9: 증20만보기 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 호가잔량급증 데이터 { "bid_req_sdnin": [ # 호가잔량급증 { "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "int": str, # 기준률 "now": str, # 현재 "sdnin_qty": str, # 급증수량 "sdnin_rt": str, # 급증률 "tot_buy_qty": str, # 총매수량 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.sudden_increase_order_book_volume_request_ka10021( ... mrkt_tp="001", ... trde_tp="1", ... sort_tp="1", ... tm_tp="30", ... trde_qty_tp="1", ... stk_cnd="0", ... stex_tp="3" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10021", } data = { "mrkt_tp": mrkt_tp, "trde_tp": trde_tp, "sort_tp": sort_tp, "tm_tp": tm_tp, "trde_qty_tp": trde_qty_tp, "stk_cnd": stk_cnd, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def sudden_increase_order_ratio_request_ka10022( self, mrkt_tp: str, rt_tp: str, tm_tp: str, trde_qty_tp: str, stk_cnd: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """잔량율급증을 조회합니다. Args: mrkt_tp (str): 시장구분 (001:코스피, 101:코스닥) rt_tp (str): 비율구분 - 1: 매수/매도비율 - 2: 매도/매수비율 tm_tp (str): 시간구분 (분 입력) trde_qty_tp (str): 거래량구분 - 5: 5천주이상 - 10: 만주이상 - 50: 5만주이상 - 100: 10만주이상 stk_cnd (str): 종목조건 - 0: 전체조회 - 1: 관리종목제외 - 5: 증100제외 - 6: 증100만보기 - 7: 증40만보기 - 8: 증30만보기 - 9: 증20만보기 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 잔량율급증 데이터 { "req_rt_sdnin": [ # 잔량율급증 { "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "int": str, # 기준률 "now_rt": str, # 현재비율 "sdnin_rt": str, # 급증률 "tot_sel_req": str, # 총매도잔량 "tot_buy_req": str, # 총매수잔량 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.sudden_increase_order_ratio_request_ka10022( ... mrkt_tp="001", ... rt_tp="1", ... tm_tp="1", ... trde_qty_tp="5", ... stk_cnd="0", ... stex_tp="3" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10022", } data = { "mrkt_tp": mrkt_tp, "rt_tp": rt_tp, "tm_tp": tm_tp, "trde_qty_tp": trde_qty_tp, "stk_cnd": stk_cnd, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def sudden_increase_trading_volume_request_ka10023( self, mrkt_tp: str, sort_tp: str, tm_tp: str, trde_qty_tp: str, stk_cnd: str, pric_tp: str, stex_tp: str, tm: str = "", cont_yn: str = "N", next_key: str = "", ) -> dict: """거래량급증을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 sort_tp (str): 정렬구분 - 1: 급증량 - 2: 급증률 - 3: 급감량 - 4: 급감률 tm_tp (str): 시간구분 - 1: 분 - 2: 전일 trde_qty_tp (str): 거래량구분 - 5: 5천주이상 - 10: 만주이상 - 50: 5만주이상 - 100: 10만주이상 - 200: 20만주이상 - 300: 30만주이상 - 500: 50만주이상 - 1000: 백만주이상 stk_cnd (str): 종목조건 - 0: 전체조회 - 1: 관리종목제외 - 3: 우선주제외 - 11: 정리매매종목제외 - 4: 관리종목,우선주제외 - 5: 증100제외 - 6: 증100만보기 - 13: 증60만보기 - 12: 증50만보기 - 7: 증40만보기 - 8: 증30만보기 - 9: 증20만보기 - 17: ETN제외 - 14: ETF제외 - 18: ETF+ETN제외 - 15: 스팩제외 - 20: ETF+ETN+스팩제외 pric_tp (str): 가격구분 - 0: 전체조회 - 2: 5만원이상 - 5: 1만원이상 - 6: 5천원이상 - 8: 1천원이상 - 9: 10만원이상 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) tm (str, optional): 시간(분 입력). Defaults to "". cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 거래량급증 데이터 { "trde_qty_sdnin": [ # 거래량급증 { "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "flu_rt": str, # 등락률 "prev_trde_qty": str, # 이전거래량 "now_trde_qty": str, # 현재거래량 "sdnin_qty": str, # 급증량 "sdnin_rt": str, # 급증률 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.sudden_increase_trading_volume_request_ka10023( ... mrkt_tp="000", ... sort_tp="1", ... tm_tp="2", ... trde_qty_tp="5", ... stk_cnd="0", ... pric_tp="0", ... stex_tp="3" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10023", } data = { "mrkt_tp": mrkt_tp, "sort_tp": sort_tp, "tm_tp": tm_tp, "trde_qty_tp": trde_qty_tp, "tm": tm, "stk_cnd": stk_cnd, "pric_tp": pric_tp, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def top_day_over_day_change_rate_request_ka10027( self, mrkt_tp: str, sort_tp: str, trde_qty_cnd: str, stk_cnd: str, crd_cnd: str, updown_incls: str, pric_cnd: str, trde_prica_cnd: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """전일대비 등락률 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 sort_tp (str): 정렬구분 - 1: 상승률 - 2: 상승폭 - 3: 하락률 - 4: 하락폭 - 5: 보합 trde_qty_cnd (str): 거래량조건 - 0000: 전체조회 - 0010: 만주이상 - 0050: 5만주이상 - 0100: 10만주이상 - 0150: 15만주이상 - 0200: 20만주이상 - 0300: 30만주이상 - 0500: 50만주이상 - 1000: 백만주이상 stk_cnd (str): 종목조건 - 0: 전체조회 - 1: 관리종목제외 - 4: 우선주+관리주제외 - 3: 우선주제외 - 5: 증100제외 - 6: 증100만보기 - 7: 증40만보기 - 8: 증30만보기 - 9: 증20만보기 - 11: 정리매매종목제외 - 12: 증50만보기 - 13: 증60만보기 - 14: ETF제외 - 15: 스펙제외 - 16: ETF+ETN제외 crd_cnd (str): 신용조건 - 0: 전체조회 - 1: 신용융자A군 - 2: 신용융자B군 - 3: 신용융자C군 - 4: 신용융자D군 - 9: 신용융자전체 updown_incls (str): 상하한포함 - 0: 불 포함 - 1: 포함 pric_cnd (str): 가격조건 - 0: 전체조회 - 1: 1천원미만 - 2: 1천원~2천원 - 3: 2천원~5천원 - 4: 5천원~1만원 - 5: 1만원이상 - 8: 1천원이상 - 10: 1만원미만 trde_prica_cnd (str): 거래대금조건 - 0: 전체조회 - 3: 3천만원이상 - 5: 5천만원이상 - 10: 1억원이상 - 30: 3억원이상 - 50: 5억원이상 - 100: 10억원이상 - 300: 30억원이상 - 500: 50억원이상 - 1000: 100억원이상 - 3000: 300억원이상 - 5000: 500억원이상 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 전일대비 등락률 상위 종목 데이터 { "pred_pre_flu_rt_upper": [ # 전일대비등락률상위 { "stk_cls": str, # 종목분류 "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "flu_rt": str, # 등락률 "sel_req": str, # 매도잔량 "buy_req": str, # 매수잔량 "now_trde_qty": str, # 현재거래량 "cntr_str": str, # 체결강도 "cnt": str, # 횟수 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_day_over_day_change_rate_request_ka10027( ... mrkt_tp="000", ... sort_tp="1", ... trde_qty_cnd="0000", ... stk_cnd="0", ... crd_cnd="0", ... updown_incls="1", ... pric_cnd="0", ... trde_prica_cnd="0", ... stex_tp="3" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10027", } data = { "mrkt_tp": mrkt_tp, "sort_tp": sort_tp, "trde_qty_cnd": trde_qty_cnd, "stk_cnd": stk_cnd, "crd_cnd": crd_cnd, "updown_incls": updown_incls, "pric_cnd": pric_cnd, "trde_prica_cnd": trde_prica_cnd, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def top_expected_execution_change_rate_request_ka10029( self, mrkt_tp: str, sort_tp: str, trde_qty_cnd: str, stk_cnd: str, crd_cnd: str, pric_cnd: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """예상체결 등락률 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 sort_tp (str): 정렬구분 - 1: 상승률 - 2: 상승폭 - 3: 보합 - 4: 하락률 - 5: 하락폭 - 6: 체결량 - 7: 상한 - 8: 하한 trde_qty_cnd (str): 거래량조건 - 0: 전체조회 - 1: 천주이상 - 3: 3천주 - 5: 5천주 - 10: 만주이상 - 50: 5만주이상 - 100: 10만주이상 stk_cnd (str): 종목조건 - 0: 전체조회 - 1: 관리종목제외 - 3: 우선주제외 - 4: 관리종목,우선주제외 - 5: 증100제외 - 6: 증100만보기 - 7: 증40만보기 - 8: 증30만보기 - 9: 증20만보기 - 11: 정리매매종목제외 - 12: 증50만보기 - 13: 증60만보기 - 14: ETF제외 - 15: 스팩제외 - 16: ETF+ETN제외 crd_cnd (str): 신용조건 - 0: 전체조회 - 1: 신용융자A군 - 2: 신용융자B군 - 3: 신용융자C군 - 4: 신용융자D군 - 5: 신용한도초과제외 - 8: 신용대주 - 9: 신용융자전체 pric_cnd (str): 가격조건 - 0: 전체조회 - 1: 1천원미만 - 2: 1천원~2천원 - 3: 2천원~5천원 - 4: 5천원~1만원 - 5: 1만원이상 - 8: 1천원이상 - 10: 1만원미만 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 예상체결 등락률 상위 종목 데이터 { "exp_cntr_flu_rt_upper": [ # 예상체결등락률상위 { "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "exp_cntr_pric": str, # 예상체결가 "base_pric": str, # 기준가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "flu_rt": str, # 등락률 "exp_cntr_qty": str, # 예상체결량 "sel_req": str, # 매도잔량 "sel_bid": str, # 매도호가 "buy_bid": str, # 매수호가 "buy_req": str, # 매수잔량 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_expected_execution_change_rate_request_ka10029( ... mrkt_tp="000", ... sort_tp="1", ... trde_qty_cnd="0", ... stk_cnd="0", ... crd_cnd="0", ... pric_cnd="0", ... stex_tp="3" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10029", } data = { "mrkt_tp": mrkt_tp, "sort_tp": sort_tp, "trde_qty_cnd": trde_qty_cnd, "stk_cnd": stk_cnd, "crd_cnd": crd_cnd, "pric_cnd": pric_cnd, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def top_trading_volume_today_request_ka10030( self, mrkt_tp: str, sort_tp: str, mang_stk_incls: str, crd_tp: str, trde_qty_tp: str, pric_tp: str, trde_prica_tp: str, mrkt_open_tp: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """당일 거래량 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 sort_tp (str): 정렬구분 - 1: 거래량 - 2: 거래회전율 - 3: 거래대금 mang_stk_incls (str): 관리종목포함 - 0: 관리종목 포함 - 1: 관리종목 미포함 - 3: 우선주제외 - 11: 정리매매종목제외 - 4: 관리종목, 우선주제외 - 5: 증100제외 - 6: 증100만보기 - 13: 증60만보기 - 12: 증50만보기 - 7: 증40만보기 - 8: 증30만보기 - 9: 증20만보기 - 14: ETF제외 - 15: 스팩제외 - 16: ETF+ETN제외 crd_tp (str): 신용구분 - 0: 전체조회 - 9: 신용융자전체 - 1: 신용융자A군 - 2: 신용융자B군 - 3: 신용융자C군 - 4: 신용융자D군 - 8: 신용대주 trde_qty_tp (str): 거래량구분 - 0: 전체조회 - 5: 5천주이상 - 10: 1만주이상 - 50: 5만주이상 - 100: 10만주이상 - 200: 20만주이상 - 300: 30만주이상 - 500: 500만주이상 - 1000: 백만주이상 pric_tp (str): 가격구분 - 0: 전체조회 - 1: 1천원미만 - 2: 1천원이상 - 3: 1천원~2천원 - 4: 2천원~5천원 - 5: 5천원이상 - 6: 5천원~1만원 - 10: 1만원미만 - 7: 1만원이상 - 8: 5만원이상 - 9: 10만원이상 trde_prica_tp (str): 거래대금구분 - 0: 전체조회 - 1: 1천만원이상 - 3: 3천만원이상 - 4: 5천만원이상 - 10: 1억원이상 - 30: 3억원이상 - 50: 5억원이상 - 100: 10억원이상 - 300: 30억원이상 - 500: 50억원이상 - 1000: 100억원이상 - 3000: 300억원이상 - 5000: 500억원이상 mrkt_open_tp (str): 장운영구분 - 0: 전체조회 - 1: 장중 - 2: 장전시간외 - 3: 장후시간외 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 당일 거래량 상위 종목 데이터 { "tdy_trde_qty_upper": [ # 당일거래량상위 { "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "flu_rt": str, # 등락률 "trde_qty": str, # 거래량 "pred_rt": str, # 전일비 "trde_tern_rt": str, # 거래회전율 "trde_amt": str, # 거래금액 "opmr_trde_qty": str, # 장중거래량 "opmr_pred_rt": str, # 장중전일비 "opmr_trde_rt": str, # 장중거래회전율 "opmr_trde_amt": str, # 장중거래금액 "af_mkrt_trde_qty": str, # 장후거래량 "af_mkrt_pred_rt": str, # 장후전일비 "af_mkrt_trde_rt": str, # 장후거래회전율 "af_mkrt_trde_amt": str, # 장후거래금액 "bf_mkrt_trde_qty": str, # 장전거래량 "bf_mkrt_pred_rt": str, # 장전전일비 "bf_mkrt_trde_rt": str, # 장전거래회전율 "bf_mkrt_trde_amt": str, # 장전거래금액 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_trading_volume_today_request_ka10030( ... mrkt_tp="000", ... sort_tp="1", ... mang_stk_incls="0", ... crd_tp="0", ... trde_qty_tp="0", ... pric_tp="0", ... trde_prica_tp="0", ... mrkt_open_tp="0", ... stex_tp="3" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10030", } data = { "mrkt_tp": mrkt_tp, "sort_tp": sort_tp, "mang_stk_incls": mang_stk_incls, "crd_tp": crd_tp, "trde_qty_tp": trde_qty_tp, "pric_tp": pric_tp, "trde_prica_tp": trde_prica_tp, "mrkt_open_tp": mrkt_open_tp, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def top_trading_volume_yesterday_request_ka10031( self, mrkt_tp: str, qry_tp: str, rank_strt: str, rank_end: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """전일 거래량 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 qry_tp (str): 조회구분 - 1: 전일거래량 상위100종목 - 2: 전일거래대금 상위100종목 rank_strt (str): 순위시작 (0 ~ 100 값 중에 조회를 원하는 순위 시작값) rank_end (str): 순위끝 (0 ~ 100 값 중에 조회를 원하는 순위 끝값) stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 전일 거래량 상위 종목 데이터 { "pred_trde_qty_upper": [ # 전일거래량상위 { "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "trde_qty": str, # 거래량 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_trading_volume_yesterday_request_ka10031( ... mrkt_tp="101", ... qry_tp="1", ... rank_strt="0", ... rank_end="10", ... stex_tp="3" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10031", } data = { "mrkt_tp": mrkt_tp, "qry_tp": qry_tp, "rank_strt": rank_strt, "rank_end": rank_end, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def top_trading_value_request_ka10032( self, mrkt_tp: str, mang_stk_incls: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """거래대금 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 mang_stk_incls (str): 관리종목포함 - 0: 관리종목 미포함 - 1: 관리종목 포함 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 거래대금 상위 종목 데이터 { "trde_prica_upper": [ # 거래대금상위 { "stk_cd": str, # 종목코드 "now_rank": str, # 현재순위 "pred_rank": str, # 전일순위 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "flu_rt": str, # 등락률 "sel_bid": str, # 매도호가 "buy_bid": str, # 매수호가 "now_trde_qty": str, # 현재거래량 "pred_trde_qty": str, # 전일거래량 "trde_prica": str, # 거래대금 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_trading_value_request_ka10032( ... mrkt_tp="001", ... mang_stk_incls="1", ... stex_tp="3" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10032", } data = { "mrkt_tp": mrkt_tp, "mang_stk_incls": mang_stk_incls, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def top_credit_ratio_request_ka10033( self, mrkt_tp: str, trde_qty_tp: str, stk_cnd: str, updown_incls: str, crd_cnd: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """신용비율 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 trde_qty_tp (str): 거래량구분 - 0: 전체조회 - 10: 만주이상 - 50: 5만주이상 - 100: 10만주이상 - 200: 20만주이상 - 300: 30만주이상 - 500: 50만주이상 - 1000: 백만주이상 stk_cnd (str): 종목조건 - 0: 전체조회 - 1: 관리종목제외 - 5: 증100제외 - 6: 증100만보기 - 7: 증40만보기 - 8: 증30만보기 - 9: 증20만보기 updown_incls (str): 상하한포함 - 0: 상하한 미포함 - 1: 상하한포함 crd_cnd (str): 신용조건 - 0: 전체조회 - 1: 신용융자A군 - 2: 신용융자B군 - 3: 신용융자C군 - 4: 신용융자D군 - 9: 신용융자전체 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 신용비율 상위 종목 데이터 { "crd_rt_upper": [ # 신용비율상위 { "stk_infr": str, # 종목정보 "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "flu_rt": str, # 등락률 "crd_rt": str, # 신용비율 "sel_req": str, # 매도잔량 "buy_req": str, # 매수잔량 "now_trde_qty": str, # 현재거래량 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_credit_ratio_request_ka10033( ... mrkt_tp="000", ... trde_qty_tp="0", ... stk_cnd="0", ... updown_incls="1", ... crd_cnd="0", ... stex_tp="3" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10033", } data = { "mrkt_tp": mrkt_tp, "trde_qty_tp": trde_qty_tp, "stk_cnd": stk_cnd, "updown_incls": updown_incls, "crd_cnd": crd_cnd, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def top_foreign_investor_trades_by_period_request_ka10034( self, mrkt_tp: str, trde_tp: str, dt: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """외국인 기간별 매매 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 trde_tp (str): 매매구분 - 1: 순매도 - 2: 순매수 - 3: 순매매 dt (str): 기간 - 0: 당일 - 1: 전일 - 5: 5일 - 10: 10일 - 20: 20일 - 60: 60일 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 외국인 기간별 매매 상위 종목 데이터 { "for_dt_trde_upper": [ # 외인기간별매매상위 { "rank": str, # 순위 "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "sel_bid": str, # 매도호가 "buy_bid": str, # 매수호가 "trde_qty": str, # 거래량 "netprps_qty": str, # 순매수량 "gain_pos_stkcnt": str, # 취득가능주식수 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_foreign_investor_trades_by_period_request_ka10034( ... mrkt_tp="001", ... trde_tp="2", ... dt="0", ... stex_tp="1" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10034", } data = { "mrkt_tp": mrkt_tp, "trde_tp": trde_tp, "dt": dt, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def top_foreign_consecutive_net_buy_request_ka10035( self, mrkt_tp: str, trde_tp: str, base_dt_tp: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """외국인 연속 순매매 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 trde_tp (str): 매매구분 - 1: 연속순매도 - 2: 연속순매수 base_dt_tp (str): 기준일구분 - 0: 당일기준 - 1: 전일기준 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 외국인 연속 순매매 상위 종목 데이터 { "for_cont_nettrde_upper": [ # 외인연속순매매상위 { "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "dm1": str, # D-1 "dm2": str, # D-2 "dm3": str, # D-3 "tot": str, # 합계 "limit_exh_rt": str, # 한도소진율 "pred_pre_1": str, # 전일대비1 "pred_pre_2": str, # 전일대비2 "pred_pre_3": str, # 전일대비3 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_foreign_consecutive_net_buy_request_ka10035( ... mrkt_tp="000", ... trde_tp="2", ... base_dt_tp="1", ... stex_tp="1" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10035", } data = { "mrkt_tp": mrkt_tp, "trde_tp": trde_tp, "base_dt_tp": base_dt_tp, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def top_foreign_limit_utilization_increase_request_ka10036( self, mrkt_tp: str, dt: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """외국인 한도소진율 증가 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 dt (str): 기간 - 0: 당일 - 1: 전일 - 5: 5일 - 10: 10일 - 20: 20일 - 60: 60일 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 외국인 한도소진율 증가 상위 종목 데이터 { "for_limit_exh_rt_incrs_upper": [ # 외인한도소진율증가상위 { "rank": str, # 순위 "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "trde_qty": str, # 거래량 "poss_stkcnt": str, # 보유주식수 "gain_pos_stkcnt": str, # 취득가능주식수 "base_limit_exh_rt": str, # 기준한도소진율 "limit_exh_rt": str, # 한도소진율 "exh_rt_incrs": str, # 소진율증가 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_foreign_limit_utilization_increase_request_ka10036( ... mrkt_tp="000", ... dt="1", ... stex_tp="1" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10036", } data = { "mrkt_tp": mrkt_tp, "dt": dt, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def top_foreign_broker_trading_request_ka10037( self, mrkt_tp: str, dt: str, trde_tp: str, sort_tp: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """외국계 창구 매매 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 dt (str): 기간 - 0: 당일 - 1: 전일 - 5: 5일 - 10: 10일 - 20: 20일 - 60: 60일 trde_tp (str): 매매구분 - 1: 순매수 - 2: 순매도 sort_tp (str): 정렬구분 - 1: 금액 - 2: 수량 stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합) cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 외국계 창구 매매 상위 종목 데이터 { "frgn_wicket_trde_upper": [ # 외국계창구매매상위 { "rank": str, # 순위 "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "flu_rt": str, # 등락율 "sel_trde_qty": str, # 매도거래량 "buy_trde_qty": str, # 매수거래량 "netprps_trde_qty": str, # 순매수거래량 "netprps_prica": str, # 순매수대금 "trde_qty": str, # 거래량 "trde_prica": str, # 거래대금 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_foreign_broker_trading_request_ka10037( ... mrkt_tp="000", ... dt="0", ... trde_tp="1", ... sort_tp="2", ... stex_tp="1" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10037", } data = { "mrkt_tp": mrkt_tp, "dt": dt, "trde_tp": trde_tp, "sort_tp": sort_tp, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def broker_ranking_by_stock_request_ka10038( self, stk_cd: str, strt_dt: str, end_dt: str, qry_tp: str, dt: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """종목별 증권사 순위를 조회합니다. Args: stk_cd (str): 종목코드 (거래소별 종목코드) - KRX: 039490 - NXT: 039490_NX - SOR: 039490_AL strt_dt (str): 시작일자 (YYYYMMDD 형식) end_dt (str): 종료일자 (YYYYMMDD 형식) qry_tp (str): 조회구분 - 1: 순매도순위정렬 - 2: 순매수순위정렬 dt (str): 기간 - 1: 전일 - 4: 5일 - 9: 10일 - 19: 20일 - 39: 40일 - 59: 60일 - 119: 120일 cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 종목별 증권사 순위 데이터 { "rank_1": str, # 순위1 "rank_2": str, # 순위2 "rank_3": str, # 순위3 "prid_trde_qty": str, # 기간중거래량 "stk_sec_rank": [ # 종목별증권사순위 { "rank": str, # 순위 "mmcm_nm": str, # 회원사명 "buy_qty": str, # 매수수량 "sell_qty": str, # 매도수량 "acc_netprps_qty": str, # 누적순매수수량 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.broker_ranking_by_stock_request_ka10038( ... stk_cd="005930", ... strt_dt="20241106", ... end_dt="20241107", ... qry_tp="2", ... dt="1" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10038", } data = { "stk_cd": stk_cd, "strt_dt": strt_dt, "end_dt": end_dt, "qry_tp": qry_tp, "dt": dt, } return self._execute_request( "POST", json=data, headers=headers, ) def top_broker_trading_request_ka10039( self, mmcm_cd: str, trde_qty_tp: str, trde_tp: str, dt: str, stex_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """증권사별 매매 상위 종목을 조회합니다. Args: mmcm_cd (str): 회원사코드 (ka10102 API로 조회 가능) trde_qty_tp (str): 거래량구분 - 0: 전체 - 5: 5000주 - 10: 1만주 - 50: 5만주 - 100: 10만주 - 500: 50만주 - 1000: 100만주 trde_tp (str): 매매구분 - 1: 순매수 - 2: 순매도 dt (str): 기간 - 1: 전일 - 5: 5일 - 10: 10일 - 60: 60일 stex_tp (str): 거래소구분 - 1: KRX - 2: NXT - 3: 통합 cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 증권사별 매매 상위 종목 데이터 { "sec_trde_upper": [ # 증권사별매매상위 { "rank": str, # 순위 "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "prid_stkpc_flu": str, # 기간중주가등락 "flu_rt": str, # 등락율 "prid_trde_qty": str, # 기간중거래량 "netprps": str, # 순매수 "buy_trde_qty": str, # 매수거래량 "sel_trde_qty": str, # 매도거래량 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_broker_trading_request_ka10039( ... mmcm_cd="001", ... trde_qty_tp="0", ... trde_tp="1", ... dt="1", ... stex_tp="3" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10039", } data = { "mmcm_cd": mmcm_cd, "trde_qty_tp": trde_qty_tp, "trde_tp": trde_tp, "dt": dt, "stex_tp": stex_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def main_trading_brokers_today_request_ka10040( self, stk_cd: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """당일 주요 거래원 정보를 조회합니다. Args: stk_cd (str): 종목코드 cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 당일 주요 거래원 데이터 { # 매도 거래원 정보 (1~5위) "sel_trde_ori_irds_1": str, # 매도거래원별증감1 "sel_trde_ori_qty_1": str, # 매도거래원수량1 "sel_trde_ori_1": str, # 매도거래원1 "sel_trde_ori_cd_1": str, # 매도거래원코드1 # ... (2~5위 동일한 패턴) # 매수 거래원 정보 (1~5위) "buy_trde_ori_1": str, # 매수거래원1 "buy_trde_ori_cd_1": str, # 매수거래원코드1 "buy_trde_ori_qty_1": str, # 매수거래원수량1 "buy_trde_ori_irds_1": str, # 매수거래원별증감1 # ... (2~5위 동일한 패턴) # 외국계 거래 정보 "frgn_sel_prsm_sum_chang": str, # 외국계매도추정합변동 "frgn_sel_prsm_sum": str, # 외국계매도추정합 "frgn_buy_prsm_sum": str, # 외국계매수추정합 "frgn_buy_prsm_sum_chang": str, # 외국계매수추정합변동 # 당일 주요 거래원 상세 정보 "tdy_main_trde_ori": [ # 당일주요거래원 { "sel_scesn_tm": str, # 매도이탈시간 "sell_qty": str, # 매도수량 "sel_upper_scesn_ori": str, # 매도상위이탈원 "buy_scesn_tm": str, # 매수이탈시간 "buy_qty": str, # 매수수량 "buy_upper_scesn_ori": str, # 매수상위이탈원 "qry_dt": str, # 조회일자 "qry_tm": str, # 조회시간 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.main_trading_brokers_today_request_ka10040( ... stk_cd="005930" # 삼성전자 ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10040", } data = { "stk_cd": stk_cd, } return self._execute_request( "POST", json=data, headers=headers, ) def top_net_buying_brokers_request_ka10042( self, stk_cd: str, qry_dt_tp: str, pot_tp: str, sort_base: str, strt_dt: str = "", end_dt: str = "", dt: str = "", cont_yn: str = "N", next_key: str = "", ) -> dict: """순매수거래원순위를 조회합니다. Args: stk_cd (str): 종목코드 (거래소별 종목코드) - KRX: 039490 - NXT: 039490_NX - SOR: 039490_AL qry_dt_tp (str): 조회기간구분 - 0: 기간으로 조회 - 1: 시작일자, 종료일자로 조회 pot_tp (str): 시점구분 - 0: 당일 - 1: 전일 sort_base (str): 정렬기준 - 1: 종가순 - 2: 날짜순 strt_dt (str, optional): 시작일자 (YYYYMMDD 형식). Defaults to "". end_dt (str, optional): 종료일자 (YYYYMMDD 형식). Defaults to "". dt (str, optional): 기간 - 5: 5일 - 10: 10일 - 20: 20일 - 40: 40일 - 60: 60일 - 120: 120일 cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 순매수거래원순위 데이터 { "netprps_trde_ori_rank": [ # 순매수거래원순위 { "rank": str, # 순위 "mmcm_cd": str, # 회원사코드 "mmcm_nm": str, # 회원사명 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_net_buying_brokers_request_ka10042( ... stk_cd="005930", ... qry_dt_tp="0", ... pot_tp="0", ... sort_base="1", ... dt="5" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10042", } data = { "stk_cd": stk_cd, "qry_dt_tp": qry_dt_tp, "pot_tp": pot_tp, "sort_base": sort_base, } # Optional parameters if strt_dt: data["strt_dt"] = strt_dt if end_dt: data["end_dt"] = end_dt if dt: data["dt"] = dt return self._execute_request( "POST", json=data, headers=headers, ) def top_departed_trading_brokers_today_request_ka10053( self, stk_cd: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """당일 상위 이탈원 정보를 조회합니다. Args: stk_cd (str): 종목코드 (거래소별 종목코드) - KRX: 039490 - NXT: 039490_NX - SOR: 039490_AL cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 당일 상위 이탈원 데이터 { "tdy_upper_scesn_ori": [ # 당일상위이탈원 { "sel_scesn_tm": str, # 매도이탈시간 "sell_qty": str, # 매도수량 "sel_upper_scesn_ori": str, # 매도상위이탈원 "buy_scesn_tm": str, # 매수이탈시간 "buy_qty": str, # 매수수량 "buy_upper_scesn_ori": str, # 매수상위이탈원 "qry_dt": str, # 조회일자 "qry_tm": str, # 조회시간 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_departed_trading_brokers_today_request_ka10053( ... stk_cd="005930" # 삼성전자 ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10053", } data = { "stk_cd": stk_cd, } return self._execute_request( "POST", json=data, headers=headers, ) def same_day_net_buying_ranking_request_ka10062( self, strt_dt: str, mrkt_tp: str, trde_tp: str, sort_cnd: str, unit_tp: str, stex_tp: str, end_dt: str = "", cont_yn: str = "N", next_key: str = "", ) -> dict: """동일순매매순위를 조회합니다. Args: strt_dt (str): 시작일자 (YYYYMMDD 형식) mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 trde_tp (str): 매매구분 - 1: 순매수 - 2: 순매도 sort_cnd (str): 정렬조건 - 1: 수량 - 2: 금액 unit_tp (str): 단위구분 - 1: 단주 - 1000: 천주 stex_tp (str): 거래소구분 - 1: KRX - 2: NXT - 3: 통합 end_dt (str, optional): 종료일자 (YYYYMMDD 형식). Defaults to "". cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 동일순매매순위 데이터 { "eql_nettrde_rank": [ # 동일순매매순위 { "stk_cd": str, # 종목코드 "rank": str, # 순위 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pre_sig": str, # 대비기호 "pred_pre": str, # 전일대비 "flu_rt": str, # 등락율 "acc_trde_qty": str, # 누적거래량 "orgn_nettrde_qty": str, # 기관순매매수량 "orgn_nettrde_amt": str, # 기관순매매금액 "orgn_nettrde_avg_pric": str, # 기관순매매평균가 "for_nettrde_qty": str, # 외인순매매수량 "for_nettrde_amt": str, # 외인순매매금액 "for_nettrde_avg_pric": str, # 외인순매매평균가 "nettrde_qty": str, # 순매매수량 "nettrde_amt": str, # 순매매금액 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.same_day_net_buying_ranking_request_ka10062( ... strt_dt="20241106", ... mrkt_tp="000", ... trde_tp="1", ... sort_cnd="1", ... unit_tp="1", ... stex_tp="3", ... end_dt="20241107" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10062", } data = { "strt_dt": strt_dt, "mrkt_tp": mrkt_tp, "trde_tp": trde_tp, "sort_cnd": sort_cnd, "unit_tp": unit_tp, "stex_tp": stex_tp, } # Optional parameter if end_dt: data["end_dt"] = end_dt return self._execute_request( "POST", json=data, headers=headers, ) def top_intraday_investor_trading_request_ka10065( self, trde_tp: str, mrkt_tp: str, orgn_tp: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """장중 투자자별 매매 상위 종목을 조회합니다. Args: trde_tp (str): 매매구분 - 1: 순매수 - 2: 순매도 mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 orgn_tp (str): 기관구분 - 9000: 외국인 - 9100: 외국계 - 1000: 금융투자 - 3000: 투신 - 5000: 기타금융 - 4000: 은행 - 2000: 보험 - 6000: 연기금 - 7000: 국가 - 7100: 기타법인 - 9999: 기관계 cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 장중 투자자별 매매 상위 종목 데이터 { "opmr_invsr_trde_upper": [ # 장중투자자별매매상위 { "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "sel_qty": str, # 매도량 "buy_qty": str, # 매수량 "netslmt": str, # 순매도 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_intraday_investor_trading_request_ka10065( ... trde_tp="1", # 순매수 ... mrkt_tp="000", # 전체 ... orgn_tp="9000" # 외국인 ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10065", } data = { "trde_tp": trde_tp, "mrkt_tp": mrkt_tp, "orgn_tp": orgn_tp, } return self._execute_request( "POST", json=data, headers=headers, ) def after_market_price_change_rate_ranking_request_ka10098( self, mrkt_tp: str, sort_base: str, stk_cnd: str, trde_qty_cnd: str, crd_cnd: str, trde_prica: str, cont_yn: str = "N", next_key: str = "", ) -> dict: """시간외 단일가 등락율 순위를 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 sort_base (str): 정렬기준 - 1: 상승률 - 2: 상승폭 - 3: 하락률 - 4: 하락폭 - 5: 보합 stk_cnd (str): 종목조건 - 0: 전체조회 - 1: 관리종목제외 - 2: 정리매매종목제외 - 3: 우선주제외 - 4: 관리종목우선주제외 - 5: 증100제외 - 6: 증100만보기 - 7: 증40만보기 - 8: 증30만보기 - 9: 증20만보기 - 12: 증50만보기 - 13: 증60만보기 - 14: ETF제외 - 15: 스팩제외 - 16: ETF+ETN제외 - 17: ETN제외 trde_qty_cnd (str): 거래량조건 - 0: 전체조회 - 10: 백주이상 - 50: 5백주이상 - 100: 천주이상 - 500: 5천주이상 - 1000: 만주이상 - 5000: 5만주이상 - 10000: 10만주이상 crd_cnd (str): 신용조건 - 0: 전체조회 - 9: 신용융자전체 - 1: 신용융자A군 - 2: 신용융자B군 - 3: 신용융자C군 - 4: 신용융자D군 - 8: 신용대주 - 5: 신용한도초과제외 trde_prica (str): 거래대금 - 0: 전체조회 - 5: 5백만원이상 - 10: 1천만원이상 - 30: 3천만원이상 - 50: 5천만원이상 - 100: 1억원이상 - 300: 3억원이상 - 500: 5억원이상 - 1000: 10억원이상 - 3000: 30억원이상 - 5000: 50억원이상 - 10000: 100억원이상 cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 시간외 단일가 등락율 순위 데이터 { "ovt_sigpric_flu_rt_rank": [ # 시간외단일가등락율순위 { "rank": str, # 순위 "stk_cd": str, # 종목코드 "stk_nm": str, # 종목명 "cur_prc": str, # 현재가 "pred_pre_sig": str, # 전일대비기호 "pred_pre": str, # 전일대비 "flu_rt": str, # 등락률 "sel_tot_req": str, # 매도총잔량 "buy_tot_req": str, # 매수총잔량 "acc_trde_qty": str, # 누적거래량 "acc_trde_prica": str, # 누적거래대금 "tdy_close_pric": str, # 당일종가 "tdy_close_pric_flu_rt": str, # 당일종가등락률 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.after_market_price_change_rate_ranking_request_ka10098( ... mrkt_tp="000", # 전체 ... sort_base="5", # 보합 ... stk_cnd="0", # 전체조회 ... trde_qty_cnd="0", # 전체조회 ... crd_cnd="0", # 전체조회 ... trde_prica="0" # 전체조회 ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka10098", } data = { "mrkt_tp": mrkt_tp, "sort_base": sort_base, "stk_cnd": stk_cnd, "trde_qty_cnd": trde_qty_cnd, "crd_cnd": crd_cnd, "trde_prica": trde_prica, } return self._execute_request( "POST", json=data, headers=headers, ) def top_foreign_institution_trades_request_ka90009( self, mrkt_tp: str, amt_qty_tp: str, qry_dt_tp: str, stex_tp: str, date: str = "", cont_yn: str = "N", next_key: str = "", ) -> dict: """외국인/기관 매매 상위 종목을 조회합니다. Args: mrkt_tp (str): 시장구분 - 000: 전체 - 001: 코스피 - 101: 코스닥 amt_qty_tp (str): 금액수량구분 - 1: 금액(천만) - 2: 수량(천) qry_dt_tp (str): 조회일자구분 - 0: 조회일자 미포함 - 1: 조회일자 포함 stex_tp (str): 거래소구분 - 1: KRX - 2: NXT - 3: 통합 date (str, optional): 날짜 (YYYYMMDD 형식). Defaults to "". cont_yn (str, optional): 연속조회여부. Defaults to "N". next_key (str, optional): 연속조회키. Defaults to "". Returns: dict: 외국인/기관 매매 상위 종목 데이터 { "frgnr_orgn_trde_upper": [ # 외국인기관매매상위 { "for_netslmt_stk_cd": str, # 외인순매도종목코드 "for_netslmt_stk_nm": str, # 외인순매도종목명 "for_netslmt_amt": str, # 외인순매도금액 "for_netslmt_qty": str, # 외인순매도수량 "for_netprps_stk_cd": str, # 외인순매수종목코드 "for_netprps_stk_nm": str, # 외인순매수종목명 "for_netprps_amt": str, # 외인순매수금액 "for_netprps_qty": str, # 외인순매수수량 "orgn_netslmt_stk_cd": str, # 기관순매도종목코드 "orgn_netslmt_stk_nm": str, # 기관순매도종목명 "orgn_netslmt_amt": str, # 기관순매도금액 "orgn_netslmt_qty": str, # 기관순매도수량 "orgn_netprps_stk_cd": str, # 기관순매수종목코드 "orgn_netprps_stk_nm": str, # 기관순매수종목명 "orgn_netprps_amt": str, # 기관순매수금액 "orgn_netprps_qty": str, # 기관순매수수량 }, ... ], "return_code": int, # 응답코드 "return_msg": str, # 응답메시지 } Example: >>> from kiwoom_rest_api import KiwoomRestAPI >>> api = KiwoomRestAPI() >>> result = api.rank_info.top_foreign_institution_trades_request_ka90009( ... mrkt_tp="000", # 전체 ... amt_qty_tp="1", # 금액(천만) ... qry_dt_tp="1", # 조회일자 포함 ... stex_tp="1", # KRX ... date="20241101" ... ) >>> print(result) """ headers = { "cont-yn": cont_yn, "next-key": next_key, "api-id": "ka90009", } data = { "mrkt_tp": mrkt_tp, "amt_qty_tp": amt_qty_tp, "qry_dt_tp": qry_dt_tp, "stex_tp": stex_tp, } # Optional parameter if date: data["date"] = date return self._execute_request( "POST", json=data, headers=headers, )