API接口详情
1. 获取印尼市场股票列表
接口地址: GET /stock/stocks
请求参数:
GET https://api.stocktv.top/stock/stocks?countryId=10&pageSize=10&page=1&key=您的API密钥
参数说明:
countryId: 国家ID,印度尼西亚为10pageSize: 每页显示数量,默认10page: 页码,默认1key: API访问密钥
响应示例:
{
"code": 200,
"message": "操作成功",
"data": {
"records": [
{
"id": 12345,
"name": "Bank Central Asia Tbk",
"symbol": "BBCA",
"last": 8500,
"chg": 150,
"chgPct": 1.80,
"high": 8550,
"low": 8400,
"volume": 12500000,
"avgVolume": 9800000,
"countryNameTranslated": "Indonesia",
"flag": "ID",
"open": true,
"time": 1716448222,
"last_close": 8350
},
{
"id": 12346,
"name": "Astra International Tbk",
"symbol": "ASII",
"last": 5200,
"chg": -50,
"chgPct": -0.95,
"high": 5300,
"low": 5150,
"volume": 8500000,
"avgVolume": 7200000,
"countryNameTranslated": "Indonesia",
"flag": "ID",
"open": true,
"time": 1716448222,
"last_close": 5250
}
],
"total": 800,
"size": 10,
"current": 1,
"pages": 80
}
}
2. 查询特定印尼股票信息
接口地址: GET /stock/queryStocks
请求参数:
GET https://api.stocktv.top/stock/queryStocks?id=12345&key=您的API密钥
参数说明:
id: 股票PID(可通过市场列表接口获取)name: 股票名称(可选)symbol: 股票代码(可选)key: API访问密钥
3. 获取印尼市场指数
接口地址: GET /stock/indices
请求参数:
GET https://api.stocktv.top/stock/indices?countryId=10&key=您的API密钥
响应示例:
{
"code": 200,
"message": "操作成功",
"data": [
{
"id": 1001,
"name": "IDX Composite",
"symbol": "JKSE",
"last": 7250.65,
"chg": 45.85,
"chgPct": 0.64,
"high": 7280.60,
"low": 7200.45,
"isOpen": true,
"flag": "ID",
"time": 1716458537
},
{
"id": 1002,
"name": "LQ45 Index",
"symbol": "LQ45",
"last": 950.35,
"chg": 8.25,
"chgPct": 0.88,
"high": 955.20,
"low": 945.15,
"isOpen": true,
"flag": "ID",
"time": 1716458537
}
]
}
4. 获取K线数据
接口地址: GET /stock/kline
请求参数:
GET https://api.stocktv.top/stock/kline?pid=12345&interval=PT15M&key=您的API密钥
时间间隔参数:
PT5M: 5分钟PT15M: 15分钟PT1H: 1小时P1D: 1天P1W: 1周P1M: 1月
5. 获取印尼市场新闻
接口地址: GET /stock/news
请求参数:
GET https://api.stocktv.top/stock/news?countryId=10&pageSize=5&page=1&key=您的API密钥
使用示例
Python获取印尼股票数据示例
import requests
import pandas as pd
from datetime import datetime
class IndonesiaStockAPI:
def __init__(self, api_key):
self.api_key = api_key
self.base_url = "https://api.stocktv.top"
self.country_id = 10 # 印尼国家ID
def get_indonesia_stocks(self, page=1, page_size=20):
"""获取印尼股票列表"""
url = f"{self.base_url}/stock/stocks"
params = {
"countryId": self.country_id,
"page": page,
"pageSize": page_size,
"key": self.api_key
}
try:
response = requests.get(url, params=params, timeout=10)
if response.status_code == 200:
data = response.json()
if data["code"] == 200:
return data["data"]
return None
except Exception as e:
print(f"获取印尼股票列表失败: {e}")
return None
def get_stock_detail(self, stock_id):
"""获取股票详细信息"""
url = f"{self.base_url}/stock/queryStocks"
params = {
"id": stock_id,
"key": self.api_key
}
try:
response = requests.get(url, params=params, timeout=10)
if response.status_code == 200:
data = response.json()
if data["code"] == 200:
return data["data"][0] if data["data"] else None
return None
except Exception as e:
print(f"获取股票详情失败: {e}")
return None
def get_indices(self):
"""获取印尼市场指数"""
url = f"{self.base_url}/stock/indices"
params = {
"countryId": self.country_id,
"key": self.api_key
}
try:
response = requests.get(url, params=params, timeout=10)
if response.status_code == 200:
data = response.json()
if data["code"] == 200:
return data["data"]
return None
except Exception as e:
print(f"获取指数数据失败: {e}")
return None
# 使用示例
if __name__ == "__main__":
API_KEY = "您的API密钥"
idn_api = IndonesiaStockAPI(API_KEY)
# 获取印尼股票列表
stocks = idn_api.get_indonesia_stocks(1, 10)
if stocks and "records" in stocks:
print("=== 印尼股票列表 ===")
for stock in stocks["records"]:
print(f"{stock['symbol']} - {stock['name']}: {stock['last']} IDR")
# 获取印尼市场指数
indices = idn_api.get_indices()
if indices:
print("\n=== 印尼市场指数 ===")
for index in indices:
change_icon = "↑" if index["chg"] >= 0 else "↓"
print(f"{index['name']}: {index['last']} {change_icon}{abs(index['chgPct'])}%")
# 获取特定股票详情(例如BBCA)
bca_stock = idn_api.get_stock_detail(12345)
if bca_stock:
print(f"\n=== Bank BCA详情 ===")
print(f"当前价格: {bca_stock['last']} IDR")
print(f"涨跌幅: {bca_stock['chg']} ({bca_stock['chgPct']}%)")
print(f"成交量: {bca_stock['volume']}")
JavaScript获取印尼股票数据
// 使用Fetch API获取印尼股票数据
const API_KEY = '您的API密钥';
const BASE_URL = 'https://api.stocktv.top';
const COUNTRY_ID = 10; // 印尼国家ID
class IndonesiaStockData {
// 获取印尼股票列表
async getStocks(page = 1, pageSize = 20) {
const url = `${BASE_URL}/stock/stocks?countryId=${COUNTRY_ID}&page=${page}&pageSize=${pageSize}&key=${API_KEY}`;
try {
const response = await fetch(url);
const data = await response.json();
if (data.code === 200) {
return data.data;
}
return null;
} catch (error) {
console.error('获取印尼股票列表失败:', error);
return null;
}
}
// 获取印尼市场指数
async getIndices() {
const url = `${BASE_URL}/stock/indices?countryId=${COUNTRY_ID}&key=${API_KEY}`;
try {
const response = await fetch(url);
const data = await response.json();
if (data.code === 200) {
return data.data;
}
return null;
} catch (error) {
console.error('获取印尼指数失败:', error);
return null;
}
}
// 更新页面显示
updateStockDisplay(stocks) {
const container = document.getElementById('indonesia-stocks');
container.innerHTML = '';
stocks.forEach(stock => {
const changeClass = stock.chg >= 0 ? 'positive' : 'negative';
const changeIcon = stock.chg >= 0 ? '↑' : '↓';
const stockElement = document.createElement('div');
stockElement.className = 'stock-item';
stockElement.innerHTML = `
<div class="stock-symbol">${stock.symbol}</div>
<div class="stock-name">${stock.name}</div>
<div class="stock-price">${stock.last.toLocaleString()}</div>
<div class="stock-change ${changeClass}">
${changeIcon} ${Math.abs(stock.chg)} (${Math.abs(stock.chgPct)}%)
</div>
<div class="stock-volume">成交量: ${(stock.volume / 1000000).toFixed(2)}M</div>
`;
container.appendChild(stockElement);
});
}
}
// 使用示例
const stockData = new IndonesiaStockData();
// 页面加载时获取数据
document.addEventListener('DOMContentLoaded', async () => {
const stocks = await stockData.getStocks(1, 10);
if (stocks && stocks.records) {
stockData.updateStockDisplay(stocks.records);
}
const indices = await stockData.getIndices();
if (indices) {
console.log('印尼市场指数:', indices);
}
});
总结
通过本文介绍的API接口,开发者可以轻松获取印尼股票市场的实时行情、历史数据和其他相关信息。这些接口设计简单易懂,支持多种编程语言调用,适合用于开发股票分析应用、投资决策工具或金融数据平台。
印尼作为东南亚最大的经济体之一,其股票市场对于区域投资者具有重要参考价值。无论是个人投资者还是金融机构,都可以利用这些API构建专业的印尼股市分析系统。
版权声明:本文涉及API接口由相应服务商提供,使用前请确保已获得合法授权。本文仅做技术交流用途,不构成任何投资建议。股市投资有风险,投资需谨慎。
6918

被折叠的 条评论
为什么被折叠?



