头图

1. 接口概述

StockTV提供东南亚主要国家金融市场数据接口,覆盖以下市场:

  • 股票市场:马来西亚、印度、新加坡、印尼、泰国、越南、菲律宾
  • 期货市场:马棕油(FCPO)、橡胶、锡等东南亚特色商品期货
  • 指数数据:各国主要股指

支持HTTP REST API和WebSocket两种接入方式,提供毫秒级延迟的实时数据服务。

2. 获取API Key

使用前需联系StockTV获取API Key:

3. 国家代码对照表

国家countryId主要交易所代表指数
马来西亚42Bursa MalaysiaFBMKLCI
印度14BSENifty50
印尼48IDXIDX Composite
越南178HOSE/HNXVN-Index

4. 核心接口列表

4.1 获取东南亚股票列表

接口地址
GET /stock/stocks

请求参数

参数名必填类型说明
countryIdint国家ID(见上表)
exchangeIdint交易所ID(可选过滤)
pageSizeint每页数量(默认10)
keystringAPI密钥

请求示例

GET https://api.stocktv.top/stock/stocks?countryId=43&pageSize=5&key=您的API_KEY

响应示例(新加坡股票)

{
  "code": 200,
  "data": {
    "records": [
      {
        "id": 60231,
        "symbol": "DBS", 
        "name": "DBS Group Holdings",
        "last": 35.20,
        "chg": 0.45,
        "exchangeId": 63, // SGX
        "volume": 4521800
      },
      {
        "id": 60232,
        "symbol": "SIA",
        "name": "Singapore Airlines",
        "last": 6.48,
        "chg": -0.02
      }
    ]
  }
}

4.2 获取东南亚指数数据

接口地址
GET /stock/indices

请求参数

参数名必填类型说明
countryIdint国家ID
keystringAPI密钥

请求示例(获取印尼指数)

GET https://api.stocktv.top/stock/indices?countryId=44&key=您的API_KEY

响应示例

{
  "code": 200,
  "data": [
    {
      "id": 18521,
      "symbol": "JKSE",
      "name": "IDX Composite",
      "last": 7123.45,
      "chg": 23.56
    },
    {
      "id": 18522,
      "symbol": "JKLQ45",
      "name": "LQ45 Index",
      "last": 985.32,
      "chg": 5.21
    }
  ]
}

4.3 获取东南亚外汇汇率

接口地址
GET /market/currency

请求参数

参数名必填类型说明
countryTypestring国家代码(sg/my/th/id等)
keystringAPI密钥

请求示例(新加坡元交叉汇率)

GET https://api.stocktv.top/market/currency?countryType=sg&key=您的API_KEY

响应示例

{
  "code": 200,
  "data": [
    {
      "symbol": "SGDMYR=X",
      "name": "SGD/MYR",
      "lastPrice": "3.4582",
      "chg": "0.0023"
    },
    {
      "symbol": "SGDIDR=X",
      "name": "SGD/IDR",
      "lastPrice": "11568.50",
      "chg": "-12.30"
    }
  ]
}

4.4 获取东南亚特色期货

接口地址
GET /futures/list

请求参数

参数名必填类型说明
keystringAPI密钥

响应示例

{
  "code": 200,
  "data": [
    {
      "symbol": "FCPO",
      "name": "Crude Palm Oil Futures",
      "last": 3750.80,
      "exchange": "Bursa Malaysia"
    },
    {
      "symbol": "FTIN",
      "name": "Tin Futures",
      "last": 32580.00,
      "exchange": "KLSE"
    },
    {
      "symbol": "FRSS3",
      "name": "Rubber RSS3 Futures",
      "last": 210.50,
      "exchange": "TOCOM"
    }
  ]
}

5. WebSocket实时数据

连接地址
wss://ws-api.stocktv.top/connect?key=您的API_KEY

订阅消息格式

{
  "action": "subscribe",
  "pids": [股票/指数ID数组],
  "symbols": ["期货/外汇符号数组"]
}

实时数据推送示例

{
  "type": "stock",
  "pid": 60231,
  "symbol": "DBS",
  "last": 35.22,
  "volume": 4521800,
  "timestamp": 1725002394
}

6. 示例代码

Python整合示例

import requests
import websockets
import asyncio

# 获取越南股票列表
def get_vietnam_stocks():
    url = "https://api.stocktv.top/stock/stocks"
    params = {
        "countryId": 47,  # 越南
        "key": "您的API_KEY"
    }
    response = requests.get(url, params=params)
    return response.json()

# WebSocket实时数据
async def subscribe_real_time():
    async with websockets.connect("wss://ws-api.stocktv.top/connect?key=您的API_KEY") as ws:
        # 订阅马来西亚棕榈油期货和新加坡STI指数
        await ws.send(json.dumps({
            "action": "subscribe",
            "pids": [18452],  # STI指数
            "symbols": ["FCPO"]
        }))
        
        while True:
            data = await ws.recv()
            print("Received:", json.loads(data))

# 运行示例
if __name__ == "__main__":
    print("越南股票:", get_vietnam_stocks())
    asyncio.get_event_loop().run_until_complete(subscribe_real_time())

7. 注意事项

  1. 交易时间差异

    • 马来西亚/新加坡:09:00-17:00 (UTC+8)
    • 印尼:09:30-16:00 (UTC+7)
    • 泰国:10:00-16:30 (UTC+7)
    • 越南:09:00-15:00 (UTC+7)
  2. 数据更新频率

    • 股票/指数:3秒刷新
    • 期货/外汇:1秒刷新
    • WebSocket:实时推送
  3. 特殊节假日
    各国本地节假日市场休市,API返回open: false
  4. 推荐架构

    graph TD
    A[客户端] -->|HTTP| B[获取初始数据]
    A -->|WebSocket| C[订阅实时更新]
    B --> D[缓存数据库]
    C --> D
    D --> E[前端展示]

如需完整接口文档或技术支持,请访问:


CryptoRzz
17 声望0 粉丝