Taiwan Futures Daily — TAIFEX 期貨日行情 API avatar

Taiwan Futures Daily — TAIFEX 期貨日行情 API

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Taiwan Futures Daily — TAIFEX 期貨日行情 API

Taiwan Futures Daily — TAIFEX 期貨日行情 API

Every TAIFEX futures contract's daily bar, back to the first TAIEX futures session on 1998-07-21. OHLC, volume, settlement price and open interest for 384 contracts across both sessions, plus the large-trader open interest report.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

chris

chris

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Share

Taiwan Futures Daily (TAIFEX 期貨日行情) API

Get structured JSON access to every TAIFEX futures contract's daily bar, back to 1998-07-21 — the first TAIEX futures session ever traded. Open, high, low, close, change, volume, settlement price, open interest and the last best bid/ask, in both the daytime and overnight sessions, for all 384 contracts the exchange currently lists.

TX (TAIEX futures) is the headline contract — Taiwan's most heavily traded derivative — but the same download covers the mini and micro versions, the sector indices, gold, Brent, the offshore index futures on the S&P 500, Nasdaq-100, Dow, TOPIX and FTSE 100, the FX futures, and every single-stock future.

Why this data matters

  • Twenty-eight years of history, on the deepest archive TAIFEX serves. The download genuinely reaches 1998-07-21: that session comes back with five TX rows, and the day before it comes back empty. Ranges before it are rejected up front rather than returning an empty run. This archive is far deeper than the exchange's institutional-position downloads, which are capped at a rolling three-year window — do not assume one TAIFEX endpoint's history from another's.
  • Every row recovers the reference price the exchange measured its change against. The exchange prints a change but never says what it measured against, and on an ex-dividend day the answer is not the previous settlement price. Measured across the whole market for 2026-08-10 → 2026-09-08 (51,861 rows): close − previous settlement equals the printed change on 15,794 of 15,910 rows — and every one of the 116 exceptions is a single-stock future on an ex-dividend date. So the Actor recovers the basis the exchange actually used (reference_price) and publishes the gap as reference_adjustment. The proof that the recovery is right rather than merely arithmetic: the printed 漲跌% reproduces from the recovered basis for all 15,910 rows, where the unadjusted basis reproduces only 15,816.
  • Those adjustments match the stock exchange's own dividend table. Spot-checked against TWSE's 除權息計算結果 for 2026-08-11: 元大台灣價值高息 (00940 / SUF) 0.05 and 第一金 (2892 / DPF) 1.30 match the published 權值+息值 exactly; 合庫金 (5880 / LOF) 1.417074 and 群益證 (6005 / JXF) 4.268612 appear here as 1.40 and 4.25 — the same figure floored to the futures tick. Two exchanges, one number.
  • The large-trader open interest report, reconciled against the quotes. LARGE_TRADER_OI records give you the top five and top ten traders' long and short open interest per contract, split between all traders and specific institutions, with each side's share of the market worked out. The exchange compiles it from position files rather than from the trade tape, which makes it an independent measurement — and on 2026-09-08 its market open interest reproduced exactly from the downloaded quotes for 343 of 346 contract groups. The three that don't are named and explained below, not papered over.
  • Cross-validated value by value against an independently built feed. With crossCheck on, the parsed download is compared against the exchange's open-data mirror of the same session. On 2026-09-08: 2,270 contracts on both sides, 29,510 values compared, zero disagreements.
  • Nobody serves this in English, or for free. The source is a Big5-encoded CSV behind a form that fails silently in three different ways if you get the parameters wrong.

Output

One record per contract, per expiry, per session. A real TX (TAIEX futures) September bar, as published:

{
"record_type": "QUOTE",
"date": "2026-09-08",
"contract_code": "TX",
"contract_name": "臺股期貨",
"contract_name_en": "TAIEX Futures",
"expiry_code": "202609",
"expiry_month": "2026-09",
"expiry_kind": "MONTHLY",
"expiry_week": null,
"is_calendar_spread": false,
"trading_session": "REGULAR",
"open": 47480.0,
"high": 47593.0,
"low": 46934.0,
"close": 46980.0,
"change": -482.0,
"change_pct": -1.02,
"volume": 44455,
"settlement_price": 46955.0,
"open_interest": 102168,
"best_bid": 46977.0,
"best_ask": 46980.0,
"historical_high": 49651.0,
"historical_low": 24962.0,
"previous_settlement_price": 47462.0,
"reference_price": 47462.0,
"reference_adjustment": 0.0,
"change_matches_previous_settlement": true,
"large_trader_group": "TX",
"trading_halt": false,
"source_report": "TAIFEX futDataDown"
}

Both printed figures reconcile against the basis: 46980 − 47462 = −482, and −482 / 47462 × 100 = −1.0155…, which rounds to the −1.02 the exchange printed.

And the large-trader report for the same contract and session:

{
"record_type": "LARGE_TRADER_OI",
"date": "2026-09-08",
"large_trader_group": "TX",
"contract_name": "臺股期貨(TX+MTX/4)",
"settlement_month_code": "202609",
"expiry_month": "2026-09",
"large_trader_scope": "SETTLEMENT_MONTH",
"trader_type": "ALL_TRADERS",
"top5_buy_oi": 72587,
"top5_sell_oi": 51655,
"top10_buy_oi": 79392,
"top10_sell_oi": 71323,
"market_open_interest": 110572,
"top5_buy_share_pct": 65.6468,
"top5_sell_share_pct": 46.7162,
"top10_buy_share_pct": 71.8012,
"top10_sell_share_pct": 64.5037,
"includes_mini_contracts": true,
"large_trader_bounds_ok": true,
"source_report": "TAIFEX OpenInterestOfLargeTradersFutures"
}

Input

FieldWhat it does
contractsContract codes: TX, MTX, TMF, TE, TF, XIF, GDF, single-stock codes such as CDF (TSMC), or ALL. Empty means TX.
startDate / endDateYYYY-MM-DD. Empty means the latest session.
tradingSessionALL, REGULAR (daytime) or AFTER_HOURS (overnight).
includeCalendarSpreadsInclude the month-against-month spread rows. Off by default.
onlyTradedDrop contracts that did not trade.
minOpenInterestKeep only contracts carrying at least this many open positions.
includeLargeTraderOIAdd the large-trader open interest records. Latest session only.
crossCheckCompare against the exchange's open-data mirror.

The exchange serves at most 31 days per download, so a range is split into monthly requests: 24 per run for named contracts, 3 when ALL is asked for (a whole-market session is ~2,400 rows). A contract listed later than your start date simply returns nothing for the years before it existed.

Things this dataset is honest about

TAIEX futures are TX here, not the TXF on the exchange's product pages. Ask this download for TXF and it answers HTTP 200 with a header and no rows — a run that silently produces nothing rather than failing. TX is the code that works, and it is the code the 1998 archive uses too.

Calendar spreads are a different instrument, and they are off by default. The exchange quotes each contract's month-against-month spreads as rows of their own — 436 of 2,415 rows on 2026-09-08. A spread is an order type rather than a position: its close is a price difference (and its best bid can be negative), and the exchange prints no settlement price, no open interest and no change for one. Summing volume or open interest across a download that mixes them in would double-count, so includeCalendarSpreads defaults to off. Every run still checks all 436 of them leave those three columns blank, whether or not they get published.

The 價差對單式委託成交量 column is not additive with volume. It appears on spread rows only — blank on all 1,979 outright rows of that session — and counts the part of a spread's activity matched against outright orders. It is published as spread_vs_single_volume and left out of volume, as the exchange has it.

The two sessions share a trading date. TAIFEX runs a daytime session (一般) and an overnight one (盤後) and prints a row for each under the same date. Only the daytime rows carry a settlement price and open interest; the overnight rows print a dash for both. A primary key that leaves trading_session out will overwrite half your data.

Run before the daytime session publishes and you get yesterday, plus last night. The overnight session trades ahead of the day it is filed under, so at 10am the newest date in the download holds overnight rows only. Asked for "the latest session" the Actor publishes the most recent complete session together with the overnight rows filed after it, and says so in the log.

The large-trader report folds three contracts' mini siblings in, and does not reconcile for them. Its own product label for TX reads 臺股期貨(TX+MTX/4): the mini and micro contracts are converted into full-size units and included, which is why MTX, TMF, ZEF and ZFF never appear in it on their own. Because the conversion happens per position before the market total is struck, the published total cannot be rebuilt from the quote file's aggregates — on 2026-09-08 the report gives TX 118,585 against 108,323 outright contracts here, TE 490 against 410, TF 504 against 418. Those three carry includes_mini_contracts: true and market_oi_matches_quotes: null rather than a fabricated conversion. The other 343 groups reconcile exactly and say so.

2026-09-08Large-trader reportSummed from the quotesReconciles
343 contract groupsexactly
TX 臺股期貨118,585108,323folds in MTX and TMF
TE 電子期貨490410folds in ZEF
TF 金融期貨504418folds in ZFF

Single-stock futures report under a two-letter family. The large-trader report files CDF and CD1 alike under CD, while the index and commodity contracts keep their three-letter code. large_trader_group gives you that mapping on every quote row; the quote rows themselves stay exactly as the exchange published them.

The large-trader report covers the latest session only, and not every expiry. It publishes the nearest settlement month and an all-months total (plus a weekly-contracts line where those exist), which large_trader_scope labels. A historical run gets quotes and no large-trader records. Note also that ALL_TRADERS and SPECIFIC_INSTITUTIONS are nested, not disjoint — the institutional figures are a subset.

The open-data mirror drops untraded spreads. On 2026-09-08 it carried 2,270 of the download's 2,415 rows; all 145 it lacked were calendar spreads with zero volume. That gap is reported separately from a disagreement, of which there were none across 29,510 compared values.

A dash is not a zero. The exchange prints a row for every listed expiry whether or not anyone traded it, with a dash where the prices would be. Those become null, not 0.0 — writing a zero close into an untraded far-month contract would invent a price that never existed. The mirror spells the same absence NULL, and that is read as null too.

Every column is read by name. The 19-column layout has been stable across every era sampled — 2005, 2010, 2015, 2020, 2025 and 2026 all publish the same header — but a column that moves will not silently shift into the wrong field, and a column that disappears fails the run instead of quietly producing garbage.

Taiwan Market Data Suite

This Actor is part of a suite of 29 Taiwan market data APIs by chamarix — official sources only, cross-validated against independent official endpoints, clean JSON out. Code samples for the whole suite: GitHub.

Market data:

Property market:

Government & civic data:

Data source

Taiwan Futures Exchange 期貨每日交易行情下載 (futDataDown) and its 商品代碼查詢 product list, plus the 期貨每日交易行情 (DailyMarketReportFut) and 期貨大額交易人未沖銷部位 (OpenInterestOfLargeTradersFutures) open-data feeds used for independent verification. Public data, no login required.