获取印度尼西亚股票数据API完全指南
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 datetimeclass IndonesiaStockAPI:def __init__(self, api_key):self.api_key = api_keyself.base_url = "https://api.stocktv.top"self.country_id = 10 # 印尼国家IDdef 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 Noneexcept Exception as e:print(f"获取印尼股票列表失败: {e}")return Nonedef 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 Nonereturn Noneexcept Exception as e:print(f"获取股票详情失败: {e}")return Nonedef 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 Noneexcept 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; // 印尼国家IDclass 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接口由相应服务商提供,使用前请确保已获得合法授权。本文仅做技术交流用途,不构成任何投资建议。股市投资有风险,投资需谨慎。