5 endpoint
https://api.blave.orgapi-key + secret-key trong mọi requestAPI plan or Blave Agent planChuỗ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.
/studio/market/twmarket/index/<index_id> | Tên | Mô tả | Giá trị hợp lệ | Mặc định |
|---|---|---|---|
index_idstring · pathBắt buộc | Chỉ hỗ trợ TAIEX | TAIEX (không phân biệt hoa thường) | |
startstring · query | Ngày đầu tiên | YYYY-MM-DD | 1999-01-05 |
endstring · query | Ngày cuối cùng | YYYY-MM-DD | hôm nay |
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}, ...]}{"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.
| Mã trạng thái | Nội dung phản hồi | Trường hợp |
|---|---|---|
| 400 | {"error": "Unsupported index"} | Không phải TAIEX |
| 404 | thông báo lỗi | Khô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 upstream | Kho dữ liệu chưa sẵn sàng / upstream ngừng hoạt động |
/studio/market/twmarket/turnover | Tên | Mô tả | Giá trị hợp lệ | Mặc định |
|---|---|---|---|
startstring · query | Ngày đầu tiên | YYYY-MM-DD | 1990-01-04 |
endstring · query | Ngày cuối cùng | YYYY-MM-DD | hôm nay |
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}, ...]{"data": [...]}.
| Trường | Đơn vị | Mô tả |
|---|---|---|
date | — | Ngày giao dịch |
volume | cổ phiếu | 成交股數 |
value | TWD | 成交金額 |
trades | số lệnh | 成交筆數 |
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.
/studio/market/twmarket/institutional | Tên | Mô tả | Giá trị hợp lệ | Mặc định |
|---|---|---|---|
startstring · query | Ngày đầu tiên | YYYY-MM-DD | 2004-04-07 |
endstring · query | Ngày cuối cùng | YYYY-MM-DD | hôm nay |
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}, ...]{"data": [{"date", "foreign", "investment_trust", "dealer", "total"}]}; mọi giá trị là giá trị ròng (mua − bán) tính bằng TWD.
404 không có dữ liệu; 503 giới hạn tần suất upstream.
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./studio/market/twmarket/margin | Tên | Mô tả | Giá trị hợp lệ | Mặc định |
|---|---|---|---|
startstring · query | Ngày đầu tiên | YYYY-MM-DD | 2001-01-03 |
endstring · query | Ngày cuối cùng | YYYY-MM-DD | hôm nay |
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}, ...]{"data": [...]}.
| Trường | Đơn vị | Mô tả |
|---|---|---|
date | — | Ngày giao dịch |
margin_balance / margin_balance_prev | lô (張) | 融資餘額 hôm nay / ngày trước |
margin_balance_value | TWD | 融資餘額金額 |
short_balance / short_balance_prev | lô (張) | 融券餘額 hôm nay / ngày trước |
404 không có dữ liệu; 503 giới hạn tần suất upstream.
/studio/market/twmarket/dividend_points | Tên | Mô tả | Giá trị hợp lệ | Mặc định |
|---|---|---|---|
startstring · query | Ngày đầu tiên | bắt buộc đúng YYYY-MM-DD | 2003-01-02 |
endstring · query | Ngày cuối cùng; âm thầm bị giới hạn ở hôm nay + 120 ngày | bắt buộc đúng YYYY-MM-DD | hôm nay + 120 ngày |
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()){"data": [{"date", "points", "estimated"}], "meta": {"estimated_coverage", "degraded"}}.
| Trường | Kiểu | Mô tả |
|---|---|---|
data[].date | string | Ngày |
data[].points | float | Số điểm chỉ số bị trừ do các sự kiện trừ cổ tức trong ngày đó |
data[].estimated | bool | false = 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_coverage | float | null | Phầ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.degraded | bool | true = dự báo thiếu độ phủ đáng kể — hãy coi là cận dưới |
| Mã trạng thái | Nội dung phản hồi | Trườ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 |
| 503 | thô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 |
end, kể cả khi start muộn hơn ngày mai — hãy lọc phía client.