Building an AI agent? Start with /llms.txt for the full site index.
Derivatives & Convertibles
TAIFEX options daily market data — daily settlement, volume and open interest for listed options series.
GET /v2/datasets/options-daily-taifexoptions-daily-taifex returns one row per options series per trading day from the official TAIFEX feed, keyed by contract, strike and call/put right. Each row carries its source role so a value can be traced back to the exchange publication rather than taken on trust.
| Field | Type | Description |
|---|---|---|
contract | string | Options contract code (e.g. TXO). |
date | string | Trading date. |
strike_price | number | Strike price of the series. |
call_put | string | Right of the series (call / put). |
settlement_price | number | Daily settlement price. |
open_interest | number | Open interest. |
source_role | string | official_taifex. |
| Rows | 20,813,351 |
| Window | 2001-12-24 – 2026-06-04 |
| Grade | Verified |
A real response from this endpoint. Rows are returned under "data", and provenance is carried in the shape shown below — it is not identical across datasets, so read this page's rather than assuming another's.
{ "dataset_id": "options_daily_taifex", "request_context": { "scope": "options_daily_taifex_latest_daily_file_only", "coverage_type": "latest_daily_file_only", "filters": { "trade_date": null, "date_from": null, "date_to": null, "contract_symbol": null, "option_type": null, "expiry_month": null, "source_family": null, "limit": 50 }, "min_trade_date": "2026-06-04", "max_trade_date": "2026-06-04" }, "quality": { "row_count": 50, "contract_count": 1, "sensitive_fields_exposed": false }, "lineage": { "source_providers": [ "taifex_official" ], "source_roles": [ "options_daily_quote_settlement_open_interest" ], "source_families": [ "optDataDown" ] }, "error": null, "data": [ { "trade_date": "2026-06-04", "contract_symbol": "CAO", "option_type": "call", "strike_price": 60, "expiry_month": "202606", "open": null, "high": null, "low": null, "close": null, "volume": 0, "open_interest": 0, "settlement_price": 51, "source_provider": "taifex_official", "source_role": "options_daily_quote_settlement_open_interest", "source_family": "optDataDown", "lineage": { "commodity_id": "CAO ", "queryEndDate": "2026/06/04", "queryStartDate": "2026/06/04", "trading_session": "<Chinese value - see the zh page>" }, "data_gaps": [], "not_investment_advice": true }, { "trade_date": "2026-06-04", "contract_symbol": "CAO", "option_type": "call", "strike_price": 65, "expiry_month": "202606", "open": null, "high": null, "low": null, "close": null, "volume": 0, "open_interest": 0, "settlement_price": 46, "source_provider": "taifex_official", "source_role": "options_daily_quote_settlement_open_interest", "source_family": "optDataDown", "lineage": { "commodity_id": "CAO ", "queryEndDate": "2026/06/04", "queryStartDate": "2026/06/04", "trading_session": "<Chinese value - see the zh page>" }, "data_gaps": [], "not_investment_advice": true } ], "data_count": 50, "known_gaps": [ "latest_daily_file_only", "single_trading_date_baseline", "no_historical_options_coverage_claim" ], "warnings": [ "not_investment_advice" ], "not_investment_advice": true, "envelope": { "dataset_id": "options_daily_taifex", "scope": "options_daily_taifex_latest_daily_file_only", "row_count": 50 }}Captured from the live API on 2026-07-20.
Chinese data values are shown as a marker here so this page stays in English; the /zh page shows them verbatim.
curl "https://api.twmarketdata.com/v2/datasets/options-daily-taifex?symbol=2330" \ -H "X-API-Key: sk_live_..."| Parameter | Required | Type | Description |
|---|---|---|---|
symbol | Yes | string | Ticker, e.g. 2330. |
start_date | No | string (YYYY-MM-DD) | Start of the query range. |
end_date | No | string (YYYY-MM-DD) | End of the query range. |
limit | No | integer | Maximum rows to return. |
A first call:
import requests resp = requests.get( "https://api.twmarketdata.com/v2/datasets/options-daily-taifex", params={"symbol": "2330"}, headers={"X-API-Key": "sk_live_..."},)resp.raise_for_status()print(resp.json()["data"])With a date-range filter:
import requests # The full verified example — the same call with every supported filter set.resp = requests.get( "https://api.twmarketdata.com/v2/datasets/options-daily-taifex", params={"symbol": "2330"}, headers={"X-API-Key": "sk_live_..."},)resp.raise_for_status()for row in resp.json()["data"]: print(row)This endpoint is GET /v2/datasets/options-daily-taifex. The full machine-readable schema (parameters, security, response envelope) lives in the OpenAPI spec.