← 返回 Blog

Fundamental Data · 2026-04-24 · 12 min read

台股財報 API 教學:用營收、EPS、ROE 與現金流建立基本面因子

台股財報 API 是建立基本面研究、量化選股、估值模型與 AI agent 股票分析的重要資料層。和股價資料不同,財報資料不只要看數字,還要處理報表期、公告日、資料版本、會計欄位、公司代號與資料可得時間,否則很容易在回測中產生 look-ahead bias。

TL;DR

台股財報 API 至少應該支援月營收、損益表、資產負債表、現金流量表、EPS、ROE、毛利率、營業利益率與公告日。對量化交易來說,最重要的不是只抓到財報數字,而是確認這些數字在回測當下是否已經公開。

如果要把財報資料接進 AI agent workflow,API response 應該提供清楚的 schema、期間欄位、公告日、資料來源、單位與幣別,讓 agent 可以查詢、比較、摘要,但不能靠語言模型自己猜財報數字。

為什麼台股財報 API 重要?

台股資料產品如果只提供股價,通常只能支援價格型分析、技術指標和部分回測需求。若要建立更完整的 financial data API,財報與基本面資料是必要的一層。

財報 API 可以支援:

  • 基本面選股
  • 量化因子研究
  • 估值模型
  • 月營收追蹤
  • 財務比率分析
  • 產業比較
  • dashboard 報表
  • AI agent 股票研究助理

股價資料回答的是市場價格如何變動。財報資料回答的是公司營運與財務狀況如何變化。

如果你還在理解台股資料 API 的整體架構,可以先看 台股 API 完整指南

財報資料有哪些類型?

台股基本面資料通常可以拆成幾個主要類型。不同資料的更新頻率、欄位格式和適用情境都不同。

資料類型常見欄位更新頻率適合用途
月營收revenue, revenue_yoy, revenue_mom每月營運動能、成長因子、短期基本面追蹤
損益表revenue, gross_profit, operating_income, net_income, eps每季 / 每年獲利能力、EPS、利潤率分析
資產負債表assets, liabilities, equity, inventory, receivables每季 / 每年財務結構、槓桿、資產品質
現金流量表operating_cash_flow, investing_cash_flow, financing_cash_flow, free_cash_flow每季 / 每年現金流品質、自由現金流、財務健康度
財務比率roe, roa, gross_margin, operating_margin, net_margin依財報資料計算基本面因子、橫向比較、排名
公告日與資料版本period, announcement_date, filing_date, version依公告更新避免 look-ahead bias、建立可回測資料集

月營收、季報與年報的差異

月營收、季報和年報不應該混在同一個資料模型裡。它們代表不同的時間粒度,也適合不同的研究問題。

月營收

月營收適合觀察公司營運動能。常見分析包括:

  • 月增率
  • 年增率
  • 近 3 個月累計營收
  • 近 12 個月營收
  • 營收成長趨勢
  • 產業內營收排名

季報

季報提供更完整的獲利、資產負債與現金流資訊。常見欄位包括 EPS、毛利率、營業利益率、ROE、存貨與現金流。

年報

年報適合長期分析與公司層級研究,但更新頻率較低。若要建立中低頻策略,通常會結合月營收、季報與歷史股價資料。

損益表 API schema

損益表用來描述公司在特定期間的收入、成本、費用與獲利能力。API schema 應該清楚標示公司、期間、公告日、幣別與單位。

{
  "data": [
    {
      "symbol": "2330",
      "market": "twse",
      "period": "2025Q4",
      "announcement_date": "2026-03-15",
      "currency": "TWD",
      "unit": "thousand",
      "revenue": 625000000,
      "gross_profit": 330000000,
      "operating_income": 285000000,
      "net_income": 238000000,
      "eps": 9.21
    }
  ],
  "meta": {
    "source": "tw-market-data",
    "statement": "income_statement",
    "version": "latest"
  }
}

損益表欄位表

FieldTypeDescription
symbolstring股票代號
periodstring財報期間,例如 2025Q4
announcement_datestring財報公告日或可取得日期
revenuenumber營收
gross_profitnumber毛利
operating_incomenumber營業利益
net_incomenumber稅後淨利
epsnumber每股盈餘
currencystring幣別,例如 TWD
unitstring數值單位,例如 thousand

資產負債表 API schema

資產負債表描述公司在某個時間點的資產、負債與股東權益。它不是期間型資料,而是時間點資料。

{
  "data": [
    {
      "symbol": "2330",
      "period": "2025Q4",
      "announcement_date": "2026-03-15",
      "currency": "TWD",
      "unit": "thousand",
      "total_assets": 6200000000,
      "total_liabilities": 2400000000,
      "total_equity": 3800000000,
      "cash_and_equivalents": 1200000000,
      "inventory": 260000000,
      "accounts_receivable": 420000000
    }
  ],
  "meta": {
    "statement": "balance_sheet",
    "version": "latest"
  }
}

資產負債表常用於計算槓桿、流動性、資產品質與財務結構。例如 debt-to-equity、current ratio、inventory turnover 等。

現金流量表 API schema

現金流量表用來觀察公司現金如何流入與流出。對基本面研究來說,現金流通常比單純獲利數字更能反映財務品質。

{
  "data": [
    {
      "symbol": "2330",
      "period": "2025Q4",
      "announcement_date": "2026-03-15",
      "currency": "TWD",
      "unit": "thousand",
      "operating_cash_flow": 310000000,
      "investing_cash_flow": -180000000,
      "financing_cash_flow": -60000000,
      "capital_expenditure": -150000000,
      "free_cash_flow": 160000000
    }
  ],
  "meta": {
    "statement": "cash_flow_statement",
    "version": "latest"
  }
}

現金流常見用途

現金流資料可以用來建立:

  • 自由現金流因子
  • 營業現金流成長率
  • 現金流對淨利比率
  • 資本支出強度
  • 現金流品質分數

EPS、ROE 與常見基本面指標

財報 API 不一定只提供原始報表欄位,也可以提供由財報計算出的 ratios。但無論 ratios 是 API 預先計算,還是 client 端自行計算,都必須清楚定義公式與資料期間。

指標說明常見用途注意事項
EPS每股盈餘獲利能力、估值需確認期間與股本變動
ROE股東權益報酬率資本效率、基本面選股應注意權益基準與是否年化
Gross margin毛利率產品競爭力、成本結構需和同產業比較
Operating margin營業利益率營運效率非本業收益不應混入
Free cash flow自由現金流現金流品質、股東回報能力資本支出定義要一致
Debt-to-equity負債對股東權益比槓桿與財務風險不同產業基準不同

公告日比報表期更重要

在回測與量化研究裡,公告日通常比報表期更重要。

例如,一份 2025Q4 財報可能代表 2025 年第四季的營運結果,但它不會在 2025Q4 當下就被市場完整知道。如果回測系統在 2025 年底就使用這份財報資料,就會產生 look-ahead bias。

好的財報 API 應該至少區分:

  • period
  • fiscal_year
  • fiscal_quarter
  • announcement_date
  • filing_date
  • effective_date
  • data_version
欄位說明為什麼重要
period財報所屬期間用來理解資料代表哪段營運結果
announcement_date市場可得日期回測必須用它判斷資料何時可使用
effective_date策略或資料管線開始採用的日期用於避免使用未來資料
version財報資料版本若資料有重編或修正,必須可追蹤

如何建立基本面因子?

基本面因子是把財報資料轉成可排序、可回測、可比較的數值。常見因子包括成長、獲利、品質、估值與財務風險。

因子類型使用資料範例注意事項
成長月營收、revenue、eps近 12 個月營收年增率注意基期與產業週期
獲利gross_margin, operating_margin, net_margin毛利率排名應和同產業比較
品質operating_cash_flow, free_cash_flow, net_income現金流對淨利比避免單季異常值
資本效率roe, roaROE 排名注意槓桿造成的 ROE 提升
財務風險liabilities, equity, cashdebt-to-equity不同產業標準不同

Factor schema 示意

{
  "date": "2026-04-24",
  "symbol": "2330",
  "factor_name": "revenue_growth_12m",
  "value": 0.18,
  "rank": 15,
  "universe": "twse_large_cap",
  "data_used": [
    "monthly_revenue",
    "announcement_date"
  ]
}

如果你要把基本面因子放進量化流程,可以參考 台股量化交易入門

若要把因子接進回測系統,可以參考 Python 台股回測系統實作

Python 串接財報 API 範例

以下示範如何用 Python 呼叫財報 API,取得損益表資料並計算簡單基本面指標。

import os
import requests
import pandas as pd

API_KEY = os.getenv("TW_MARKET_DATA_API_KEY")
BASE_URL = "https://api.example.com"

headers = {
    "Authorization": f"Bearer {API_KEY}"
}

params = {
    "symbol": "2330",
    "from": "2024Q1",
    "to": "2025Q4"
}

response = requests.get(
    f"{BASE_URL}/v1/tw/stocks/2330/financials/income-statement",
    headers=headers,
    params=params,
    timeout=20
)

response.raise_for_status()

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

df["announcement_date"] = pd.to_datetime(df["announcement_date"])
df = df.sort_values("announcement_date").reset_index(drop=True)

df["gross_margin"] = df["gross_profit"] / df["revenue"]
df["net_margin"] = df["net_income"] / df["revenue"]

print(df[["period", "announcement_date", "revenue", "eps", "gross_margin", "net_margin"]])

上方 endpoint 是示意。實際 API host 與路徑請以 TW Market Data docs 為準。

避免在回測中使用未來財報

backtest_date = pd.Timestamp("2025-08-01")

available_financials = df[df["announcement_date"] <= backtest_date]

latest = available_financials.tail(1)

print(latest)

這段邏輯的重點是:回測日期只能使用當時已公告的資料。這比單純使用最新財報更接近真實研究環境。

AI agent 如何使用財報資料?

AI agent 不應該靠模型內部知識猜 EPS、ROE 或營收。正確做法是讓 agent 透過 tool calling 查詢財報 API,再用 LLM 做摘要、比較、解釋和風險標記。

Agent tool schema 示意

{
  "name": "get_financial_statements",
  "description": "Get financial statements for a Taiwan stock.",
  "parameters": {
    "symbol": "2330",
    "statement": "income_statement",
    "from": "2024Q1",
    "to": "2025Q4"
  }
}

Agent response schema 示意

{
  "symbol": "2330",
  "data_used": [
    "income_statement",
    "balance_sheet",
    "cash_flow_statement"
  ],
  "latest_period": "2025Q4",
  "announcement_date": "2026-03-15",
  "summary": "Revenue and EPS increased compared with the previous year, but valuation and industry cycle require additional checks.",
  "risk_flags": [
    "requires_peer_comparison",
    "requires_updated_market_price",
    "not_a_trading_signal"
  ],
  "not_investment_advice": true
}

這種格式讓 agent 的輸出更容易被 dashboard、risk manager 或下一個 workflow 使用。重點是 agent 要標示自己用了哪些資料,以及哪些資料還不足。

常見資料品質問題

財報資料比 OHLCV 更容易出現 schema 和時間問題。常見問題包括:

問題影響API 應提供的協助
報表期與公告日混淆回測使用未來資料明確提供 announcement_date
單位不清楚財報數字被放大或縮小提供 unit 欄位
幣別不清楚跨公司比較錯誤提供 currency 欄位
財報重編或修正歷史結果難以重現提供 version 或 revision 欄位
欄位名稱不一致ETL 和 backtest 容易出錯統一 schema
缺值未標示原因誤判公司沒有資料提供 missing reason 或 metadata

建議的 API endpoint 設計

以下是台股財報與基本面資料相關 endpoint 的設計示意。

GET /v1/tw/stocks/{symbol}/financials/income-statement
GET /v1/tw/stocks/{symbol}/financials/balance-sheet
GET /v1/tw/stocks/{symbol}/financials/cash-flow
GET /v1/tw/stocks/{symbol}/monthly-revenue
GET /v1/tw/stocks/{symbol}/financial-ratios
GET /v1/tw/stocks/{symbol}/fundamental-factors

實際 endpoint 命名不一定要完全相同。重點是資料期間、公告日、單位、幣別與 schema 必須清楚,才能支援量化研究、dashboard 和 AI agent workflow。

上方 endpoint 是示意。實際路徑請以 TW Market Data docs 為準。

FAQ

台股財報 API 可以取得哪些資料?

台股財報 API 通常可以支援月營收、損益表、資產負債表、現金流量表、EPS、ROE、毛利率、營業利益率、自由現金流與其他財務比率。實際支援項目取決於 API 供應商。

月營收和財報有什麼差別?

月營收是每月公布的營收資料,適合追蹤營運動能。財報通常包含損益表、資產負債表和現金流量表,資料更完整,但更新頻率較低。

為什麼公告日對回測很重要?

因為回測只能使用當時市場已經知道的資料。如果策略在回測中使用尚未公告的財報,就會產生 look-ahead bias,讓績效看起來比真實情況更好。

EPS 和 ROE 可以直接拿來選股嗎?

EPS 和 ROE 可以作為基本面因子的一部分,但不應單獨使用。通常還需要搭配產業比較、估值、現金流、財務風險、股價資料與回測驗證。

AI agent 可以用財報 API 分析股票嗎?

可以。AI agent 可以透過 tool calling 查詢財報 API,整理營收、EPS、ROE、現金流與風險標記。但 agent 不應該自己猜財報數字,也不應把分析結果當成投資建議。

財報 API 和股價 API 哪個比較重要?

兩者用途不同。股價 API 適合行情、技術分析與回測;財報 API 適合基本面研究、估值、因子模型和 AI research assistant。完整的 financial data workflow 通常需要兩者。

下一步

如果你正在建立台股基本面資料 workflow,建議先處理三件事:

  1. 1. 把報表期和公告日分開
  2. 2. 統一財報欄位、單位與幣別
  3. 3. 把財報資料轉成可回測、可比較的基本面因子

Need structured Taiwan fundamentals data for your quant workflow, dashboard, or AI agent?

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