TWSE OpenAPI 是什麼?常用端點總覽與使用須知

發布於

TWSE OpenAPI 是臺灣證券交易所提供的開放資料介面,免註冊、免金鑰,直接 HTTP GET 就回傳 JSON 陣列。上櫃資料由 TPEx 以另一組端點提供。所有端點有兩個共通特性要先知道:日期是民國年字串,而且多數端點回的是最新一期快照而非歷史查詢。

TWSE OpenAPI

臺灣證券交易所提供的開放資料介面:免註冊、免金鑰,直接 HTTP GET 就回傳 JSON 陣列。上櫃資料由證券櫃檯買賣中心(TPEx)以另一組端點提供。

常用端點對照

端點回傳什麼市場
t187ap03_L上市公司基本資料(公司全名、產業別、統一編號、董監事)上市
mopsfin_t187ap03_O同上,上櫃版本;欄位改用英文命名上櫃
t187ap05_L上市公司每月營業收入,含當月、上月、去年同月與增減百分比上市
tpex_mainboard_daily_close_quotes上櫃主板每日收盤行情,含開高低收與成交量值上櫃
STOCK_DAY_ALL全上市市場單一交易日的開高低收與成交量上市

怎麼開始

端點形如 https://openapi.twse.com.tw/v1/opendata/{代碼},不需要任何認證。回傳是 JSON 陣列,每個元素是一列資料。上櫃的對應端點在 https://www.tpex.org.tw/openapi/v1/{代碼}。實務上第一步建議先把回傳存成檔案觀察欄位,因為欄位命名在兩個市場之間並不一致。

curl -s "https://openapi.twse.com.tw/v1/opendata/t187ap03_L" | head -c 300

常用端點

  • t187ap03_L —— 上市公司基本資料(公司全名、產業別、統一編號、董監事)。上櫃對應為 mopsfin_t187ap03_O。
  • t187ap05_L —— 上市公司每月營業收入,含當月、上月、去年同月與增減百分比。
  • tpex_mainboard_daily_close_quotes(TPEx)—— 上櫃主板每日收盤行情,含開高低收與成交量值。

所有端點共通的三件事

  • 民國年日期:日期欄位形如 1150730,代表民國 115 年 7 月 30 日,需自行轉為西元。
  • 快照而非歷史:多數開放資料端點回傳最新一期的全市場資料,沒有指定期間的查詢參數,歷史需自行定期抓取保存。
  • 上市與上櫃分屬兩套 API:網域不同、欄位命名慣例不同(上市多為中文欄名、上櫃多為英文欄名),跨市場分析需自建對映。

使用條款與額度

官方端點的請求額度、使用條款與資料格式異動,請以 TWSE 與 TPEx 的官方公告為準。回應中未提供明確的速率限制標頭,實務上建議自行節流、加上重試與快取,避免高頻輪詢造成負擔。

各端點詳細說明

以下每一頁都包含該端點的可執行範例、完整欄位說明、實測觀察到的限制,以及需要歷史或跨市場時的替代做法。

常見問題

1TWSE OpenAPI 要申請帳號嗎?
不需要。端點可直接以 HTTP GET 呼叫,不需註冊或 API key。
2TWSE OpenAPI 和 TPEx 的 API 是同一個嗎?
不是。上市資料在 openapi.twse.com.tw,上櫃資料在 www.tpex.org.tw,是兩組獨立的端點,欄位命名慣例也不同。
3TWSE OpenAPI 可以拿到多久的歷史資料?
多數端點只提供最新一期的快照,沒有歷史查詢參數。要建立歷史資料,需要自己定期呼叫並保存每一期的結果。
4回傳的日期為什麼看起來少一位數?
那是民國年格式而非西元。1150730 表示民國 115 年 7 月 30 日,換算為西元需加上 1911。
5有沒有官方的 Python 套件?
端點就是標準的 HTTP JSON,不需要專用套件,用 requests 或任何 HTTP 客戶端即可。實務上要自己處理民國年轉換、字串轉型與跨市場欄位對映。

想自己查這些資料?免費註冊

相關文章