API Thị trường Đài Loan

5 endpoint

Cập nhật lần cuối 2026-10
URL gốc
https://api.blave.org
Xác thực
Gửi header api-key + secret-key trong mọi request
Quyền truy cập
API plan or Blave Agent plan
Giới hạn tần suất
500 request / 5 phút cho mỗi key và mỗi IP

Quy ước

Chuỗi dữ liệu ngày của toàn thị trường (không có stock_id). start / end là YYYY-MM-DD tùy chọn; bỏ qua để lấy toàn bộ lịch sử. Đừng cộng các endpoint theo từng cổ phiếu để thay thế — phạm vi và đơn vị khác nhau.

OHLC ngày của TAIEX

GET/studio/market/twmarket/index/<index_id>
Dữ liệu từ
1999-01-05
Tần suất cập nhật
Hằng ngày

Tham số

TênMô tảGiá trị hợp lệMặc định
index_id
string · pathBắt buộc
Chỉ hỗ trợ TAIEXTAIEX (không phân biệt hoa thường)
start
string · query
Ngày đầu tiênYYYY-MM-DD1999-01-05
end
string · query
Ngày cuối cùngYYYY-MM-DDhôm nay

Ví dụ

Python
body = requests.get(f"{BASE_URL}/studio/market/twmarket/index/TAIEX", headers=headers,                    params={"start": "2024-01-01", "end": "2024-12-31"}, timeout=60).json()# {"index_id": "TAIEX", "data": [{"date": "2024-01-02", "open": 17939.79, "high": 17956.74, "low": 17784.97, "close": 17853.76}, ...]}

Phản hồi

{"index_id": "TAIEX", "data": [{"date", "open", "high", "low", "close"}]}; giá tính bằng điểm chỉ số. Không có khối lượng — dùng /twmarket/turnover.

Lỗi

Mã trạng tháiNội dung phản hồiTrường hợp
400{"error": "Unsupported index"}Không phải TAIEX
404thông báo lỗiKhông có dữ liệu
503{"error": "Market data is not ready on this server. Please retry later."} / giới hạn tần suất upstreamKho dữ liệu chưa sẵn sàng / upstream ngừng hoạt động

Ghi chú

  • Chuỗi dữ liệu là chỉ số do TWSE công bố chính thức.
  • Cache máy chủ: 5 phút.

Giá trị giao dịch toàn thị trường

GET/studio/market/twmarket/turnover
Dữ liệu từ
1990-01-04
Tần suất cập nhật
Hằng ngày

Tham số

TênMô tảGiá trị hợp lệMặc định
start
string · query
Ngày đầu tiênYYYY-MM-DD1990-01-04
end
string · query
Ngày cuối cùngYYYY-MM-DDhôm nay

Ví dụ

Python
data = requests.get(f"{BASE_URL}/studio/market/twmarket/turnover", headers=headers,                    params={"start": "2024-01-01"}, timeout=60).json()["data"]# [{"date": "2024-01-02", "volume": 6411778806.0, "value": 301290668897.0, "trades": 2267660.0}, ...]

Phản hồi

{"data": [...]}.

TrườngĐơn vịMô tả
date—Ngày giao dịch
volumecổ phiếu成交股數
valueTWD成交金額
tradessố lệnh成交筆數

Lỗi

404 không có dữ liệu; 503 kho dữ liệu chưa sẵn sàng hoặc giới hạn tần suất upstream.

Ghi chú

  • Số liệu là thống kê giao dịch toàn thị trường do TWSE công bố chính thức.
  • Cache máy chủ: 5 phút.

Mua/bán ròng của tổ chức toàn thị trường

GET/studio/market/twmarket/institutional
Dữ liệu từ
2004-04-07
Tần suất cập nhật
Hằng ngày

Tham số

TênMô tảGiá trị hợp lệMặc định
start
string · query
Ngày đầu tiênYYYY-MM-DD2004-04-07
end
string · query
Ngày cuối cùngYYYY-MM-DDhôm nay

Ví dụ

Python
data = requests.get(f"{BASE_URL}/studio/market/twmarket/institutional", headers=headers,                    params={"start": "2024-01-01"}, timeout=60).json()["data"]# [{"date": "2024-01-02", "foreign": 1047078183.0, "investment_trust": 189637635.0,#   "dealer": -4448119903.0, "total": -3211404085.0}, ...]

Phản hồi

{"data": [{"date", "foreign", "investment_trust", "dealer", "total"}]}; mọi giá trị là giá trị ròng (mua − bán) tính bằng TWD.

Lỗi

404 không có dữ liệu; 503 giới hạn tần suất upstream.

Ghi chú

  • Tầng toàn thị trường. foreign là 外資及陸資, không gồm giao dịch tự doanh của tự doanh nước ngoài (外資自營商); dealer là 自營商 (自行買賣 + 避險), trong đó TWSE đã tính sẵn 外資自營商. Endpoint theo từng cổ phiếu (GET /studio/market/twstock/institutional/<stock_id>) là một tầng khác: nó trả về các cột gốc theo từng loại và không gộp nhóm gì. Đừng trộn lẫn hai tầng này.
  • foreign + investment_trust + dealer bằng total, tức 三大法人合計 do sàn công bố, ở mọi ngày. 外資自營商 không phải là một cột riêng: nó nằm ở chứng quyền/ETN, loại mà Blave không cung cấp, và đã bằng 0 mỗi ngày kể từ sau 2024-08-16.
  • Cache máy chủ: 5 phút.

Dư nợ ký quỹ toàn thị trường

GET/studio/market/twmarket/margin
Dữ liệu từ
2001-01-03
Tần suất cập nhật
Hằng ngày

Tham số

TênMô tảGiá trị hợp lệMặc định
start
string · query
Ngày đầu tiênYYYY-MM-DD2001-01-03
end
string · query
Ngày cuối cùngYYYY-MM-DDhôm nay

Ví dụ

Python
data = requests.get(f"{BASE_URL}/studio/market/twmarket/margin", headers=headers,                    params={"start": "2024-01-01"}, timeout=60).json()["data"]# [{"date": "2024-01-02", "margin_balance": 8012561, "margin_balance_prev": 7999081,#   "margin_balance_value": 248424271000, "short_balance": 369678, "short_balance_prev": 359738}, ...]

Phản hồi

{"data": [...]}.

TrườngĐơn vịMô tả
date—Ngày giao dịch
margin_balance / margin_balance_prevlô (張)融資餘額 hôm nay / ngày trước
margin_balance_valueTWD融資餘額金額
short_balance / short_balance_prevlô (張)融券餘額 hôm nay / ngày trước

Lỗi

404 không có dữ liệu; 503 giới hạn tần suất upstream.

Ghi chú

  • Cache máy chủ: 5 phút.

Điểm cổ tức hằng ngày của TAIEX

GET/studio/market/twmarket/dividend_points
Dữ liệu từ
2003-01-02 (thực tế); dự báo đến hôm nay + 120 ngày
Tần suất cập nhật
Hằng ngày, khoảng 17:00 giờ Đài Bắc (thực tế)

Tham số

TênMô tảGiá trị hợp lệMặc định
start
string · query
Ngày đầu tiênbắt buộc đúng YYYY-MM-DD2003-01-02
end
string · query
Ngày cuối cùng; âm thầm bị giới hạn ở hôm nay + 120 ngàybắt buộc đúng YYYY-MM-DDhôm nay + 120 ngày

Ví dụ

Python
import pandas as pdpayload = requests.get(f"{BASE_URL}/studio/market/twmarket/dividend_points", headers=headers,                       params={"start": "2026-08-01"}, timeout=60).json()# {"data": [{"date": "2026-08-03", "points": 2.853, "estimated": false}, ...,#           {"date": "2026-08-28", "points": 3.846, "estimated": true}, ...],#  "meta": {"estimated_coverage": 0.9999, "degraded": false}}df = pd.DataFrame(payload["data"])future_div = df[df["estimated"]].set_index("date")["points"]# fair basis at t for settlement T: futures_price - (spot_index - future_div.loc[t_plus_1:T].sum())

Phản hồi

{"data": [{"date", "points", "estimated"}], "meta": {"estimated_coverage", "degraded"}}.

TrườngKiểuMô tả
data[].datestringNgày
data[].pointsfloatSố điểm chỉ số bị trừ do các sự kiện trừ cổ tức trong ngày đó
data[].estimatedboolfalse = thực tế (từ chênh lệch giữa chỉ số TR và chỉ số giá; ngày không có sự kiện ≈ 0); true = dự báo (các ngày trong tuần ở tương lai, điền không ở nơi không có sự kiện)
meta.estimated_coveragefloat | nullPhần tỷ trọng TAIEX có dữ liệu đầu vào đọc được cho dự báo; null khi không có dòng ước tính
meta.degradedbooltrue = dự báo thiếu độ phủ đáng kể — hãy coi là cận dưới

Lỗi

Mã trạng tháiNội dung phản hồiTrường hợp
400{"error": "Invalid start date, expected YYYY-MM-DD"} (hoặc end)Ngày sai định dạng
404{"error": "No TAIEX index data available"}Kho dữ liệu còn trống và upstream không có dữ liệu
503thông báo lỗiĐộ phủ dự báo dưới 90%, kho dữ liệu chưa sẵn sàng, hoặc giới hạn tần suất upstream

Ghi chú

  • Trước ~17:00 giờ Đài Bắc, dòng thực tế mới nhất là của ngày giao dịch trước đó.
  • Các dự báo xa hơn ~2 tuần dựa vào mẫu của năm trước.
  • Các dòng dự báo luôn được trả về từ ngày mai đến end, kể cả khi start muộn hơn ngày mai — hãy lọc phía client.
  • Cache máy chủ: 5 phút (dữ liệu đầu vào của dự báo 1 giờ).
  • Phần thực tế là chỉ số tổng lợi nhuận so với chỉ số giá; dự báo dùng cổ tức đã công bố cộng với mẫu của năm trước.