Building an AI agent? Start with /llms.txt for the full site index.
Market & Prices
Daily price limits — the official upper and lower limit prices and the reference price for each stock per trading day.
GET /v2/datasets/stock-price-limit-dailystock-price-limit-daily returns one row per stock per trading day with the official upper and lower price limits and the reference price they are computed from. Each row carries its source role, so the limits trace back to the exchange publication rather than being re-derived on the client.
| Field | Type | Description |
|---|---|---|
symbol | string | Ticker. |
date | string | Trading date. |
reference_price | number | Reference price the limits are set from. |
limit_up | number | Upper limit price. |
limit_down | number | Lower limit price. |
source_role | string | Canonical source role (official_twse_price_limit). |
| Rows | 38,742 |
| Window | 2003-06-02 – 2026-07-14 |
| 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": "stock_price_limit_daily", "request_context": { "scope": "tpex_price_limit_only", "coverage_type": "latest_snapshot_baseline", "filters": { "trade_date": null, "date_from": null, "date_to": null, "ticker": null, "market": null, "source_family": null, "limit": 50 }, "min_trade_date": "2026-07-09", "max_trade_date": "2026-07-14" }, "quality": { "row_count": 50, "ticker_count": 50, "sensitive_fields_exposed": false }, "lineage": { "source_providers": [ "tpex_official", "twse_official" ], "source_roles": [ "official_stock_price_limit_daily" ], "source_families": [ "TWSE_TWT49U_EX_RIGHT", "tpex_mainboard_daily_close_quotes" ] }, "error": null, "data": [ { "trade_date": "2026-07-14", "ticker": "1402", "market": "TWSE", "limit_up_price": 28.15, "limit_down_price": 23.05, "reference_price": 25.6, "source_provider": "twse_official", "source_role": "official_stock_price_limit_daily", "source_family": "TWSE_TWT49U_EX_RIGHT", "lineage": { "event_type": "ex_dividend", "endpoint_name": "twse_exchangeReport_TWT49U", "event_category": "<Chinese value - see the zh page>", "knowledge_date": "2026-07-14", "reference_basis": "<Chinese value - see the zh page>" }, "data_gaps": [] }, { "trade_date": "2026-07-14", "ticker": "1603", "market": "TWSE", "limit_up_price": 32.8, "limit_down_price": 26.9, "reference_price": 29.85, "source_provider": "twse_official", "source_role": "official_stock_price_limit_daily", "source_family": "TWSE_TWT49U_EX_RIGHT", "lineage": { "event_type": "ex_dividend", "endpoint_name": "twse_exchangeReport_TWT49U", "event_category": "<Chinese value - see the zh page>", "knowledge_date": "2026-07-14", "reference_basis": "<Chinese value - see the zh page>" }, "data_gaps": [] } ], "data_count": 50, "known_gaps": [ "tpex_only", "no_twse_price_limit_coverage", "no_historical_full_depth_claim" ], "warnings": [ "not_investment_advice" ], "envelope": { "dataset_id": "stock_price_limit_daily", "scope": "tpex_price_limit_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/stock-price-limit-daily?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/stock-price-limit-daily", 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/stock-price-limit-daily", 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/stock-price-limit-daily. The full machine-readable schema (parameters, security, response envelope) lives in the OpenAPI spec.