開始使用
富果行情 WebSocket API 提供台股期權即時行情服務。透過 WebSocket API 可以滿足您想要接收即時行情的需求。
建立連線
富果期權行情 WebSocket API 提供 v1.1 與 v1.0 兩個版本:
wss://api.fugle.tw/marketdata/v1.1/futopt/streaming
wss://api.fugle.tw/marketdata/v1.0/futopt/streaming
兩個版本的唯一差異在 trades/books 頻道是否推送 試撮訊息:
- v1.0:恆不推送帶
isTrial: true的trades/books訊息(整則丟棄)。 - v1.1:試撮與正式行情一併推送,以逐筆訊息的
isTrial欄位區分。
aggregates/candles 頻道兩版本行為完全相同。請特別注意:aggregates 的試撮欄位(頂層 isTrial、lastTrial)在 v1.0 連線一樣會出現,且試撮期間的 lastPrice/change 也會反映試撮價。無論使用哪個版本,程式都應判斷 isTrial,詳見 aggregates。
v1.0 預計於 2026 年底退場,且不會回頭推送試撮訊息。新專案請直接使用 v1.1,既有整合請預留遷移時間。
身份驗證
建立 WebSocket 連線後,請使用 API 金鑰進行身份驗證,以獲得授權訂閱各項頻道:
{
"event": "auth",
"data": {
"apikey": "<API_KEY>"
}
}
當驗證成功後,會收到以下訊息:
{
"event": "authenticated",
"data": {
"message": "Authenticated successfully"
}
}
若驗證失敗,則會收到以下訊息:
{
"event": "error",
"data": {
"message": "Invalid authentication credentials"
}
}
Heartbeat
每隔 30 秒 WebSocket server 會送出一個 heartbeat 訊息:
{
"event": "heartbeat",
"data": {
"time": "<Timestamp>"
}
}
Ping/Pong
將以下 JSON 格式訊息發送到 WebSocket Server(state 為可選):
{
"event": "ping",
"data": {
"state": "<ANY>"
}
}
WebSocket Server 會回應以下訊息(若 ping 未送 state 則不會有該欄位):
{
"event": "pong",
"data": {
"time": "<TIMESTAMP>",
"state": "<ANY>"
}
}
Channels
富果行情 WebSocket API 目前提供以下可訂閱頻道:
trades- 接收訂閱期權商品最新成交資訊candles- 接收訂閱期權商品最新分鐘Kbooks- 接收訂閱期權商品最新最佳五檔委買委賣資訊aggregates- 接收訂閱期權聚合數據的行情資訊
連續月別名
訂閱時的 symbol 除了具體合約代碼(如 TXFG6),也可使用連續月別名 {ROOT}1!/2!/3! 訂閱第 1/2/3 近月合約(如 TXF1! 為最近月臺股期貨)。系統會自動解析為當前對應的具體合約,回傳 data 中的 symbol 為解析後的具體合約代碼。詳見 REST API — 商品代碼與連續月別名。
連續月別名是在送出訂閱的當下解析成具體合約,之後該訂閱就固定綁在那個合約上。長時間保持的連線在跨過結算日之後不會自動重新解析——訂閱仍綁在已結算的舊合約,因而靜默地收不到任何資料。
跨結算日的長效連線請自行在換月後重新訂閱(unsubscribe 後再 subscribe),或改用具體合約代碼並自行控制轉倉。REST API 則不受影響,每次呼叫都會重新解析。
{
"event": "subscribe",
"data": {
"channel": "trades",
"symbol": "TXF1!"
}
}