← 返回 Blog

Taiwan Stock API · 2026-04-24 · 12 min read

台股 API 完整指南:上市、上櫃、ETF、財報與即時行情資料怎麼串接

台股 API 不只是把股價包成 JSON。對 developer、quant 和 AI agent workflow 來說,真正重要的是資料是否穩定、欄位是否一致、歷史資料是否完整,以及能不能被可靠地接進回測、研究、儀表板或自動化分析流程。

TL;DR

如果你要開發台股資料產品,最少需要三層資料:第一層是股票基本資料,例如上市、上櫃、ETF、產業分類與交易日曆;第二層是行情資料,例如即時報價、盤後行情、OHLCV、成交量與歷史 K 線;第三層是研究資料,例如財報、月營收、法人買賣超、ETF 成分股與 corporate actions。

公開資料可以用來入門,但 production workflow 通常還需要標準化 schema、穩定 endpoint、錯誤處理、批次查詢、rate limit 管理、文件與可預期的資料更新時間。

什麼是台股 API?

台股 API 是讓程式透過 HTTP request、WebSocket、檔案下載或其他資料介面取得台灣股票市場資料的服務。資料可能來自交易所、櫃買中心、公開資訊觀測站、券商、資料供應商或商用 financial data API。

對一般投資人來說,台股資料可能只是股價、成交量和漲跌幅。對開發者來說,台股資料需要被轉換成可重複使用的資料模型,例如:

  • 股票代號與市場別
  • 每日 OHLCV
  • 即時 quote
  • 財報欄位
  • ETF 成分股
  • 法人買賣超
  • 交易日曆
  • 除權息與 corporate actions
  • API response schema
  • error handling 與 rate limit

真正可用於產品的台股 API,重點不是能不能抓到資料,而是資料能不能長期穩定地被同一套程式消費。

台股資料可以分成哪些類型?

台股資料通常可以拆成幾個層級。這樣拆分的好處是,開發者可以依照使用情境選擇資料,不需要一開始就把所有資料接進系統。

資料類型常見欄位適合情境開發注意事項
股票基本資料symbol, name, market, industry, isin建立股票清單、搜尋、universe selection上市、上櫃、興櫃、ETF 不要混在同一個未標準化欄位
即時行情bid, ask, last, volume, timestamp看盤工具、alert、intraday dashboardlatency、授權、連線穩定性與非展示使用條款
盤後行情open, high, low, close, volume, turnover每日資料管線、研究、報表更新時間、欄位格式、缺值處理
歷史股價date, symbol, open, high, low, close, volume回測、因子研究、長期績效分析除權息、下市股票、停牌、survivorship bias
財報與基本面revenue, gross_margin, eps, roe, cash_flow基本面因子、估值模型、AI research assistant報表期和公告日不能混淆
法人與籌碼foreign_net_buy, investment_trust_net_buy, dealer_net_buy籌碼分析、量化因子、台股特色資料單位、買賣超方向、與成交量的對齊
ETF 與指數constituents, weights, nav, premium_discountETF 分析、index universe、sector rotation成分股變更、權重更新頻率、資料授權
交易日曆date, is_trading_day, sessionbacktest、batch jobs、排程國定假日、補班日、颱風休市

上市、上櫃、興櫃與 ETF:開發時要注意什麼?

台股市場不是單一資料表。常見資料至少會遇到:

  • 上市股票
  • 上櫃股票
  • 興櫃股票
  • ETF
  • 指數
  • 權證、受益證券與其他商品

如果 API 沒有明確標示 market 或 instrument type,後續很容易在回測、搜尋、資料清洗時出錯。

例如,2330 是上市股票,部分中小型公司可能在上櫃市場,ETF 則有自己的商品特性。對使用者介面來說,它們都可能被搜尋成股票代號。但對資料管線來說,這些商品應該有清楚的分類。

Recommended schema

{
  "symbol": "2330",
  "name": "台積電",
  "market": "twse",
  "instrument_type": "stock",
  "currency": "TWD",
  "is_active": true
}

這種 schema 的好處是,使用者可以用同一個 search endpoint 找到商品,但資料工程師仍然可以在後端保持清楚的分類。

即時行情、延遲行情、盤後資料與歷史資料的差異

很多人搜尋台股 API 時,其實沒有先定義自己要的是哪一種資料。即時行情、延遲行情、盤後資料和歷史資料的成本、授權、更新頻率與使用情境都不同。

即時行情

即時行情適合看盤工具、alert system、intraday dashboard 或高頻更新的使用者介面。這類資料通常最重視 latency、連線穩定性與資料授權。

但不是所有量化交易或 AI agent workflow 都需要即時資料。很多研究任務只需要每日盤後資料,甚至更適合使用盤後資料,因為它的資料邊界更清楚,也比較容易回測。

延遲行情

延遲行情通常適合非即時決策的展示型產品,例如教育工具、研究頁面或一般資訊型 dashboard。它可以降低即時授權與即時連線的複雜度,但不適合對 latency 敏感的交易決策。

盤後資料

盤後資料是量化研究和資料管線最常用的資料類型之一。每日收盤後取得 open、high、low、close、volume、turnover 等資料,就能支援大多數中低頻策略、因子研究、報表與 AI agent 每日分析。

歷史資料

歷史資料是回測的基礎。只拿最近幾天的資料無法做策略研究。對台股量化交易來說,歷史資料還需要處理:

  • 除權息
  • 暫停交易
  • 下市或下櫃
  • 股票分割或面額變更
  • 缺失值
  • 交易日曆
  • survivorship bias
  • look-ahead bias
資料類型更新頻率適合情境主要挑戰
即時行情交易時間內持續更新看盤、alert、intraday 工具latency、授權、連線穩定性
延遲行情延遲後更新資訊展示、教育、非即時 dashboard使用者預期與資料標示
盤後資料每個交易日收盤後回測、研究、報表、AI 每日分析更新時間、欄位一致性
歷史資料查詢指定期間策略回測、因子分析corporate actions、下市資料、資料偏誤

公開資料、交易所資料與商用 API 的差異

台股資料可以從不同來源取得。開發者要先理解這些來源的定位,才能決定要怎麼設計資料架構。

來源優點限制適合使用者
公開資料入門成本低,適合學習與原型開發欄位可能不一致,資料清洗成本高,批次查詢和穩定性需要自行處理學生、個人研究、prototype
交易所或官方資料服務來源權威,資料類型完整需要理解資料格式、授權、更新時間與使用條件資料供應商、金融產品、正式資料服務
券商 API可能同時支援行情與交易通常綁定帳戶、交易情境和券商生態交易系統、下單流程、個人交易工具
商用 financial data APIschema 統一、文件完整、適合產品與 production workflow通常需要訂閱費與 rate limit 管理SaaS、量化研究、AI agent、資料產品

TW Market Data 的定位是最後一類:把台股資料整理成 developer-friendly 的 financial data API,讓使用者可以把資料接進 application、backtest、dashboard 或 AI agent workflow,而不是每個團隊都重新處理一次資料清洗和欄位標準化。

一個好用的台股 API schema 應該長什麼樣子?

好的 API schema 應該讓使用者一眼看懂資料,不需要猜欄位單位,也不需要自行判斷日期格式。

OHLCV response example

{
  "data": [
    {
      "date": "2026-04-23",
      "symbol": "2330",
      "market": "twse",
      "open": 812,
      "high": 825,
      "low": 808,
      "close": 821,
      "volume": 35124000,
      "turnover": 28754100000,
      "currency": "TWD"
    }
  ],
  "meta": {
    "source": "tw-market-data",
    "adjusted": false,
    "timezone": "Asia/Taipei"
  }
}

欄位設計原則

FieldTypeDescription
datestringISO 8601 日期,例如 2026-04-23
symbolstring股票代號,例如 2330
marketstring市場別,例如 twse、tpex
opennumber開盤價
highnumber最高價
lownumber最低價
closenumber收盤價
volumenumber成交量,必須清楚定義單位
turnovernumber成交金額
currencystring幣別,例如 TWD

最重要的是一致性。API 不應該在不同 endpoint 中混用日期格式、欄位名稱或成交量單位。對量化交易來說,這些細節會直接影響回測結果。

Python example

import requests
import pandas as pd

headers = {
    "Authorization": "Bearer YOUR_API_KEY"
}

params = {
    "symbol": "2330",
    "from": "2025-01-01",
    "to": "2025-12-31"
}

response = requests.get(
    "/v1/tw/stocks/ohlcv",
    headers=headers,
    params=params,
    timeout=20
)

response.raise_for_status()

data = response.json()["data"]
df = pd.DataFrame(data)

df["date"] = pd.to_datetime(df["date"])
df = df.sort_values("date")

print(df.head())

這是 endpoint 設計示意。實際路徑請以 TW Market Data docs 為準。

如果你要直接用 Python 串接 OHLCV 與個股行情,可以接著看 Python 抓台股資料教學

如果你要處理除權息與回測資料品質,建議接著看 台股歷史股價 API 設計

如果你要把資料流程串到策略回測與風險控管,可以再看 台股量化交易入門

如果你正在建立基本面資料層與財報因子流程,可以再看 台股財報 API 教學

如果你要把外資、投信與自營商資料做成可回測的籌碼特徵,可以再看 三大法人買賣超 API

如果你要建立 ETF 成分股、指數權重與產業分類驅動的 universe selection,可再看 台股 ETF 與指數成分股 API

如果你想把前面這些資料層串成 multi-agent 研究流程,可以再看 AI Hedge Fund 台股版

台股 API 在量化交易裡怎麼使用?

台股量化交易通常不是從模型開始,而是從資料開始。資料管線不穩定,策略結果就沒有可信度。

一個基本的台股量化流程通常包含:

  1. 1. 定義股票 universe
  2. 2. 取得歷史 OHLCV
  3. 3. 處理交易日曆與缺值
  4. 4. 加入財報、法人、ETF 或技術指標資料
  5. 5. 產生 signal
  6. 6. 建立 portfolio
  7. 7. 加入交易成本與滑價
  8. 8. 回測績效
  9. 9. 檢查風險與資料偏誤

量化交易最常用的台股資料

用途需要資料說明
Universe selection股票清單、產業分類、上市上櫃狀態決定哪些股票可以被納入策略
Price signalOHLCV、歷史 K 線建立動能、均值回歸、突破等策略
Fundamental factor財報、月營收、EPS、ROE建立基本面選股因子
Flow factor外資、投信、自營商買賣超台股常見籌碼分析資料
Risk control波動率、成交量、流動性、產業曝險控制部位大小與集中風險
Backtesting歷史價格、交易日曆、交易成本、除權息評估策略在歷史資料上的表現

這也是為什麼台股 API 不能只提供今天股價。對 quant workflow 來說,歷史資料、欄位一致性、資料更新時間和 edge cases 處理同樣重要。

台股 API 在 AI Agent workflow 裡怎麼使用?

AI agent 不能靠語言模型自己猜股價、財報或法人買賣超。金融資料必須由外部工具提供,LLM 才能負責整理、推理、比較與產生結構化結論。

一個台股 AI agent workflow 可以拆成幾個 tools:

tools = [
    "search_stocks",
    "get_stock_profile",
    "get_daily_ohlcv",
    "get_realtime_quote",
    "get_financial_statements",
    "get_monthly_revenue",
    "get_institutional_flows",
    "get_etf_constituents",
    "calculate_risk_metrics"
]

Agent 不應該只輸出一句看多或看空。比較好的 response schema 應該明確標出資料來源、訊號、信心、風險和缺失資料。

{
  "symbol": "2330",
  "signal": "neutral",
  "confidence": 0.62,
  "summary": "價格動能偏強,但估值與短期波動需要進一步檢查。",
  "data_used": [
    "daily_ohlcv",
    "financial_statements",
    "institutional_flows"
  ],
  "risk_flags": [
    "high_recent_volatility",
    "requires_updated_financials"
  ],
  "not_investment_advice": true
}

這種格式比自然語言回答更適合放進 production workflow。它可以被 dashboard 呈現,也可以被下一個 agent、risk manager 或 portfolio process 使用。

選擇台股 API 的 checklist

在選擇台股 API 之前,可以用下面的 checklist 檢查。

  • 是否支援上市與上櫃資料?
  • 是否支援 ETF 與指數資料?
  • 是否提供歷史 OHLCV?
  • 是否清楚標示成交量與成交金額單位?
  • 是否有交易日曆?
  • 是否支援除權息或 adjusted price?
  • 是否能查財報、月營收與基本面資料?
  • 是否有法人買賣超或籌碼資料?
  • 是否支援批次查詢?
  • 是否有穩定的 API docs?
  • 是否有 rate limit 說明?
  • 是否提供錯誤碼與 retry 建議?
  • 是否能用於商業產品或 production workflow?
  • 是否能被 AI agent / MCP / tool calling 使用?
  • 是否清楚說明資料更新時間?

如果只是做一次性的資料分析,公開資料或爬取頁面可能足夠。如果要做 SaaS、dashboard、量化回測或 AI agent,應該優先考慮穩定 schema、文件、授權和資料更新流程。

建議的 API endpoint 設計

以下是 developer-friendly 台股 API 可以採用的 endpoint 結構示意。

GET /v1/tw/stocks/search?q=台積電
GET /v1/tw/stocks/{symbol}/profile
GET /v1/tw/stocks/{symbol}/quote
GET /v1/tw/stocks/{symbol}/ohlcv?from=2025-01-01&to=2025-12-31
GET /v1/tw/stocks/{symbol}/financials
GET /v1/tw/stocks/{symbol}/monthly-revenue
GET /v1/tw/stocks/{symbol}/institutional-flows
GET /v1/tw/etfs/{symbol}/constituents
GET /v1/tw/calendar/trading-days

實際 endpoint 命名不一定要和上面完全相同。重點是路徑必須可預期,response schema 必須穩定,錯誤處理必須清楚。

常見錯誤:把資料抓下來不等於可以做產品

很多台股資料專案會卡在同一個地方:prototype 可以跑,但 production 不能用。

常見問題包括:

  • 每個 endpoint 回傳欄位不同
  • 同一欄位有時是 string,有時是 number
  • 日期格式不一致
  • 民國年與西元年混用
  • 成交量單位沒有標準化
  • 沒有處理停牌或無成交資料
  • 沒有保留下市資料
  • 沒有明確標示資料更新時間
  • 沒有 cache,導致 request 過多
  • 沒有 retry,遇到暫時錯誤就中斷 pipeline

資料產品的核心不是抓資料,而是讓資料可以被穩定、重複、可監控地使用。

FAQ

台股 API 可以取得即時股價嗎?

可以,但即時行情通常牽涉資料授權、連線方式、latency 與使用情境。若只是做回測、每日研究或 AI agent 盤後分析,盤後資料或歷史資料通常更適合,也更容易維護。

Python 可以用台股 API 抓資料嗎?

可以。大多數 HTTP API 都可以用 Python 的 requests 套件呼叫,再用 pandas 轉成 DataFrame。對量化交易來說,Python 是很常見的研究與回測工具。

台股 API 和爬蟲有什麼差別?

爬蟲通常依賴網頁結構,當頁面改版時容易失效。API 則應該提供穩定 endpoint、文件、欄位定義、錯誤碼和 rate limit,較適合 production workflow。

台股量化交易最少需要哪些資料?

最少需要股票清單、交易日曆、歷史 OHLCV、成交量、交易成本假設和除權息處理。若要建立更完整的策略,還會需要財報、月營收、法人買賣超、ETF 成分股或產業分類資料。

AI agent 可以直接用台股 API 下單嗎?

台股資料 API 本身通常負責提供市場資料,不負責下單。AI agent 可以使用資料 API 做研究、整理、比較和產生訊號,但實際交易需要券商下單 API、風控、人為審核與合規設計。

上市和上櫃資料可以用同一個 API 查嗎?

可以,但 API schema 應該清楚標示 market,例如 twse 或 tpex。這樣使用者可以用同一套工具查詢資料,同時保留市場別差異,避免後續回測或資料分析出錯。

下一步

如果你正在建立台股 app、量化回測系統、dashboard 或 AI agent workflow,下一步不是先寫更多爬蟲,而是先定義資料 schema。

  1. 1. 決定需要哪些台股資料類型
  2. 2. 把資料轉成一致的 schema
  3. 3. 用 API 文件和測試資料建立穩定 workflow

Need structured Taiwan market data for your app, backtest, or AI agent workflow?

本文討論資料工程、API 設計、量化研究與 AI workflow,不構成投資建議。