MODA API Docs
Guides
API Reference
Guides
API Reference
  1. 연동 가이드
  • 개요
    • MODA Open API
  • 시작하기
    • API Key 발급
    • 인증 헤더 만들기
    • 요청 서명 만들기
    • 첫 API 호출하기
  • 연동 가이드
    • REST API 연동
    • WebSocket 연동
    • API 요청 수 제한
  1. 연동 가이드

WebSocket 연동

WebSocket 서버에 접속하여 실시간 시세 데이터를 구독하는 방법을 안내합니다. Public Channel은 별도 인증 없이 접속 가능하며, 전체 종목 시세, 호가, OHLC Ticker 데이터를 수신할 수 있습니다.

접속 정보#

항목값
Endpointwss://app.moda-orbis.com/ws/open-api
인증불필요 (Public Channel)
데이터 형식Protobuf (바이너리)
binaryTypearraybuffer (필수)
주의
binaryType은 반드시 arraybuffer로 설정해야 합니다. 서버로부터 수신되는 모든 메시지는 바이너리 프레임으로 전송됩니다.
참고

JWT 없이 시세 구독 시 기본 등급(000) 스프레드가 적용됩니다. 계좌 인증이 필요한 경우 POST /open/v1/auths/ws-token으로 발급받은 토큰을 사용하세요.

연결 예제#


제공 파일#

서버에서 수신되는 Protobuf 메시지를 디코딩하기 위한 클라이언트 라이브러리 파일이 제공됩니다. 런타임에 protobufjs 패키지가 필요합니다.
파일명용도
realtime_message_browser.js브라우저 환경 (IIFE, window.protobuf 사용)
realtime_message_esm.jsES Module 환경 (import/export)
realtime_message_cjs.jsCommonJS 환경 (Node.js require)
realtime_message_d.tsTypeScript 타입 정의

채널 구독 / 해제#

WebSocket 연결 완료 후, JSON 텍스트 프레임을 전송하여 채널을 구독하거나 해제합니다.

요청 파라미터#

필드필수타입설명
actionOstringSUBSCRIBE / UNSUBSCRIBE
channelsOstring[]구독할 채널명 배열
options.stockCd조건부stringmarket.orderbook 구독 시 필수

구독 요청 예제#

전체 종목 시세 구독
{
  "action": "SUBSCRIBE",
  "channels": ["market.quote"]
}
특정 종목 호가 구독
{
  "action": "SUBSCRIBE",
  "channels": ["market.orderbook"],
  "options": { "stockCd": "A005930" }
}
복수 채널 동시 구독
{
  "action": "SUBSCRIBE",
  "channels": ["market.quote", "market.ticker"]
}

해제 요청 예제#

{
  "action": "UNSUBSCRIBE",
  "channels": ["market.quote"]
}

사용 가능한 채널#

채널명설명비고
market.quote전체 종목 실시간 시세—
market.orderbook종목별 5단계 호가options.stockCd 필수
market.orderbook.cancel호가 취소 이벤트—
market.tickerOHLC Ticker—

메시지 수신 포맷#

서버에서 수신되는 모든 메시지는 바이너리 프레임이며, 다음 구조로 인코딩됩니다.
[1 byte 타입코드] + [Protobuf 인코딩 페이로드]

타입코드 목록#

타입코드Protobuf 메시지설명
1MarketQuoteList전체 종목 시세
2MarketOrderBook종목별 호가 (5단계)
3OrderBookCancel호가 취소
9MarketTickerListOHLC Ticker

디코딩 예제#


데이터 스키마#

모든 숫자 필드는 string 타입으로 전송됩니다.

MarketQuote (시세)#

MarketQuoteList.quotes 배열의 원소입니다.
필드명타입설명
stockCdstring종목 코드
buystring매수 호가
sellstring매도 호가
buySizestring매수 잔량
sellSizestring매도 잔량
timestampnumber|Long타임스탬프 (epoch ms)

MarketQuoteList#

타입코드 1. 전체 종목 시세 목록입니다.
필드명타입설명
quotesMarketQuote[]MarketQuote 배열

Quote (호가 단계)#

MarketOrderBook.quotes 배열의 원소입니다.
필드명타입설명
buystring매수 호가
sellstring매도 호가
buySizestring매수 잔량
sellSizestring매도 잔량

MarketOrderBook (호가)#

타입코드 2. 종목별 5단계 호가 데이터입니다.
필드명타입설명
stockCdstring종목 코드
quotesQuote[]5단계 호가 배열
timestampnumber|Long타임스탬프 (epoch ms)

OrderBookCancel (호가 취소)#

타입코드 3. 호가 취소 이벤트입니다.
필드명타입설명
cancelTypestring취소 유형: ALL | STOCK_CD
stockCdstring종목 코드 (cancelType이 STOCK_CD일 때)
timestampnumber|Long타임스탬프 (epoch ms)

MarketTicker (OHLC)#

MarketTickerList.tickers 배열의 원소입니다.
필드명타입설명
stockCdstring종목 코드
datestring날짜
openstring시가
highstring고가
lowstring저가
closestring현재가 / 종가
beforeClosestring전일 종가
lastUpdatedstring마지막 업데이트 시각

MarketTickerList#

타입코드 9. OHLC Ticker 목록입니다.
필드명타입설명
tickersMarketTicker[]MarketTicker 배열

주의사항#

항목내용
스프레드 등급JWT 없이 구독 시 기본 등급(000) 스프레드 적용
호가 구독market.orderbook 구독 시 options.stockCd 누락하면 validation 에러
재연결연결 끊김 시 서버가 세션·구독 정보를 자동 정리. 재연결 후 구독 재전송 필요
메시지 디코딩첫 번째 바이트를 타입코드로 읽고, 나머지를 Protobuf 메시지로 디코딩

← 이전: REST API 연동
다음: API 요청 수 제한 →
수정일 2026-03-26 07:46:30
이전
REST API 연동
다음
API 요청 수 제한
Built with