Building an AI agent? Start with /llms.txt for the full site index.
Market & Prices
Market breadth — derived breadth metrics per trading day: advance/decline counts and ratio, and new highs vs new lows.
GET /v2/datasets/market-breadthMarket breadth is a Taiwan market dataset sourced from TWSE, served by TW Market Data as GET /v2/datasets/market-breadth.
market-breadth is a derived dataset: it computes the breadth statistics — advancers, decliners, the advance/decline ratio and new-high vs new-low counts — from the official per-security daily prices. The lineage block points back to that official price data so the breadth reading is reproducible. Coverage is partial while the historical backfill is completed.
| Field | Type | Description |
|---|---|---|
market | string | |
as_of_date | string | |
advancers | number | Count of advancing securities (derived). |
decliners | number | Count of declining securities (derived). |
unchanged | number | |
limit_up_count | number | |
limit_down_count | number | |
advance_decline_ratio | number | |
breadth_ratio | number | |
total_traded_value | number | |
total_volume | number |
| Rows | ~6,141 |
| Window | 2010-01-04 – 2026-09-04 |
| Grade | Derived |
| Measured | 2026-09-04from the dataset registry |
A real response from this endpoint. Rows are returned under "envelope.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.
{
"api_version": "v2",
"endpoint": "/v2/datasets/market-breadth",
"request_id": "req_e2dea278d06e",
"plan_id": "enterprise",
"dataset": "market_breadth",
"query": {
"market": null,
"as_of_date": "2026-08-05",
"date_from": null,
"date_to": null,
"limit": 50,
"offset": 0,
"sort_by": "as_of_date",
"sort_order": "desc"
},
"meta": {
"rows_returned": 2,
"mandatory_contract_fields_present": [
"api_version",
"data",
"data_as_of"
],
"plan": "enterprise",
"row_limit": 100000,
"is_limited": false
},
"envelope": {
"api_version": "v2",
"dataset": "market_breadth",
"dataset_version": "v2.0.0-preview",
"release_version": "v2.2026-08-05.preview",
"release_date": "2026-08-05",
"data_as_of": "2026-08-05",
"request_context": {
"ticker": "market",
"as_of_date": "2026-08-05",
"family": "taiwan_macro",
"field_group_type": "derived",
"dataset_view": "market_breadth_v1",
"supported_filter_fields": [
"market",
"as_of_date",
"date_from"
],
"supported_sort_by": [
"as_of_date"
]
},
"data": [
{
"market": "TPEx",
"as_of_date": "2026-08-05",
"breadth_version": "v1",
"advancers": 681,
"decliners": 223,
"unchanged": 82,
"limit_up_count": 35,
"limit_down_count": 0,
"advance_decline_ratio": 3.053812,
"breadth_ratio": 0.464503,
"total_traded_value": 183152179740,
"total_volume": 1185255000,
"provider": "tpex_official",
"source_role": "derived_market_breadth",
"lineage": {
"derived_from": "normalized_tpex_daily_prices",
"breadth_version": "v1",
"limit_count_method": "approx",
"breadth_ratio_formula": "(advancers - decliners) / (advancers + decliners + unchanged)",
"limit_count_threshold_pct": 0.095,
"advance_decline_ratio_formula": "advancers / decliners"
},
"updated_at": "2026-08-05T11:07:31.224699"
},
{
"market": "TWSE",
"as_of_date": "2026-08-05",
"breadth_version": "v1",
"advancers": 901,
"decliners": 342,
"unchanged": 117,
"limit_up_count": 45,
"limit_down_count": 2,
"advance_decline_ratio": 2.634503,
"breadth_ratio": 0.411029,
"total_traded_value": 1183558261223,
"total_volume": 9762523934,
"provider": "twse_official",
"source_role": "derived_market_breadth",
"lineage": {
"derived_from": "normalized_twse_daily_prices",
"breadth_version": "v1",
"limit_count_method": "approx",
"breadth_ratio_formula": "(advancers - decliners) / (advancers + decliners + unchanged)",
"limit_count_threshold_pct": 0.095,
"advance_decline_ratio_formula": "advancers / decliners"
},
"updated_at": "2026-08-05T11:07:31.224699"
}
],
"quality": {
"freshness_state": "fresh",
"freshness_as_of": "2026-08-05",
"completeness_ratio": 1,
"quality_status": "ready"
},
"lineage": {
"source_role": "canonical",
"selected_source": "twse_official",
"fallback_chain": [
"tpex_official",
"data_gov_mirror"
],
"policy_notes": [
"official/public-first canonical",
"market_breadth derived from market_overview snapshots with deterministic formulas",
"unstable fields excluded from public contract (e.g., market_sentiment_score)"
]
},
"error": {
"error_code": null,
"error_message": null,
"dataset": "market_breadth",
"request_id": "read-api-653328cb1c66",
"blocking_gate": null
}
}
}Captured from the live API on 2026-07-20.
These columns are returned alongside the data and record where the row came from. They are provenance, not the dataset's subject matter, so they are listed here rather than in the field table.
breadth_versionprovidersource_rolelineageupdated_atPart 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. (n.d.). Market breadth [Data set]. TW Market Data. Retrieved 2026-09-05, from https://twmarketdata.com/en/docs/api/market-prices/market-breadth
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 as_of_date + market
Joins on as_of_date + market
Joins on as_of_date + market
Joins on as_of_date + market
Joins on as_of_date + market
curl "https://api.twmarketdata.com/v2/datasets/market-breadth?as_of_date=2026-08-05" \
-H "X-API-Key: sk_live_..."| Parameter | Required | Type | Description |
|---|---|---|---|
market | No | string | Declared by the endpoint in envelope.request_context.supported_filter_fields. |
as_of_date | No | string | Declared by the endpoint in envelope.request_context.supported_filter_fields. |
date_from | No | string | Declared by the endpoint in envelope.request_context.supported_filter_fields. |
import requests
resp = requests.get(
"https://api.twmarketdata.com/v2/datasets/market-breadth",
params={"as_of_date": "2026-08-05"},
headers={"X-API-Key": "sk_live_..."},
)
resp.raise_for_status()
print(resp.json()["envelope"]["data"])This endpoint is GET /v2/datasets/market-breadth. The full machine-readable schema (parameters, security, response envelope) lives in the OpenAPI spec.