StockTV API为开发者提供全面的美股市场数据接口,涵盖实时行情、历史数据、指数信息、公司详情等功能。本指南详细说明如何使用API接口获取美股相关数据,所有接口均返回标准JSON格式。
key=your_api_key_herehttps://api.stocktv.top获取美股市场股票列表,支持分页和交易所筛选。
接口地址:GET /stock/stocks
请求参数:
{
"countryId": 5, // 必填,美国国家ID为5
"pageSize": 20, // 选填,每页记录数,默认10
"page": 1, // 选填,页码,默认1
"exchangeId": 1, // 选填,交易所ID(1:NYSE, 2:NASDAQ)
"key": "your_key" // 必填,API密钥
}示例请求:
curl -X GET "https://api.stocktv.top/stock/stocks?countryId=5&pageSize=20&page=1&key=your_api_key"响应结构:
{
"code": 200,
"message": "操作成功",
"data": {
"records": [
{
"id": 7310,
"symbol": "AAPL",
"name": "Apple Inc",
"last": 195.42,
"chg": 2.15,
"chgPct": 1.11,
"high": 196.88,
"low": 192.75,
"volume": 45678900,
"avgVolume": 51234500,
"exchangeId": 2,
"countryId": 5,
"countryNameTranslated": "United States",
"flag": "US",
"open": true,
"lastClose": 193.27,
"pairType": "Equities",
"time": 1755008213,
"url": "/equities/apple-inc"
}
],
"total": 5832,
"size": 20,
"current": 1,
"pages": 292
}
}关键字段说明:
id: 股票唯一标识(PID),用于其他接口查询symbol: 股票交易代码exchangeId: 交易所标识(1:NYSE, 2:NASDAQ)open: 交易状态(true:开市, false:休市)根据多种条件查询单个股票详细信息。
接口地址:GET /stock/queryStocks
请求参数:
// 支持以下任一查询条件
id: 7310, // 股票PID
symbol: "AAPL", // 股票代码
name: "Apple Inc", // 公司名称
url: "/equities/apple-inc" // 详情页URL示例请求:
# 通过PID查询
curl -X GET "https://api.stocktv.top/stock/queryStocks?id=7310&key=your_key"
# 通过股票代码查询
curl -X GET "https://api.stocktv.top/stock/queryStocks?symbol=AAPL&key=your_key"响应包含技术指标:
{
"technicalDay": "strong_buy", // 日线技术信号
"technicalHour": "buy", // 小时线技术信号
"technicalMonth": "neutral", // 月线技术信号
"technicalWeek": "buy", // 周线技术信号
"fundamentalBeta": 1.23, // Beta系数
"fundamentalMarketCap": 3050000000000, // 市值
"fundamentalRevenue": "383.29B" // 营收
}一次请求获取多个股票的实时数据。
接口地址:GET /stock/stocksByPids
请求参数:
pids: "7310,17976,24582" // 必填,PID列表,逗号分隔使用场景:
获取美国主要股票指数信息。
接口地址:GET /stock/indices
请求参数:
countryId: 5, // 美国国家ID
flag: "US", // 选填,国家代码美国主要指数:
响应示例:
{
"id": 12345,
"name": "S&P 500",
"symbol": "SPX",
"last": 5450.25,
"chg": 35.50,
"chgPct": 0.66,
"isOpen": true,
"time": 1755008213
}获取股票的历史价格数据,支持多种时间周期。
接口地址:GET /stock/kline
时间周期参数:
interval | 说明 | 适用场景 |
|---|---|---|
PT5M | 5分钟线 | 日内交易 |
PT15M | 15分钟线 | 短线分析 |
PT1H | 1小时线 | 趋势分析 |
P1D | 日线 | 技术分析 |
P1W | 周线 | 长期趋势 |
P1M | 月线 | 投资决策 |
示例请求:
# 获取苹果公司日K线
curl -X GET "https://api.stocktv.top/stock/kline?pid=7310&interval=P1D&key=your_key"K线数据结构:
{
"time": 1754928000000, // 时间戳(毫秒)
"open": 192.50, // 开盘价
"high": 196.25, // 最高价
"low": 191.80, // 最低价
"close": 195.42, // 收盘价
"volume": 51234500, // 成交量
"vo": 1001203456.50 // 成交额
}获取美股市场的实时涨跌排名。
接口地址:GET /stock/updownList
排行榜类型:
type | 说明 | 数据量 |
|---|---|---|
1 | 涨幅榜 | 前50名 |
2 | 跌幅榜 | 前50名 |
3 | 涨停榜 | 实时数据 |
4 | 跌停榜 | 实时数据 |
获取上市公司的详细资料。
接口地址:GET /stock/companies
响应字段:
{
"companyName": "Apple Inc Company Profile",
"description": "Apple Inc. designs, manufactures, and markets smartphones, personal computers, tablets, wearables, and accessories worldwide...",
"industry": "Consumer Electronics",
"sector": "Technology",
"employeeCount": 164000,
"market": "United States",
"countryId": 5
}通过WebSocket获取股票的实时行情更新。
连接地址:
wss://ws-api.stocktv.top/connect?key=your_api_keyJavaScript示例:
const ws = new WebSocket('wss://ws-api.stocktv.top/connect?key=your_key');
ws.onopen = () => {
console.log('WebSocket连接已建立');
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('实时数据:', data);
// 数据处理示例
if (data.type === 1) { // 股票类型
updateStockPrice(data.pid, {
price: data.last_numeric,
change: data.pc,
changePercent: data.pcp,
volume: data.turnover_numeric
});
}
};
// 心跳保持连接
setInterval(() => {
if (ws.readyState === WebSocket.OPEN) {
ws.send(JSON.stringify({ type: 'ping' }));
}
}, 30000);WebSocket数据格式:
{
"pid": "7310",
"last_numeric": "195.42",
"bid": "195.40",
"ask": "195.44",
"high": "196.88",
"low": "192.75",
"last_close": "193.27",
"pc": "+2.15",
"pcp": "+1.11%",
"turnover_numeric": "45678900",
"time": "16:00:00",
"timestamp": "1755008213",
"type": 1
}open字段标识当前交易状态{
"code": 200, // 状态码
"message": "操作成功", // 状态信息
"data": {} // 业务数据
}状态码 | 说明 | 处理建议 |
|---|---|---|
200 | 请求成功 | 正常处理数据 |
400 | 参数错误 | 检查请求参数 |
401 | 认证失败 | 验证API密钥 |
404 | 接口不存在 | 检查接口地址 |
429 | 请求频繁 | 降低调用频率 |
500 | 服务器错误 | 稍后重试 |
async function fetchStockData(pid) {
try {
const response = await fetch(
`https://api.stocktv.top/stock/kline?pid=${pid}&interval=P1D&key=${API_KEY}`
);
const result = await response.json();
if (result.code === 200) {
return result.data;
} else {
console.error(`API错误 ${result.code}: ${result.message}`);
return null;
}
} catch (error) {
console.error('网络请求失败:', error);
return null;
}
}// 批量查询替代循环单查
const pids = ['7310', '24582', '38291'].join(',');
const url = `https://api.stocktv.top/stock/stocksByPids?pids=${pids}&key=${API_KEY}`;
// 合理设置缓存
const CACHE_DURATION = 30000; // 30秒
let lastFetchTime = 0;
let cachedData = null;
async function getCachedData() {
const now = Date.now();
if (!cachedData || (now - lastFetchTime) > CACHE_DURATION) {
cachedData = await fetchData();
lastFetchTime = now;
}
return cachedData;
}// 实时数据使用WebSocket
const ws = new WebSocket(`wss://ws-api.stocktv.top/connect?key=${API_KEY}`);
// 非交易时间使用定时查询
if (marketIsOpen()) {
// 使用WebSocket实时推送
} else {
// 使用HTTP定时查询,间隔可适当延长
setInterval(fetchStockData, 60000); // 1分钟
}<div class="stock-widget">
<div class="stock-header">
<span class="symbol">AAPL</span>
<span class="name">Apple Inc</span>
</div>
<div class="stock-price">
<span class="price">195.42</span>
<span class="change positive">+2.15 (+1.11%)</span>
</div>
<div class="stock-details">
<div>高: 196.88</div>
<div>低: 192.75</div>
<div>量: 45.68M</div>
</div>
</div>// 使用ECharts绘制K线图
async function renderKLineChart(pid) {
const klineData = await fetchKLineData(pid, 'P1D', 100);
const chart = echarts.init(document.getElementById('chart'));
const option = {
xAxis: { data: klineData.map(item => formatTime(item.time)) },
yAxis: { scale: true },
series: [{
type: 'candlestick',
data: klineData.map(item => [
item.open,
item.close,
item.low,
item.high
])
}]
};
chart.setOption(option);
}class StockMonitor {
constructor(stockList) {
this.stocks = new Map();
this.ws = null;
this.initWebSocket();
}
initWebSocket() {
this.ws = new WebSocket(`wss://ws-api.stocktv.top/connect?key=${API_KEY}`);
this.ws.onmessage = (event) => {
const data = JSON.parse(event.data);
this.updateStock(data);
// 触发价格预警
this.checkAlerts(data);
};
}
updateStock(data) {
const stock = this.stocks.get(data.pid);
if (stock) {
Object.assign(stock, data);
this.emit('update', stock);
}
}
checkAlerts(data) {
// 实现价格预警逻辑
}
}本指南提供了StockTV美股API的完整对接方案,涵盖从基础查询到高级应用的各个场景。开发者可根据实际需求选择合适的接口和技术方案,构建稳定、高效的股票数据应用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。