Historical Candles
查詢上市櫃、興櫃及指數歷史股價(依代碼查詢)。單次查詢區間須小於 1 年;上市櫃個股日資料最遠可回溯至 2010 年,指數部分最遠可回溯至 2015 年,興櫃則可回溯至 2024 年。
GET /historical/candles/{symbol}
Parameters
| Name | Type | Description |
|---|---|---|
symbol* | string | 股票代碼 |
from | string | 開始日期(格式:yyyy-MM-dd),未帶時預設為 1 個月前 |
to | string | 結束日期(格式:yyyy-MM-dd),未帶時預設為今日 |
timeframe | string | K線週期,未帶時預設為 D 日 K;可選 1 1 分K;3 3 分K;5 5 分K;10 10 分K;15 15 分K;30 30 分K;60 60 分K;D 日K;W 週K;M 月K |
adjusted | string | 還原股價啟用,可選 true、false(僅日/週/月K有效) |
fields | string | 欄位選擇,未帶時預設為 open,high,low,close,volume,average(不含 turnover、change,需要時請明確指定);可選 open、high、low、close、volume、average、turnover、change(各欄位適用 timeframe 請見 Response 表格) |
sort | string | 時間排序,未帶時預設為 desc 降冪;可選 asc 升冪 |
info
- 歷史資料於每交易日盤後 16:30 前完成更新。
- 日K資料涵蓋:上市櫃個股自 2010 年、指數自 2015 年、興櫃自 2024 年起。
- 查詢區間(
from~to)單次須小於 1 年,恰好或超過 1 年會回傳 400 Bad Request(例:from=2024-01-01&to=2024-12-31可查詢;from=2023-12-31&to=2024-12-31恰好 1 年會被拒絕)。from不可晚於to,否則 亦回傳 400。 - 分K歷史資料(含興櫃)自 2023-05-23 起提供。
- 查詢區間內查無資料(完全為非交易日、或早於該 timeframe 的資料起始日)會回傳 404 Resource Not Found,而非空陣列。
Response
| Name | Type | Description | 適用 timeframe |
|---|---|---|---|
symbol* | string | 股票代號 | — |
type | string | 證券類型(可能不回傳) | — |
market | string | 市場別(可能不回傳) | — |
exchange* | string | 交易所 | — |
timeframe* | string | K線週期 | — |
data* | object[] | K線資料 | — |
data.date* | string | 日期(日/週/月K為 yyyy-MM-dd;分K為 ISO 8601 含時區,例:2026-04-23T13:30:00.000+08:00) | 全部 |
data.open | number | K線開盤價 | 全部 |
data.high | number | K線最高價 | 全部 |
data.low | number | K線最低價 | 全部 |
data.close | number | K線收盤價 | 全部 |
data.volume | number | K線成交量/成交金額,單位請見下方說明 | 全部 |
data.average | number | 成交均價(自開盤累計) | 僅分K |
data.turnover | number | K線成交金額(元) | 僅日/週/月K |
data.change | number | K線漲跌 | 僅日/週/月K |
sort* | string | 排序方向(desc 或 asc) | — |
adjusted | boolean | 是否為還原股價(帶 adjusted=true 查詢時回傳,僅日/週/月K) | — |
caution
volume 單位會依標的與 timeframe 不同:
- 整股標的:分K為「張」,日/週/月K為「股」(1 張 = 1,000 股)。
- 興櫃股票:分K與日/週/月K皆為「股」。
- 指數:分K為成交金額,日/週/月K為成交股數。
info
change 的計算基準:
- 日K為與前一交易日收盤價之差;除權息日以調整後前收為基準計算(例如除息 5 元、收盤價較前一日收盤低 6 元時,
change為-1)。 - 週/月K為區間內各日漲跌之加總。
adjusted=true時以還原股價序列計算。
Example
日K範例
查詢日K並指定日期區間:
- cURL
- Python
- Node.js
curl -X 'GET' \
'https://api.fugle.tw/marketdata/v1.0/stock/historical/candles/0050?from=2023-02-06&to=2023-02-08&fields=open,high,low,close,volume,change' \
-H 'X-API-KEY: <YOUR_API_KEY>'
from fugle_marketdata import RestClient
client = RestClient(api_key = 'YOUR_API_KEY') # 輸入您的 API key
stock = client.stock # Stock REST API client
stock.historical.candles(**{"symbol": "0050", "from": "2023-02-06", "to": "2023-02-08", "fields": "open,high,low,close,volume,change"})
const { RestClient } = require('@fugle/marketdata');
const client = new RestClient({ apiKey: 'YOUR_API_KEY' });
client.stock.historical.candles({ symbol: '0050', from: '2023-02-06', to: '2023-02-08', fields: 'open,high,low,close,volume,change' })
.then(data => console.log(data));
Response Body:
{
"symbol": "0050",
"type": "EQUITY",
"exchange": "TWSE",
"market": "TSE",
"timeframe": "D",
"data": [
{
"date": "2023-02-08",
"open": 120.1,
"high": 120.95,
"low": 120,
"close": 120.85,
"volume": 9239321,
"change": 1.85
},
{
"date": "2023-02-07",
"open": 119.1,
"high": 119.25,
"low": 118.55,
"close": 119,
"volume": 8787291,
"change": -0.25
},
{
"date": "2023-02-06",
"open": 120.1,
"high": 120.1,
"low": 119.25,
"close": 119.25,
"volume": 14297030,
"change": -1.75
}
],
"sort": "desc"
}
分K範例
查詢 1 分K並指定日期區間(含均價 average):
- cURL
- Python
- Node.js
curl -X 'GET' \
'https://api.fugle.tw/marketdata/v1.0/stock/historical/candles/2330?timeframe=1&from=2026-04-23&to=2026-04-23&fields=open,high,low,close,volume,average' \
-H 'X-API-KEY: <YOUR_API_KEY>'
from fugle_marketdata import RestClient
client = RestClient(api_key = 'YOUR_API_KEY') # 輸入您的 API key
stock = client.stock # Stock REST API client
stock.historical.candles(**{"symbol": "2330", "from": "2026-04-23", "to": "2026-04-23", "timeframe": "1", "fields": "open,high,low,close,volume,average"})
const { RestClient } = require('@fugle/marketdata');
const client = new RestClient({ apiKey: 'YOUR_API_KEY' });
client.stock.historical.candles({ symbol: '2330', from: '2026-04-23', to: '2026-04-23', timeframe: '1', fields: 'open,high,low,close,volume,average' })
.then(data => console.log(data));
Response Body:
{
"symbol": "2330",
"type": "EQUITY",
"exchange": "TWSE",
"market": "TSE",
"timeframe": "1",
"data": [
{
"date": "2026-04-23T13:30:00.000+08:00",
"open": 2080,
"high": 2080,
"low": 2080,
"close": 2080,
"volume": 5330,
"average": 2090.96
},
{
"date": "2026-04-23T13:24:00.000+08:00",
"open": 2090,
"high": 2090,
"low": 2085,
"close": 2090,
"volume": 104,
"average": 2092.31
},
{
"date": "2026-04-23T13:23:00.000+08:00",
"open": 2090,
"high": 2095,
"low": 2085,
"close": 2090,
"volume": 215,
"average": 2092.32
}
],
"sort": "desc"
}
還原股價範例
查詢還原股價(adjusted=true,僅日/週/月K)時,回應會多帶 adjusted 欄位,change 以還原股價序列計算:
GET /historical/candles/2412?from=2026-07-08&to=2026-07-09&adjusted=true&fields=open,high,low,close,volume,change
Response Body:
{
"symbol": "2412",
"type": "EQUITY",
"market": "TSE",
"exchange": "TWSE",
"timeframe": "D",
"data": [
{
"date": "2026-07-09",
"open": 134,
"high": 135,
"low": 133,
"close": 133.5,
"volume": 59918934,
"change": -1
},
{
"date": "2026-07-08",
"open": 136.23,
"high": 136.71,
"low": 134.3,
"close": 134.3,
"volume": 25356630,
"change": -1.44
}
],
"sort": "desc",
"adjusted": true
}