1. 接口概述
StockTV提供东南亚主要国家金融市场数据接口,覆盖以下市场:
- 股票市场:马来西亚、印度、新加坡、印尼、泰国、越南、菲律宾
- 期货市场:马棕油(FCPO)、橡胶、锡等东南亚特色商品期货
- 指数数据:各国主要股指
支持HTTP REST API和WebSocket两种接入方式,提供毫秒级延迟的实时数据服务。
2. 获取API Key
使用前需联系StockTV获取API Key:
3. 国家代码对照表
国家 | countryId | 主要交易所 | 代表指数 |
---|---|---|---|
马来西亚 | 42 | Bursa Malaysia | FBMKLCI |
印度 | 14 | BSE | Nifty50 |
印尼 | 48 | IDX | IDX Composite |
越南 | 178 | HOSE/HNX | VN-Index |
4. 核心接口列表
4.1 获取东南亚股票列表
接口地址 GET /stock/stocks
请求参数
参数名 | 必填 | 类型 | 说明 |
---|---|---|---|
countryId | 是 | int | 国家ID(见上表) |
exchangeId | 否 | int | 交易所ID(可选过滤) |
pageSize | 否 | int | 每页数量(默认10) |
key | 是 | string | API密钥 |
请求示例
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
请求参数
参数名 | 必填 | 类型 | 说明 |
---|---|---|---|
countryId | 是 | int | 国家ID |
key | 是 | string | API密钥 |
请求示例(获取印尼指数)
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
请求参数
参数名 | 必填 | 类型 | 说明 |
---|---|---|---|
countryType | 是 | string | 国家代码(sg/my/th/id等) |
key | 是 | string | API密钥 |
请求示例(新加坡元交叉汇率)
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
请求参数
参数名 | 必填 | 类型 | 说明 |
---|---|---|---|
key | 是 | string | API密钥 |
响应示例
{
"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. 注意事项
交易时间差异:
- 马来西亚/新加坡:09:00-17:00 (UTC+8)
- 印尼:09:30-16:00 (UTC+7)
- 泰国:10:00-16:30 (UTC+7)
- 越南:09:00-15:00 (UTC+7)
数据更新频率:
- 股票/指数:3秒刷新
- 期货/外汇:1秒刷新
- WebSocket:实时推送
- 特殊节假日:
各国本地节假日市场休市,API返回open: false
推荐架构:
如需完整接口文档或技术支持,请访问:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。