股票即時行情 WEBSOCKET API 全球股票WebSocket即時行情API,覆蓋美股、港股、A股等多個全球市場,毫秒級推送Level 1 & Level 2數據。服務包含Tick成交、五/十檔盤口及K線更新。

股票 WebSocket

iTick Stocks WebSocket API 提供對深圳交易所、上海交易所、香港交易所以及美國等最新股市數據的串流存取。 您可以透過以操作形式發送指令來指定要使用的頻道。當您訂閱的頻道中發生事件時,我們的 WebSockets 會發出事件以通知您。

我們的 WebSocket API 基於授權,授權可控制您可以連接到哪些 WebSocket 集群以及您可以存取哪些類型的數據。 您可以登入查看包含您的 API 金鑰並根據您的授權進行個人化的範例。

第 1 步:連接

使用高級計劃,您將能夠使用單個連接到集群。如果另一個連接同時嘗試連接到集群,則當前連接將被斷開。 如果您需要同時連接到此集群的更多連接,您可以聯繫支援人員。

連接到集群:

wscat -c wss://api.itick.org/stock  -H "token: 2abf6c0*************************dd8a1930a2f48ba14a"

連接後您將收到以下訊息:

{
  "code":1,
  "msg": "Connected Successfully"
}

第 2 步:驗證

驗證成功後,您將收到以下訊息:

{
  "code":1,
  "resAc":"auth",
  "msg": "authenticated"
}

驗證失敗,會斷開連接,流程終止

{
  "code":0,
  "resAc":"auth",
  "msg": "auth failed"
}

第 3 步:訂閱

驗證身份後,即可請求串流。您可以在同一請求中請求多個串流。

{
  "ac":"subscribe",
  "params":"AAPL$US,TSLA$US",
  "types":"depth,quote"
}

params:標的Code,支援訂閱多個,注意:多市場訂閱時,產品參數 = code & region,例如:AAPL$US
types: 訂閱的類型,depth盤口、quote報價、tick成交

訂閱成功返回內容。

{
  "code":1,
  "resAc":"subscribe",
  "msg": "subscribe Successfully"
}

訂閱失敗返回內容。如下:分別是超出套餐計劃最大數量,訂閱參數錯誤。

{
  "code":0,
  "resAc":"subscribe",
  "msg": "exceeding the maximum subscription limit"
}
{
  "code":0,
  "resAc":"subscribe",
  "msg": "cannot be resolved action"
}

第 4 步:回應內容

iTick.org WebSocket 客戶端必須能夠每秒處理許多傳入訊息。由於 WebSocket 協定的性質,如果客戶端從伺服器獲取訊息的速度很慢,iTick.org 的伺服器必須緩衝訊息,並以客戶端可以接收的速度發送訊息。如果客戶端長時間以太慢的速度消費訊息, iTick.org的伺服器端緩衝區可能會變得太大。如果發生這種情況,iTick.org 將終止 WebSocket 連接。如果您經常遇到這種情況,請考慮訂閱較少的符號或頻道。

訂閱成功後數據按照如下內容發送。

成交回應內容

{
    "code": 1,
    "data": {
        "s": "AAPL.US",
        "ld": 225.215,
        "v": 16742235,
        "t": 1731689407000,
        "type": "tick"
    }
}

報價回應內容

{
    "code": 1,
    "data": {
        "s": "AAPL.US",
        "ld": 225.215,
        "o": 226.27,
        "h": 226.92,
        "l": 224.44,
        "t": 1731689407000,
        "v": 16742235,
        "tu": 3774688301.452,
        "ts": 0,
        "type": "quote"
    }
}

盤口回應內容

{
    "code": 1,
    "data": {
        "s": "AAPL.US",
        "a": [
            {
                "po": 1,
                "p": 3034.01,
                "v": 10.6023,
                "o": 10.6023
            },
            {
                "po": 2,
                "p": 3034.03,
                "v": 0.0017,
                "o": 0.0017
            },
            {
                "po": 3,
                "p": 3034.18,
                "v": 0.0017,
                "o": 0.0017
            },
            {
                "po": 4,
                "p": 3034.26,
                "v": 0.0018,
                "o": 0.0018
            },
            {
                "po": 5,
                "p": 3034.27,
                "v": 0.21,
                "o": 0.21
            }
        ],
        "b": [
            {
                "po": 1,
                "p": 3034,
                "v": 20.9758,
                "o": 20.9758
            },
            {
                "po": 2,
                "p": 3033.99,
                "v": 1.8408,
                "o": 1.8408
            },
            {
                "po": 3,
                "p": 3033.98,
                "v": 0.003,
                "o": 0.003
            },
            {
                "po": 4,
                "p": 3033.97,
                "v": 0.0065,
                "o": 0.0065
            },
            {
                "po": 5,
                "p": 3033.94,
                "v": 0.003,
                "o": 0.003
            }
        ],
        "type": "depth"
    }
}

K線回應內容

{
    "code": 0,
    "msg": null,
    "data": {
        "s":"AAPL.US",
        "t":1,
        "k":
        {
            "tu": 157513,
            "c": 3059.39,
            "t": 1731660060000,
            "v": 28,
            "h": 3061.41,
            "l": 3055.24,
            "o": 3055.36
        }
     }
}

t Kline 週期: 週期 1分鐘、2五分鐘、3十分鐘、4三十分鐘、5一小時、8一天、9一週、10一月

第 5 步:保持心跳

客戶端向伺服器發送

{
  "ac":"ping",
  "params":"1731688569840"
}

伺服端向客戶端發送

{
  "resAc":"pong",
  "data": {"params":"1731688569840"}
}

ping、pong的時間戳需要保持一致