Building an AI agent? Start with /llms.txt for the full site index.
Market & Prices
One row per (symbol, trade_date, direction) where a stock closed locked at its daily price limit. Carries prev_close, close, pct_change, the era limit band applied, whether it locked at close, consecutive-limit count, and volume at the limit. Derived from TWMD normalized prices + the price-limit rule history. Not a forecast, not a recommendation.
← Limit-Up/Down Events overview
GET /v2/datasets/limit-eventsLimit-Up/Down Events is a Taiwan market dataset sourced from TWSE, served by TW Market Data as GET /v2/datasets/limit-events, with data as of 2026-07-31.
| Field | Type | Description |
|---|---|---|
ticker | string | |
market | string | |
trade_date | string | |
direction | string | up / down |
prev_close | number | not split-adjusted (R-02 pending) |
close | number | |
pct_change | number | |
limit_pct_applied | number | era band |
rule_effective_date | string | |
approx_band_pp | number | |
locked_at_close | boolean | |
consecutive_count | null | |
volume_at_limit | number | |
method | string | |
grade | string | |
rule_version | string | |
limit_confirmed | null |
| Rows | 367,773 |
| Window | 1994-01-10 – 2026-09-04 |
| Grade | Verified |
| Measured | 2026-09-04from the dataset registry |
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": "limit_events",
"request_context": {
"scope": "twse_tpex_price_limit_hits",
"coverage_type": "daily_derived",
"filters": {
"ticker": null,
"market": null,
"direction": null,
"trade_date": null,
"date_from": null,
"date_to": null,
"locked_at_close": null,
"limit": 50
},
"min_trade_date": "2026-08-05",
"max_trade_date": "2026-08-05"
},
"quality": {
"row_count": 50,
"ticker_count": 50,
"locked_at_close_count": 50,
"unconfirmed_count": 2,
"sensitive_fields_exposed": false
},
"lineage": {
"methods": [
"approx",
"exact_official"
],
"rule_versions": [
"v0"
],
"semantics": "Days on which a security reached its statutory price limit, with the band in force (limit_pct_applied), the direction, whether it stayed locked at the close, and how many consecutive sessions it has done so. DERIVED from price history — there is no official limit-event feed to mirror."
},
"error": null,
"data": [
{
"ticker": "00715L",
"market": "TWSE",
"trade_date": "2026-08-05",
"direction": "down",
"prev_close": 45.02,
"close": 38.49,
"pct_change": -0.1450466459,
"limit_pct_applied": 0.1,
"rule_effective_date": "2015-06-01",
"approx_band_pp": 0.5,
"locked_at_close": true,
"consecutive_count": null,
"volume_at_limit": 18233482,
"method": "approx",
"grade": "derived",
"rule_version": "v0",
"limit_confirmed": null
},
{
"ticker": "1310",
"market": "TWSE",
"trade_date": "2026-08-05",
"direction": "up",
"prev_close": 7.43,
"close": 8.17,
"pct_change": 0.0995962315,
"limit_pct_applied": 0.1,
"rule_effective_date": "2015-06-01",
"approx_band_pp": 0.5,
"locked_at_close": true,
"consecutive_count": null,
"volume_at_limit": 7230149,
"method": "approx",
"grade": "derived",
"rule_version": "v0",
"limit_confirmed": null
}
],
"data_count": 50,
"known_gaps": [
"limit_pct_applied_records_the_band_in_force_that_day_7pct_before_2015_06_01",
"limit_confirmed_distinguishes_a_confirmed_limit_from_a_derived_one",
"derived_from_price_history_not_an_official_limit_event_feed"
],
"warnings": [
"not_investment_advice"
],
"envelope": {
"dataset_id": "limit_events",
"scope": "twse_tpex_price_limit_hits",
"row_count": 50
}
}Captured from the live API on 2026-07-20.
Part of the data in this service is obtained from the Government Open Data Platform (data.gov.tw) and used under the Open Government Data License, version 1.0. Providing agencies: Taiwan Stock Exchange, Taipei Exchange, Taiwan Futures Exchange, Taiwan Depository & Clearing Corporation, National Development Council, Central Bank of the Republic of China (Taiwan), Department of Statistics of the Ministry of Economic Affairs, and Customs Administration of the Ministry of Finance. The value-added processing, derived calculations and presentation in this service are the responsibility of TWMD and are not associated with the providing agencies.
TW Market Data. (2026). Limit-Up/Down Events (Version 2026-07-31) [Data set]. TW Market Data. Retrieved 2026-09-05, from https://twmarketdata.com/en/docs/api/market-prices/limit-events
The version is the dataset's own as_of, not the date this page was built. Where we have no as_of the field is left out rather than filled in. Check a signature
Datasets that join with this one. The key each pair aligns on is shown, so you can plan a multi-table query without guessing.
Joins on market + ticker + trade_date
Joins on market + ticker + trade_date
Joins on market + ticker + trade_date
Joins on market + ticker + trade_date
Joins on market + ticker + trade_date
curl "https://api.twmarketdata.com/v2/datasets/limit-events" \
-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. |
import requests
resp = requests.get(
"https://api.twmarketdata.com/v2/datasets/limit-events",
params={},
headers={"X-API-Key": "sk_live_..."},
)
resp.raise_for_status()
print(resp.json()["data"])This endpoint is GET /v2/datasets/limit-events. The full machine-readable schema (parameters, security, response envelope) lives in the OpenAPI spec.