深色模式

參考

資料模型

一檔證券的資料由 manifest 列出各資料集的分塊,每個分塊是一份不可變的 Envelope;SDK 依分塊的 from、to 排序後串接。

Release 與 manifest

物件
欄位
ReleaseCurrent
release(YYYY-MM-DD.N)、tradeDate、revoked[](近 7 天內撤回的版本)
SecurityManifest
securityId、release、datasets(資料集 id 對應 DatasetManifest,可能缺鍵)
DatasetManifest
dataset、tradeDate(最新一筆的日期)、historyStart、finality(preliminary、final)、chunks[]
ChunkRef
kind、hash(32 字元 hex)、from、to(含頭尾的日期區間)
MarketManifest
dataset、release、keys(TAIEX、TPEX 對應 DatasetManifest)

分塊種類

kind
內容
多久換一次
hist
去年 12/31 以前
每年
ytd
日頻資料:今年初至上月底;其他:今年初起
日頻每月;其他依資料更新
mtd
日頻資料的本月
每日
fyYYYY
財報三表每年一塊
該年度有新財報時
snap
公司資料快照
內容有變時

1 月時日頻資料沒有 ytd。請不要依 kind 名稱判斷順序,未來可能新增種類。

Envelope

每個分塊是 { data, meta }。data 為欄式資料;meta 含 dataset、contract("1.0")、asOf、delayClass("end-of-day")、sources,以及選填的 securityId、historyStart、range。

Envelope(縮減示意)
{
  "data": {
    "lastTradeDate": ["2026-11-03", "2026-11-04"],
    "open": [1450, 1462], "high": [1468, 1470], "low": [1445, 1455], "close": [1465, 1460],
    "volumeShares": [28391000, 30120000]
  },
  "meta": { "dataset": "price.daily", "contract": "1.0", "delayClass": "end-of-day",
            "range": { "from": "2026-11-03", "to": "2026-11-04" } }
}

上例為縮減示意,實際欄位較多,數值非真實資料。

雜湊規則

對 data(不含 meta)做 canonical JSON:鍵依 UTF-16 排序、無空白、數字用 JSON.stringify 表示法,取 SHA-256 hex 前 32 字元。數值絕對值小於 1e15、小數至多 6 位。

Presentation

GET /v1/presentation/{dataset} 回傳 { layout, columns[] }。每欄有 field、label、format、align,選填 color(updown 依正負上色)、unit、valueLabels(列舉值對應中文)。

format 可為 date、price、change、changeRate、rate、shares、sharesToLots、amountTwd、flag、text。只列摘要欄位,不等於資料集的完整欄位。