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"
}
}損益表欄位表
| Field | Type | Description |
|---|---|---|
| symbol | string | 股票代號 |
| period | string | 財報期間,例如 2025Q4 |
| announcement_date | string | 財報公告日或可取得日期 |
| revenue | number | 營收 |
| gross_profit | number | 毛利 |
| operating_income | number | 營業利益 |
| net_income | number | 稅後淨利 |
| eps | number | 每股盈餘 |
| currency | string | 幣別,例如 TWD |
| unit | string | 數值單位,例如 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, roa | ROE 排名 | 注意槓桿造成的 ROE 提升 |
| 財務風險 | liabilities, equity, cash | debt-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. 把報表期和公告日分開
- 2. 統一財報欄位、單位與幣別
- 3. 把財報資料轉成可回測、可比較的基本面因子
Need structured Taiwan fundamentals data for your quant workflow, dashboard, or AI agent?
本文討論資料工程、API 設計、基本面研究、量化因子與 AI workflow,不構成投資建議。