feat: add messaging transport rollout

This commit is contained in:
2026-06-06 00:02:52 +09:00
parent 4b91343ee8
commit 6c7a1cf6f6
383 changed files with 99045 additions and 487 deletions
@@ -0,0 +1,185 @@
# 회원사 실시간 매매동향(틱)
- 원본 시트명: 회원사 실시간 매매동향(틱)
- API 통신방식: WEBSOCKET
- 메뉴 위치: [국내주식] 시세분석
- API ID: 국내주식-163
- HTTP Method: GET
- 실전 TR_ID: FHPST04320000
- 모의 TR_ID: 모의투자 미지원
- 실전 Domain: https://openapi.koreainvestment.com:9443
- 모의 Domain: 모의투자 미지원
- URL 명: /uapi/domestic-stock/v1/quotations/frgnmem-trade-trend
- 모의투자 지원: 미지원
- 원본 워크북: [한국투자증권_오픈API_전체문서_20260430_030000.xlsx](../../../../../한국투자증권_오픈API_전체문서_20260430_030000.xlsx)
## 개요
회원사 실시간 매매동향(틱) API입니다.
한국투자 HTS(eFriend Plus) > [0432] 회원사 실시간 매매동향 화면 의 기능을 API로 개발한 사항으로, 해당 화면을 참고하시면 기능을 이해하기 쉽습니다.
최근 100건까지 데이터 조회 가능합니다.
## 레이아웃
### Request Header
| Element | 한글명 | Type | Required | Length | Description |
| --- | --- | --- | --- | --- | --- |
| content-type | 컨텐츠타입 | string | Y | 40 | application/json; charset=utf-8 |
| authorization | 접근토큰 | string | Y | 350 | OAuth 토큰이 필요한 API 경우 발급한 Access token <br>일반고객(Access token 유효기간 1일, OAuth 2.0의 Client Credentials Grant 절차를 준용) <br>법인(Access token 유효기간 3개월, Refresh token 유효기간 1년, OAuth 2.0의 Authorization Code Grant 절차를 준용) |
| appkey | 앱키 | string | Y | 36 | 한국투자증권 홈페이지에서 발급받은 appkey (절대 노출되지 않도록 주의해주세요.) |
| appsecret | 앱시크릿키 | string | Y | 180 | 한국투자증권 홈페이지에서 발급받은 appkey (절대 노출되지 않도록 주의해주세요.) |
| personalseckey | 고객식별키 | string | N | 180 | [법인 필수] 제휴사 회원 관리를 위한 고객식별키 |
| tr_id | 거래ID | string | Y | 13 | FHPST04320000 |
| tr_cont | 연속 거래 여부 | string | N | 1 | tr_cont를 이용한 다음조회 불가 API |
| custtype | 고객 타입 | string | Y | 1 | B : 법인 <br>P : 개인 |
| seq_no | 일련번호 | string | N | 2 | [법인 필수] 001 |
| mac_address | 맥주소 | string | N | 12 | 법인고객 혹은 개인고객의 Mac address 값 |
| phone_number | 핸드폰번호 | string | N | 12 | [법인 필수] 제휴사APP을 사용하는 경우 사용자(회원) 핸드폰번호 <br>ex) 01011112222 (하이픈 등 구분값 제거) |
| ip_addr | 접속 단말 공인 IP | string | N | 12 | [법인 필수] 사용자(회원)의 IP Address |
| gt_uid | Global UID | string | N | 32 | [법인 전용] 거래고유번호로 사용하므로 거래별로 UNIQUE해야 함 |
### Request Query Parameter
| Element | 한글명 | Type | Required | Length | Description |
| --- | --- | --- | --- | --- | --- |
| FID_COND_MRKT_DIV_CODE | FID 조건 시장 분류 코드 | string | Y | 2 | J 고정 입력 |
| FID_COND_SCR_DIV_CODE | 화면분류코드 | string | Y | 5 | 20432(primary key) |
| FID_INPUT_ISCD | 종목코드 | string | Y | 12 | ex. 005930(삼성전자) <br><br>※ FID_INPUT_ISCD(종목코드) 혹은 FID_MRKT_CLS_CODE(시장구분코드) 둘 중 하나만 입력 |
| FID_INPUT_ISCD_2 | 회원사코드 | string | Y | 10 | ex. 99999(전체)<br><br>※ 회원사코드 (kis developers 포탈 사이트 포럼-> FAQ -> 종목정보 다운로드(국내) 참조) |
| FID_MRKT_CLS_CODE | 시장구분코드 | string | Y | 2 | A(전체),K(코스피), Q(코스닥), K2(코스피200), W(ELW)<br><br>※ FID_INPUT_ISCD(종목코드) 혹은 FID_MRKT_CLS_CODE(시장구분코드) 둘 중 하나만 입력 |
| FID_VOL_CNT | 거래량 | string | Y | 12 | 거래량 ~ |
### Response Header
| Element | 한글명 | Type | Required | Length | Description |
| --- | --- | --- | --- | --- | --- |
| content-type | 컨텐츠타입 | string | Y | 40 | application/json; charset=utf-8 |
| tr_id | 거래ID | string | Y | 13 | 요청한 tr_id |
| tr_cont | 연속 거래 여부 | string | N | 1 | tr_cont를 이용한 다음조회 불가 API |
| gt_uid | Global UID | string | N | 32 | [법인 전용] 거래고유번호로 사용하므로 거래별로 UNIQUE해야 함 |
### Response Body
| Element | 한글명 | Type | Required | Length | Description |
| --- | --- | --- | --- | --- | --- |
| rt_cd | 성공 실패 여부 | string | Y | 1 | |
| msg_cd | 응답코드 | string | Y | 8 | |
| msg1 | 응답메세지 | string | Y | 80 | |
| output1 | 응답상세 | object | Y | | array |
| total_seln_qty | 총매도수량 | string | Y | 18 | |
| total_shnu_qty | 총매수2수량 | string | Y | 18 | |
| output2 | 응답상세 | object array | Y | | array |
| bsop_hour | 영업시간 | string | Y | 6 | |
| mbcr_name | 회원사명 | string | Y | 50 | |
| hts_kor_isnm | HTS한글종목명 | string | Y | 40 | |
| stck_prpr | 주식현재가 | string | Y | 10 | |
| prdy_vrss | 전일대비 | string | Y | 10 | |
| prdy_vrss_sign | 전일대비부호 | string | Y | 1 | |
| cntg_vol | 체결거래량 | string | Y | 18 | |
| acml_ntby_qty | 누적순매수수량 | string | Y | 18 | |
| glob_ntby_qty | 외국계순매수수량 | string | Y | 12 | |
| frgn_ntby_qty_icdc | 외국인순매수수량증감 | string | Y | 10 | |
## 예제
### Request Example (Python)
```text
FID_COND_SCR_DIV_CODE:20432
FID_INPUT_ISCD:005930
FID_INPUT_ISCD2:99999
FID_MRKT_CLS_CODE:
FID_VOL_CNT:
```
### Response Example
```text
{
"output1": [
{
"total_seln_qty": "3403046",
"total_shnu_qty": "1539165"
}
],
"output2": [
{
"bsop_hour": "153025",
"mbcr_name": "JP모간",
"hts_kor_isnm": "삼성전자",
"stck_prpr": "75200",
"prdy_vrss": "-500",
"prdy_vrss_sign": "5",
"cntg_vol": "168484",
"acml_ntby_qty": "1473742",
"glob_ntby_qty": "-1863881",
"frgn_ntby_qty_icdc": "168484"
},
{
"bsop_hour": "153025",
"mbcr_name": "메릴린치",
"hts_kor_isnm": "삼성전자",
"stck_prpr": "75200",
"prdy_vrss": "-500",
"prdy_vrss_sign": "5",
"cntg_vol": "-188645",
"acml_ntby_qty": "-938293",
"glob_ntby_qty": "-2032365",
"frgn_ntby_qty_icdc": "-188645"
},
{
"bsop_hour": "153025",
"mbcr_name": "씨티그룹",
"hts_kor_isnm": "삼성전자",
"stck_prpr": "75200",
"prdy_vrss": "-500",
"prdy_vrss_sign": "5",
"cntg_vol": "-135506",
"acml_ntby_qty": "-2308688",
"glob_ntby_qty": "-1843720",
"frgn_ntby_qty_icdc": "-135506"
},
{
"bsop_hour": "152020",
"mbcr_name": "JP모간",
"hts_kor_isnm": "삼성전자",
"stck_prpr": "75500",
"prdy_vrss": "-200",
"prdy_vrss_sign": "5",
"cntg_vol": "139",
"acml_ntby_qty": "1305258",
"glob_ntby_qty": "-1708214",
"frgn_ntby_qty_icdc": "139"
},
{
"bsop_hour": "151904",
"mbcr_name": "JP모간",
"hts_kor_isnm": "삼성전자",
"stck_prpr": "75400",
"prdy_vrss": "-300",
"prdy_vrss_sign": "5",
"cntg_vol": "2271",
"acml_ntby_qty": "1305119",
"glob_ntby_qty": "-1708353",
"frgn_ntby_qty_icdc": "2271"
},
{
"bsop_hour": "151749",
"mbcr_name": "JP모간",
"hts_kor_isnm": "삼성전자",
"stck_prpr": "75300",
"prdy_vrss": "-400",
"prdy_vrss_sign": "5",
"cntg_vol": "23867",
"acml_ntby_qty": "1302848",
"glob_ntby_qty": "-1710624",
"frgn_ntby_qty_icdc": "23867"
},...
],
"rt_cd": "0",
"msg_cd": "MCA00000",
"msg1": "정상처리 되었습니다."
}
```