如何快速对接印度股票市场 (NSE/BSE) 数据接口
在全球资产配置日益流行的今天,印度股市(NSE/BSE)因其高增长潜力成为了开发者和量化团队关注的焦点。然而,寻找稳定、易用且覆盖全面的印度市场数据源往往是一个痛点。
本文将演示如何利用 StockTV API 快速接入印度股票市场数据,涵盖从获取股票列表、指数行情到绘制 K 线图的全流程。
为什么选择这个方案?
根据 API 文档,该接口具有以下特点:
- 覆盖全面:支持 NSE(印度国家证券交易所)和 BSE(孟买证券交易所)。
- 数据丰富:包含实时报价、历史 K 线、指数(如 Nifty 50)、IPO 日历及涨跌幅榜。
- 开发友好:采用标准的 RESTful JSON 格式,且提供 WebSocket 实时推送。
准备工作
在开始之前,你需要获取一个 API key。所有请求都需要在 URL 参数中带上 key=你的密钥。
- API 基础地址:
https://api.stocktv.top - 印度市场 Country ID:
14
第一步:获取市场概览与股票列表
要获取数据,首先需要知道股票在系统中的唯一标识符(pid 或 id)。我们需要调用市场列表接口,并指定 countryId=14(代表印度)。
接口地址:
GET /stock/stocks?countryId=14&pageSize=10&page=1&key=YOUR_KEY
返回数据示例:
{
"code": 200,
"data": {
"records": [
{
"id": 946725, // 重要:这是 PID,后续查K线要用
"name": "Inventure Growth Securities",
"symbol": "IGSL",
"exchangeId": 46, // 46 代表 NSE
"last": 2.46, // 最新价
"chgPct": -20.13, // 涨跌幅
"countryNameTranslated": "India"
}
]
}
}
注:你可以通过 exchangeId 区分 NSE (46) 和 BSE (74)。
第二步:获取主要指数 (Nifty 50)
印度市场的风向标是 Nifty 50 和 Sensex。我们可以通过指数接口获取实时行情。
接口地址:
GET /stock/indices?countryId=14&flag=IN&key=YOUR_KEY
代码示例 (JavaScript/Node.js):
const API_KEY = 'YOUR_API_KEY';
async function getIndianIndices() {
const url = `https://api.stocktv.top/stock/indices?countryId=14&flag=IN&key=${API_KEY}`;
try {
const response = await fetch(url);
const result = await response.json();
// 查找 Nifty 50
const nifty = result.data.find(item => item.name === "Nifty 50");
console.log(`Nifty 50 最新点位: ${nifty.last}, 涨跌: ${nifty.chgPct}%`);
} catch (error) {
console.error("获取指数失败", error);
}
}
第三步:获取 K 线数据 (绘制图表)
这是开发交易面板或看盘软件最核心的部分。接口支持多种时间周期,格式采用 ISO 8601 标准(如 PT1M 代表 1分钟,P1D 代表 1天)。
接口地址:
GET /stock/kline?pid={股票ID}&interval={周期}&key=YOUR_KEY
参数说明:
pid: 第一步中获取的id。interval:PT1M(1分),PT15M(15分),PT1H(1小时),P1D(日线) 等。
实战:获取 Reliance Industries 的日线数据
async function getKlineData(pid) {
// P1D 代表日线数据
const url = `https://api.stocktv.top/stock/kline?pid=${pid}&interval=P1D&key=${API_KEY}`;
const response = await fetch(url);
const json = await response.json();
// 转换数据格式以适配前端图表库(如 ECharts 或 KlineCharts)
const chartData = json.data.map(item => ({
timestamp: item.time, // 时间戳
open: item.open, // 开盘
high: item.high, // 最高
low: item.low, // 最低
close: item.close, // 收盘
volume: item.volume // 成交量
}));
return chartData;
}
进阶功能:IPO 日历与涨跌榜
除了基础行情,API 还提供了一些特色数据,非常适合做市场热点分析。
-
IPO 新股日历:
查询印度即将上市或已上市的股票。
GET /stock/getIpo?countryId=14&type=1&key=YOUR_KEY(type=1表示未上市) -
涨跌幅排行榜:
快速发现市场中波动最大的股票。
GET /stock/updownList?countryId=14&type=1&key=YOUR_KEY(type=1涨幅榜,2跌幅榜)
总结
通过 StockTV 的 API,我们可以非常便捷地构建一个印度股市行情看板。其核心逻辑总结如下:
- 锁定 Country ID = 14。
- 通过 列表接口 获取 PID。
- 通过 K 线接口 获取历史数据用于绘图。
- 利用 IPO 和排行榜接口 丰富应用内容。
如果你正在开发全球化的金融应用,这套接口能够极大降低对接印度市场的门槛。

浙公网安备 33010602011771号