Building an AI agent? Start with /llms.txt for the full site index.
Market Structure & Reference
Reference timeline of Taiwan market-microstructure rule changes (daily price-limit widening, day-trading opening, tick-size, etc.) — one entry per (rule_domain, rule_key, effective_date) with prior/new value, market, description, and an official source_url. Not a forecast, not a recommendation.
GET /v2/datasets/trading-rules-referenceThis dataset is in build and not yet queryable via the API. The coverage and honest limitations below are the real database state; it moves off "Building" once serving lands (targeted 8/1).
| Field | Type | Description |
|---|---|---|
rule_domain | enum | price_limit / day_trading / tick_size … |
rule_key | text | |
effective_date | date | |
prior_value | text | |
new_value | text | |
market | enum | TWSE,TPEX |
source_url | url | required |
source_authority | text |
FILE-BACKED (F+5 YAML, not a DB table): src/feature_engine/data_gateway/reference/trading_rules_reference.yaml, rule_version=v1. RED-LINE: — every entry carries a source_url; entries with source_verification=pending_owner are flagged until the owner confirms the URL resolves to the cited announcement.
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": "trading-rules-reference", "row_count": 1, "data": [ { "rule_key": "twse_tpex_daily_price_limit", "effective_date": "2015-06-01", "prior_value": "7%", "new_value": "10%", "market": "TWSE,TPEX", "source_url": "https://www.twse.com.tw/zh/products/rule/limit.html", "source_authority": "TWSE", "rule_domain": "price_limit" } ]}Captured from the live API on 2026-07-20.
curl "https://api.twmarketdata.com/v2/datasets/trading-rules-reference?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/trading-rules-reference", 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/trading-rules-reference", 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/trading-rules-reference. The full machine-readable schema (parameters, security, response envelope) lives in the OpenAPI spec.