印度股票数据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 requests
url = "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);
}
@Override
public void onOpen(ServerHandshake handshakedata) {
System.out.println("Connected to India Stock API");
// 订阅Reliance和HDFC Bank
send("{\"action\":\"subscribe\",\"pids\":[7310, 8320]}");
}
@Override
public void onMessage(String message) {
System.out.println("Received: " + message);
// 解析和处理实时数据
}
@Override
public void onClose(int code, String reason, boolean remote) {
System.out.println("Connection closed: " + reason);
}
@Override
public 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]
# 调用API
data = api_request(stock_id)
stock_cache[stock_id] = data
return 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/