This answer is currently available in Chinese only; an English version is coming soon.
如何用 Python 抓三大法人買賣超?
打 GET /v2/datasets/institutional-flow,帶 symbol(必填)與 start_date / end_date,回應每列就是一個交易日的三大法人買賣。淨額欄位是 foreign_net_buy_sell、investment_trust_net_buy_sell、dealer_net_buy_sell,合計是 total_institutional_net_buy_sell。要加總前先看 market 欄位——上市與上櫃是兩套資料,混在一起會重複計。
三大法人
外資(及陸資)、投信、自營商,台股每日盤後公布的三種機構買賣超;資料來自 TWSE T86。
可以直接跑的 Python
這支一定要帶金鑰。免金鑰試玩只在「免費層資料集」加上五檔示範代號(2330、2317、2454、0050、2603)同時成立時才通,三大法人屬於 Starter 層,不在其中——不帶金鑰打會直接回 401 missing_api_key。
import requests
r = requests.get(
"https://api.twmarketdata.com/v2/datasets/institutional-flow",
headers={"X-API-Key": "sk_live_你的金鑰"},
params={"symbol": "2330", "start_date": "2026-06-01", "end_date": "2026-07-15", "limit": 5},
timeout=20,
)
r.raise_for_status()
for row in r.json()["rows"]:
print(row["date"], row["market"], row["foreign_net_buy_sell"], row["total_institutional_net_buy_sell"])回應裡真正有的欄位
- date、symbol、market — market 是 TWSE 或 TPEx,決定這列屬於哪個市場。
- foreign_buy / foreign_sell、investment_trust_buy / investment_trust_sell、dealer_buy / dealer_sell — 買進與賣出兩邊分開。
- foreign_net_buy_sell、investment_trust_net_buy_sell、dealer_net_buy_sell — 各自的淨額。
- total_institutional_net_buy_sell — 三者合計淨額。
- foreign_holding_ratio、institutional_participation_ratio — 外資持股比例與法人參與度。
- provider、source_role、lineage、updated_at — 這筆從哪裡來、什麼時候更新的。
雷:跨市場加總會重複計
上市(TWSE)和上櫃(TPEx)是兩套獨立公布的資料。如果你把一段期間的所有列直接 sum(),而沒有先用 market 欄位篩,同一個概念會被算兩次,得到的「全市場買超」偏高。要算單一市場就先過濾 market;要算全市場,先確認你手上的列沒有同一 symbol 同一 date 出現兩次。
更新時間
三大法人是盤後資料,收盤後才公布,當天盤中查不到當天的數字。做每日排程時把時間排在盤後,並用 updated_at 確認你拿到的是最新那一版。
Common questions
1可以一次抓全市場所有個股嗎?
2外資買超的單位是什麼?
3資料從哪一年開始?
Want to query this data yourself? Create a free account.