This answer is currently available in Chinese only; an English version is coming soon.
台股資料 API 怎麼選、如何用 Python 抓台股歷史資料
選台股資料 API 先看三件事:資料是否第一手(TWSE / TPEx / MOPS / TAIFEX)、每筆回應是否附來源 lineage、以及是否誠實揭露 coverage 與 data_gaps。用 Python 抓歷史資料的基本流程是:在 header 帶 X-API-Key 呼叫對應 dataset 端點、拿到 JSON rows、再依 freshness 與 data_gaps 訊號判讀完整度。TW Market Data 為 TWSE-first verified baseline,公開揭露限制(例如 TPEx 歷史深度尚未完整開放),不宣稱 full-market。
用 Python 抓台股日線(quick start)
帶 X-API-Key 呼叫日線價格 dataset,讀取 JSON rows:
import requests
headers = {"X-API-Key": "your_api_key_here"}
url = "https://api.twmarketdata.com/v2/datasets/twse-daily-price?symbol=2330&limit=10"
print(requests.get(url, headers=headers).json())如何正確判讀 coverage 與 data_gaps
使用前先讀回應與 dataset 頁上的 freshness、data_gaps 訊號,不要假設歷史完整;缺口會被標示、不以推測值補洞。
免費層可以先測到什麼程度
免費方案包含基礎資料集(不含財報三表)並有每月請求額度,可先把整條串接跑通再升級。Python SDK(pip install)為規劃中、尚未發布。
Common questions
1台股資料 API 怎麼選?
看資料是否第一手(TWSE / TPEx / MOPS / TAIFEX)、每筆回應是否附來源 lineage、以及是否誠實揭露 coverage 與 data_gaps。避免會用推測值補洞、或宣稱 full-market 卻無法佐證的來源。
2可以用 Python 抓台股歷史資料嗎?
可以。在 header 帶 X-API-Key 呼叫對應 dataset 端點(例如 /v2/datasets/twse-daily-price?symbol=2330&limit=10),取得 JSON rows 後即可寫入 DataFrame;使用前先讀 freshness 與 data_gaps 訊號。
3有涵蓋 TPEx(上櫃)歷史嗎?
目前公開定位為 TWSE-first verified baseline,TPEx 歷史深度尚未完整開放,且不宣稱 full-market。實際可用範圍以各 dataset 文件與回應中的 data_gaps 為準。
4不申請金鑰可以先試嗎?
可以,但條件要同時成立兩個:資料集屬於免費層,而且代號是 2330、2317、2454、0050、2603 其中一檔。兩個都成立才免金鑰——非示範代號即使在免費層也會回 401 missing_api_key,付費層資料集則不論代號都需要金鑰。先用這個組合確認請求格式與回應結構,再決定要不要註冊。
5和直接打官方 TWSE OpenAPI 差在哪?
官方端點免費且是第一手來源,能自己處理就夠用。差別在於官方端點各自獨立、欄位命名不一致,多數只回最新一期快照(歷史要自己每期抓取累積),日期為民國年格式。用 Python 只是要當期資料時,直接打官方最省事。
6怎麼避免回測偷看未來?
以知悉時點(而非資料期別)過濾。每筆資料記錄了它何時可被知道,用 as-of 查詢就只會取到回測當下真正公開的資訊。
Want to query this data yourself? Create a free account.