TAIFEX Options Chain — 台指選擇權逐履約價行情 API avatar

TAIFEX Options Chain — 台指選擇權逐履約價行情 API

Pricing

from $0.50 / 1,000 results

Go to Apify Store
TAIFEX Options Chain — 台指選擇權逐履約價行情 API

TAIFEX Options Chain — 台指選擇權逐履約價行情 API

Full Taiwan options chain by strike and expiry, back to the first TAIEX options session in 2001-12-24, with the exchange's own published Delta joined on. TXO, sector, gold and stock options. Every row re-checks the change against the previous settlement price.

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

15 hours ago

Last modified

Share

TAIFEX Options Chain (台指選擇權逐履約價行情) API

Get structured JSON access to the full Taiwan options chain, strike by strike and expiry by expiry, back to 2001-12-24 — the first TAIEX options session ever traded. Open, high, low, close, change, volume, settlement price, open interest and the last best bid/ask for every series, in both the daytime and overnight sessions, with the exchange's own published Delta joined on.

TXO (TAIEX options) is the headline contract, but the same download covers the sector and gold options and all 43 currently listed contracts, including the single-stock options on TSMC, Hon Hai, MediaTek and the ETF options.

Why this data matters

  • The exchange publishes Delta. No pricing model needed. TAIFEX computes an official Delta per strike, per expiry, per side, and this Actor joins it straight onto the chain — 8,550 series on a typical session. No Black-Scholes, no implied-volatility fit, no assumptions about the risk-free rate or the dividend stream. It is checked on every run: calls must sit in [0, 1], puts in [-1, 0], and Delta must fall as the strike rises. On 2026-08-27 that held for all 8,550 rows and all 8,285 adjacent strike pairs.
  • Twenty-five years of history, one month per request. The exchange serves at most a month per download, so the Actor splits any range into monthly windows automatically. The archive genuinely reaches 2001-12-24: that session comes back with 50 rows across the two January 2002 expiries. This is not the case for the TAIFEX futures downloads, which are limited to a rolling three-year window — the options archive is the deeper one.
  • Every row re-checks the change against the previous settlement price. The exchange prints a change but never says what it measured against. Measured across every TXO series in August 2026: close − previous session's regular-hours settlement price equals the printed change for 15,485 of 15,485 regular rows and 12,985 of 12,985 overnight rows, exactly, with no exceptions. That basis is now asserted on every run and published as previous_settlement_price so you can check it yourself. The printed percentage is checked against the same basis, down to the rounding rule: TAIFEX rounds away from zero, not to even — −15.625 prints as −15.63 — which reproduces all 28,400 published percentages where half-to-even gets only 28,293.
  • Weekly expiries are classified, not left as an opaque string. 202609 settles on the third Wednesday; 202609W1 settles on a Wednesday of its own week; 202608F4 settles on a Friday. Confirmed against the exchange's own settlement-date column rather than assumed — expiry_kind gives you MONTHLY, WEEKLY_WEDNESDAY or WEEKLY_FRIDAY, plus the settlement date itself where the exchange prints it.
  • Cross-validated against two independently built feeds. With crossCheck on, the parsed chain is compared value-by-value against the exchange's open-data mirror of the same session, and its put/call ratio is recomputed from the parsed rows and compared against the published one. On 2026-08-27: 11,782 series matched with nothing unmatched on either side, and every price, volume, settlement and open-interest value identical; the put/call totals reproduced all four published columns exactly.
  • Nobody serves this in English, or for free. The source is a Big5-encoded CSV behind a form that rejects most of what you send it, in a market where the chain is the most heavily traded derivative in the country.

Output

One record per strike, per expiry, per side, per session. A real TXO put on the weekly expiry settling 2026-09-02, as published:

{
"date": "2026-08-27",
"contract_code": "TXO",
"contract_name": "臺指選擇權",
"contract_name_en": "TAIEX Options",
"underlying_group": "TXO",
"expiry_code": "202609W1",
"expiry_month": "2026-09",
"expiry_kind": "WEEKLY_WEDNESDAY",
"expiry_week": 1,
"expiry_date": "2026-09-02",
"strike": 44000.0,
"call_put": "PUT",
"trading_session": "REGULAR",
"open": 86.0,
"high": 88.0,
"low": 59.0,
"close": 76.0,
"change": -44.0,
"change_pct": -36.67,
"previous_settlement_price": 120.0,
"change_matches_previous_settlement": true,
"volume": 260,
"settlement_price": 76.0,
"open_interest": 255,
"best_bid": 73.0,
"best_ask": 78.0,
"historical_high": 780.0,
"historical_low": 59.0,
"delta": -0.1384,
"delta_as_of": "2026-08-27",
"trading_halt": false,
"trading_halt_note": null,
"source_report": "TAIFEX optDataDown"
}

Both printed figures reconcile against the basis: 76.0 − 120.0 = −44.0, and −44.0 / 120.0 × 100 = −36.666…, which rounds to the −36.67 the exchange printed.

Input

FieldWhat it does
contractsContract codes: TXO, TEO, TFO, TGO, stock options such as CDO (TSMC) or DHO (Hon Hai), or ALL. Empty means TXO.
startDate / endDateYYYY-MM-DD. Empty means the latest session.
callPutALL, CALL or PUT.
tradingSessionALL, REGULAR (daytime) or AFTER_HOURS (overnight).
onlyTradedDrop strikes that did not trade. A full chain quotes hundreds that never do.
minOpenInterestKeep only strikes carrying at least this many open contracts.
includeDeltaJoin the exchange's published Delta. Latest session only.
crossCheckCompare against the open-data mirror and the published put/call ratio.

The exchange serves one month 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 ~11,800 rows). Ranges starting before 2001-12-24 are rejected up front rather than returning an empty run. A contract listed later than your start date simply returns nothing for the years before it existed.

Things this dataset is honest about

The two sessions are scoped differently, and it matters for aggregation. TAIFEX runs a daytime session (一般) and an overnight one (盤後), and prints a row for each. Only the daytime rows carry a settlement price and open interest; the overnight rows print a dash for both. This is not a gap in the data — it is how the exchange defines the columns, and reproducing its own published put/call ratio proves it:

TXO, 2026-08-27Sum of daytime rowsSum of both sessionsPublished by TAIFEX
Call volume85,819129,911129,911
Put volume110,905158,174158,174
Call open interest58,25458,254
Put open interest61,63661,636

Volume spans both sessions; open interest is daytime only. Filter on trading_session accordingly.

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, rather than handing back a few hundred overnight rows and calling that a day.

One underlying can have more than one contract code, and they are not interchangeable. TSMC options trade as both CDO and CDA, Hon Hai as DHO and DHA. On 2026-08-27, CDO quoted 27 strikes on a standard ladder while CDA quoted a single strike of 2,100 — different ladders, and nothing here merges them. underlying_group gives you the shared two-letter family for grouping; the rows themselves stay exactly as the exchange published them.

The open-data mirror is sparser than the download. The exchange's JSON feed leaves best_bid, best_ask, historical_high and historical_low blank on rows where the CSV carries a value — 9,711 times on 2026-08-27, always in that direction, never the reverse. The Actor takes the download's values and reports the blanks separately from a real disagreement, of which there were none.

Delta covers the latest session only. The feed carries no date of its own, so it is only ever joined onto the session the exchange's daily report says it was published with; historical rows come back with delta: null. delta_as_of records which session a Delta belongs to, so a multi-day pull never leaves you guessing.

A dash is not a zero. Hundreds of strikes go a whole session without a trade, and the exchange prints a dash for their prices. Those become null, not 0.0 — writing a zero close into an untraded far-out-of-the-money strike would invent a price that never existed.

The report changed shape in December 2025. It gained a 契約到期日 (settlement date) column, and everything before that layout has expiry_date: null rather than a derived date. Every column here is read by name, so the next addition will not silently shift a column 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 25 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 選擇權每日交易行情下載 (optDataDown), plus the 選擇權每日交易行情 (DailyMarketReportOpt), 選擇權 Delta 值 (DailyOptionsDelta) and 臺指選擇權 Put/Call 比 (PutCallRatio) open-data feeds used for independent verification. Public data, no login required.