印度股票数据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股票ID7310

响应示例

{
"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股票ID7310
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国家ID14
type1=即将上市, 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国家ID14
type1=涨幅榜, 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国家ID14
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交易所说明
46NSE印度国家证券交易所
74BSE孟买证券交易所

8.2 股票字段说明

字段说明示例
pid股票唯一ID7310
symbol股票代码RELIANCE
last最新价2856.75
chgPct涨跌幅百分比1.25
volume成交量4521890
marketCap市值(卢比)1920000000000
peRatio市盈率28.6

8.3 K线时间粒度

说明
PT5M5分钟
PT15M15分钟
PT1H1小时
P1D日线
P1W周线
P1M月线

九、技术支持

  • 官方文档:https://stocktv.top

十、附录

10.1 印度市场交易时间

交易所交易时段(IST)休息时间
NSE9:15 - 15:30
BSE9:15 - 15:30

10.2 货币单位

所有价格均以印度卢比(INR) 为单位

本文档版本:v2.1.0
最后更新:2025年9月3日
下载PDF版本:https://stocktv.top/

posted @ 2025-09-04 17:11  yjbjingcha  阅读(9)  评论(0)    收藏  举报