印度股票数据API对接文档
印度股票数据API对接文档
本文档提供StockTV印度股票市场数据API的完整对接指南,包含实时行情、历史数据、公司信息等核心功能的接口说明
一、接口概览
1.1 支持交易所
交易所代码 | 交易所名称 | 覆盖股票数量 |
---|---|---|
NSE | 印度国家证券交易所 | 1800+ |
BSE | 孟买证券交易所 | 5000+ |
1.2 数据特性
- 实时行情:毫秒级延迟
- 历史数据:支持最长10年历史K线
- 基本面数据:包含PE比率、市值等指标
- 多维度数据:指数、IPO、公司信息等
- 数据格式:统一JSON格式
二、接入准备
2.1 获取API Key
联系官方获取密钥:https://t.me/CryptoRzz
2.2 请求基础URL
https://api.stocktv.top
2.3 请求头设置
X-Api-Key: YOUR_API_KEY
Content-Type: application/json
三、核心接口说明
3.1 市场列表接口
获取印度交易所股票列表
接口地址:
GET /stock/stocks
请求参数:
参数 | 必选 | 说明 | 示例值 |
---|---|---|---|
countryId | 是 | 国家ID(印度为14) | 14 |
exchangeId | 否 | 交易所ID(46=NSE, 74=BSE) | 46 |
pageSize | 否 | 每页数量 | 100 |
page | 否 | 页码 | 1 |
响应示例:
{"code": 200,"data": {"records": [{"id": 7310, // 股票唯一ID"symbol": "RELIANCE", // 股票代码"name": "Reliance Industries Ltd","last": 2856.75, // 最新价"chgPct": 1.25, // 涨跌幅%"volume": 4521890, // 成交量"high": 2862.40, // 当日最高"low": 2835.10, // 当日最低"open": true, // 是否开市"cfd": false, // 是否为CFD"marketCap": 1920000000000 // 市值(卢比)}],"total": 1800,"pages": 18}
}
3.2 股票详情查询
获取指定股票实时行情
接口地址:
GET /stock/queryStocks
请求参数:
参数 | 必选 | 说明 | 示例值 |
---|---|---|---|
id | 是 | 股票ID | 7310 |
响应示例:
{"code": 200,"data": [{"id": 7310,"symbol": "RELIANCE","name": "Reliance Industries Ltd","last": 2856.75,"prevClose": 2821.50, // 前收盘价"open": 2838.25, // 开盘价"high": 2862.40,"low": 2835.10,"volume": 4521890,"avgVolume": 3854200, // 平均成交量"peRatio": 28.6, // 市盈率"eps": 99.83, // 每股收益"dividendYield": 0.41, // 股息率"beta": 0.87, // Beta值"sector": "Energy" // 行业分类}]
}
3.3 指数数据
获取印度主要指数行情
接口地址:
GET /stock/indices
请求参数:
参数 | 必选 | 说明 | 示例值 |
---|---|---|---|
countryId | 是 | 国家ID(印度为14) | 14 |
响应示例:
{"code": 200,"data": [{"id": 17940,"symbol": "NSEI", // Nifty 50指数"name": "Nifty 50","last": 22967.65,"change": 369.85, // 涨跌额"changePct": 1.64, // 涨跌幅%"high": 22993.6,"low": 22577.45,"prevClose": 22597.80,"time": 1716458537 // 更新时间戳},{"id": 17941,"symbol": "BSESN", // SENSEX指数"name": "BSE SENSEX","last": 75568.90,"change": 624.35,"changePct": 0.83,"high": 75642.20,"low": 74920.15,"prevClose": 74944.55,"time": 1716458537}]
}
3.4 历史K线数据
获取股票历史价格数据
接口地址:
GET /stock/kline
请求参数:
参数 | 必选 | 说明 | 示例值 |
---|---|---|---|
pid | 是 | 股票ID | 7310 |
interval | 是 | 时间粒度 | PT15M(15分钟) P1D(日线) |
响应示例:
{"code": 200,"data": [{"time": 1725004800000, // 时间戳(ms)"open": 2838.25,"high": 2862.40,"low": 2835.10,"close": 2856.75,"volume": 4521890},{"time": 1725003900000,"open": 2835.80,"high": 2841.20,"low": 2832.50,"close": 2839.60,"volume": 3201450}]
}
四、高级数据接口
4.1 IPO新股日历
获取即将上市的新股信息
接口地址:
GET /stock/getIpo
请求参数:
参数 | 必选 | 说明 | 示例值 |
---|---|---|---|
countryId | 是 | 国家ID | 14 |
type | 否 | 1=即将上市, 2=已上市 | 1 |
响应示例:
{"code": 200,"data": [{"id": 19,"company": "Saraswati Saree Depot Ltd","symbol": "SARW","exchange": "NSE","ipoPrice": "160.00","listingDate": "2024-08-20", // 上市日期"ipoValue": "1.6B", // 发行市值"last": "158.23", // 最新价"pid": 1218991 // 股票ID}]
}
4.2 涨跌排行榜
获取涨幅榜/跌幅榜数据
接口地址:
GET /stock/updownList
请求参数:
参数 | 必选 | 说明 | 示例值 |
---|---|---|---|
countryId | 是 | 国家ID | 14 |
type | 是 | 1=涨幅榜, 2=跌幅榜, 3=涨停, 4=跌停 | 1 |
响应示例:
{"code": 200,"data": [{"id": 946725,"symbol": "IGSL","name": "Inventure Growth Securities","last": 2.46,"change": -0.62,"changePct": -20.13,"volume": 13955963}]
}
4.3 公司基本面数据
获取公司详细信息
接口地址:
GET /stock/companies
请求参数:
参数 | 必选 | 说明 | 示例值 |
---|---|---|---|
countryId | 是 | 国家ID | 14 |
pageSize | 否 | 每页数量 | 10 |
page | 否 | 页码 | 1 |
响应示例:
{"code": 200,"data": {"records": [{"companyName": "Reliance Industries Ltd","description": "综合企业集团,业务涵盖石化、零售、电信...","industry": "综合企业","sector": "工业","employeeCount": 34681,"market": "India","url": "/equities/reliance-industries","financials": {"revenue": "8.3T INR", // 营收"netIncome": "736B INR", // 净利润"assets": "15.8T INR" // 总资产}}],"total": 6838,"pages": 684}
}
五、实时数据推送
5.1 WebSocket连接
wss://ws-api.stocktv.top/connect?key=YOUR_API_KEY
5.2 订阅消息
{"action": "subscribe","pids": [7310, 41602] // 订阅的股票ID列表
}
5.3 实时数据格式
{"pid": "7310", // 股票ID"symbol": "RELIANCE", // 股票代码"last": "2856.75", // 最新价"change": "35.25", // 涨跌额"changePct": "1.25", // 涨跌幅%"volume": "4521890", // 成交量"bid": "2856.50", // 买一价"ask": "2857.00", // 卖一价"high": "2862.40", // 当日最高"low": "2835.10", // 当日最低"open": "2838.25", // 开盘价"prevClose": "2821.50",// 前收盘"timestamp": 1725008213 // 更新时间
}
5.4 心跳机制
客户端需每30秒发送心跳消息:
{"action": "ping"}
六、代码示例
6.1 Python获取股票数据
import requestsurl = "https://api.stocktv.top/stock/stocks"
params = {"countryId": 14,"exchangeId": 46,"pageSize": 100,"page": 1
}
headers = {"X-Api-Key": "YOUR_API_KEY","Content-Type": "application/json"
}response = requests.get(url, params=params, headers=headers)
if response.status_code == 200:data = response.json()for stock in data["data"]["records"]:print(f"{stock['symbol']}: {stock['last']}")
6.2 Java实时数据订阅
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;import java.net.URI;public class IndiaStockWS extends WebSocketClient {public IndiaStockWS(URI serverUri) {super(serverUri);}@Overridepublic void onOpen(ServerHandshake handshakedata) {System.out.println("Connected to India Stock API");// 订阅Reliance和HDFC Banksend("{\"action\":\"subscribe\",\"pids\":[7310, 8320]}");}@Overridepublic void onMessage(String message) {System.out.println("Received: " + message);// 解析和处理实时数据}@Overridepublic void onClose(int code, String reason, boolean remote) {System.out.println("Connection closed: " + reason);}@Overridepublic void onError(Exception ex) {ex.printStackTrace();}public static void main(String[] args) {String wsUrl = "wss://ws-api.stocktv.top/connect?key=YOUR_API_KEY";IndiaStockWS client = new IndiaStockWS(URI.create(wsUrl));client.connect();}
}
6.3 Node.js获取K线数据
const axios = require('axios');async function getKlineData() {try {const response = await axios.get('https://api.stocktv.top/stock/kline', {params: {pid: 7310,interval: 'P1D'},headers: {'X-Api-Key': 'YOUR_API_KEY'}});console.log('Kline Data:', response.data.data);} catch (error) {console.error('API Error:', error.response.data);}
}getKlineData();
七、最佳实践
7.1 数据缓存策略
from cachetools import TTLCache# 创建缓存(5秒过期)
stock_cache = TTLCache(maxsize=100, ttl=5)def get_stock_data(stock_id):if stock_id in stock_cache:return stock_cache[stock_id]# 调用APIdata = api_request(stock_id)stock_cache[stock_id] = datareturn data
7.2 错误处理机制
try {JsonNode response = stockApi.getQuote("RELIANCE");
} catch (HttpClientErrorException e) {switch (e.getStatusCode()) {case TOO_MANY_REQUESTS:// 429 请求过多Thread.sleep(1000); // 等待1秒break;case UNAUTHORIZED:// 401 认证失败refreshApiKey();break;default:log.error("API Error: {}", e.getMessage());}
}
7.3 实时数据批处理
// WebSocket数据批量处理
const batchQueue = [];
let batchTimer = null;socket.onmessage = (event) => {const data = JSON.parse(event.data);batchQueue.push(data);if (!batchTimer) {batchTimer = setTimeout(() => {processBatch(batchQueue);batchQueue.length = 0;batchTimer = null;}, 100); // 每100ms处理一批}
};function processBatch(batch) {// 批量更新UI或存储数据
}
八、数据字典
8.1 交易所ID映射
ID | 交易所 | 说明 |
---|---|---|
46 | NSE | 印度国家证券交易所 |
74 | BSE | 孟买证券交易所 |
8.2 股票字段说明
字段 | 说明 | 示例 |
---|---|---|
pid | 股票唯一ID | 7310 |
symbol | 股票代码 | RELIANCE |
last | 最新价 | 2856.75 |
chgPct | 涨跌幅百分比 | 1.25 |
volume | 成交量 | 4521890 |
marketCap | 市值(卢比) | 1920000000000 |
peRatio | 市盈率 | 28.6 |
8.3 K线时间粒度
值 | 说明 |
---|---|
PT5M | 5分钟 |
PT15M | 15分钟 |
PT1H | 1小时 |
P1D | 日线 |
P1W | 周线 |
P1M | 月线 |
九、技术支持
- 官方文档:https://stocktv.top
十、附录
10.1 印度市场交易时间
交易所 | 交易时段(IST) | 休息时间 |
---|---|---|
NSE | 9:15 - 15:30 | 无 |
BSE | 9:15 - 15:30 | 无 |
10.2 货币单位
所有价格均以印度卢比(INR) 为单位
本文档版本:v2.1.0
最后更新:2025年9月3日
下载PDF版本:https://stocktv.top/