TW Market Data LogoTW Market Data

Facts & statistics

Market facts

Long-run statistics for Taiwan equities, each with its sample period and as_of

Seasonality

Monthly return distributions and hit rates, with sample sizes

Institutional flow

Seasonality in the breadth of institutional net buying

Limit events

How often limit moves happen, and how concentrated they are

Delisting

Delisting counts and survival spans — the basis for avoiding survivorship bias

Rule changes

A timeline of trading-rule changes — the premise for reading historical data

Data & exploration

Dataset catalogue

Every dataset, its coverage, and how often it updates

Playground

Call the API from the browser, without a key

Market today

Today's market at a glance

Stock analysis

The entry point for looking at one instrument

Market heat map

The whole market in one picture — area is market cap, colour is revenue growth

Market calendar

Statutory disclosure deadlines — the day a figure may legally first be known

Platform capabilities

Product overview

What TWMD provides, and who it is built for

Verifiable proof

Signed checkpoints and per-row inclusion proofs

Data quality

Reconciliation, gap handling, and quality status

Methodology

How the figures are computed, and on what basis

Auditable execution

Tie a trading decision back to the data it saw

Connect your broker

Bring TWMD into an existing order and research workflow

Developers

Documentation

API reference, dataset pages, and integration guides

Quick start

Authentication and your first request

Integrate by role

Separate paths for quant research, data engineering, and app development

Connect over MCP

Point an agent straight at TWMD

MCP registry

The published MCP tool list and its signed manifest

Webhooks

Have your system told when data updates

Learn

Blog

Long-form writing on data, method, and market structure

Answers

Specific answers to specific questions, with sources

Topics

Industry chains and thematic relationships

Help centre

Account, billing, and usage questions

Glossary

Definitions for Taiwan-market and data terms

Compare & status

Why TWMD

A point-by-point comparison with FinMind and TEJ

Migrate from FinMind

Field mapping and migration steps

Migrate from FinLab

Field mapping and migration steps

Migrate from TEJ

Field mapping and migration steps

Status

Service availability and incident history

Security & trust

Trust centre

What we claim, and the limits on each claim

Security

Architecture, access control, and incident handling

Security facts

The items you can verify from outside

Security evidence

SBOM, ASVS mapping and threat model — including the three controls we do not meet.

Self-assessment

Item-by-item answers for a procurement questionnaire

Compliance & standards

Compliance mapping

Evidence primitives mapped onto FSB, IOSCO, and SR 26-2

Standards & interop

Term-by-term mapping onto published standards, and where it does not map

Provenance & C2PA

A machine-readable origin graph, fetchable without a key

Licensing

How the data may be used and redistributed

Adoption

Evaluate

Seven checks you can run yourself, without an account

Talk to sales

Enterprise plans, quotas, and contract detail

Pricing
中文Sign inSign up
TW Market Data

Taiwan market-data infrastructure, built for AI agents and quantitative workflows.

Status unknown
© 2026 TW Market Data

TW Market Data (TWMD) provides historical data and statistics, not investment advice; investment decisions and their risks are your own.

  • Privacy Policy·
  • Terms of Service·
  • Cookie Policy·
  • Acceptable Use Policy·
  • Data Sources & Licensing·
  • Legal (all documents)
中文

AI Agent

  • MCP Server
  • Skills
  • Tool manifest
  • Agent workflow examples
  • Agent benchmark
  • llms.txt
  • OpenAPI spec

Security

  • Security overview
  • Verifiable data
  • Trust Center
  • Standards & Interop
  • Regulatory mapping

Product

  • Datasets
  • Topics
  • Market facts
  • Documentation
  • Integration runbooks
  • Playground (no signup)
  • Free tier
  • Solutions

Company

  • About TWMD
  • Blog
  • Help centre
  • Pricing

Documentation

DASHBOARD

DashboardPricing

FOR AI AGENTS

MCP ServerSkillsllms.txtTool manifestOpenAPI SpecAgent workflow examples

OVERVIEW

OverviewQuick startAuthenticationSource policyData gradesData lineageMarket coverage

DATA APIS

Market indicesTPEx daily pricesTWSE daily pricesPrice adjustment factorsPrice-limit (daily)Limit-Up/Down EventsIndustry index (daily)Return index (daily)Index constituentsMarket breadthCore valuation (daily)Valuation dataTechnical indicatorsPrice Move Context CardsMarket value weightIndex classificationMarket overview snapshots

GUIDES

How to get the 3 financial statementsHow to read institutional flowsHow to check market statusHow to wire a strategy / AI agent

SDKS

Release statusPython SDKJavaScript / TypeScript SDK

Building an AI agent? Start with /llms.txt for the full site index.

Market & Prices

Index classification

Index classification — the reference lookup mapping each index code to its family and category (broad-market, sector, thematic).

← Index classification overview

ReferenceSource: TWSE·Plan: free·Cost: 1 credits·GET /v2/datasets/index-classification

Index classification is a Taiwan market dataset sourced from TWSE, served by TW Market Data as GET /v2/datasets/index-classification.

Overview

index-classification is a reference dataset: one record per index describing where it sits in the TWSE index hierarchy. Use it to resolve an index code to its name and category, or to enumerate the indices in a family. It is a lookup snapshot, not a time series of levels.

FieldTypeDescription
index_codestringIndex code.
marketstring
as_of_datestring
index_namestringIndex display name.
index_typestring
sectornull
industrynull
parent_index_codenull
is_sector_indexboolean
is_broad_market_indexboolean
theme_primarynull
theme_secondarynull

Coverage

Rows5
Window2026-05-22 – 2026-05-28
GradeReference
Measured2026-09-01from the dataset registry

Example response

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/index-classification",
"request_id": "req_90acb32ace38",
"plan_id": "enterprise",
"dataset": "index_classification",
"query": {
"index_code": null,
"market": "TWSE",
"index_type": null,
"sector": null,
"industry": null,
"limit": 50,
"offset": 0,
"sort_by": "as_of_date",
"sort_order": "desc"
},
"meta": {
"rows_returned": 5,
"mandatory_contract_fields_present": [
"api_version",
"data",
"data_as_of"
],
"plan": "enterprise",
"row_limit": 100000,
"is_limited": false
},
"envelope": {
"api_version": "v2",
"dataset": "index_classification",
"dataset_version": "v2.0.0-preview",
"release_version": "v2.2026-05-28.preview",
"release_date": "2026-05-28",
"data_as_of": "2026-05-28",
"request_context": {
"ticker": null,
"as_of_date": "2026-05-28",
"family": "market_structure_corporate_actions",
"field_group_type": "derived",
"dataset_view": "index_classification_v1",
"supported_sort_by": [
"as_of_date",
"index_code"
],
"supported_filter_fields": [
"index_code",
"market",
"index_type"
]
},
"data": [
{
"index_code": "TWSE_TAIEX",
"market": "TWSE",
"as_of_date": "2026-05-28",
"classification_version": "v1",
"index_name": "TWSE Capitalization Weighted Stock Index",
"index_type": "broad_market",
"sector": null,
"industry": null,
"parent_index_code": null,
"is_sector_index": false,
"is_broad_market_index": true,
"theme_primary": null,
"theme_secondary": null,
"classification_source": "index_code_mapping_v1",
"provider": "twse_official",
"source_role": "official_twse_mi_index",
"lineage": {
"source_key": {
"market": "TWSE",
"as_of_date": "2026-05-28",
"index_code": "TWSE_TAIEX"
},
"mapping_rule": "deterministic index_code mapping v1 only",
"upstream_lineage": {
"source": "TWSE_MI_INDEX",
"source_date": "2026-05-28",
"source_type": "ALLBUT0999",
"special_note": null,
"identity_rule": "exact_index_name_match",
"source_lineage": {
"row_number": 1,
"table_index": 0,
"table_title": "<Chinese value - see the zh page>"
},
"source_table_id": "table_0",
"turnover_lineage": {
"stat_item": "<Chinese value - see the zh page>",
"row_number": 0,
"table_index": 6,
"table_title": "<Chinese value - see the zh page>"
}
},
"classification_version": "v1",
"excluded_fields_reason": "ai/theme confidence/ranking/regime fields excluded by deterministic policy"
},
"updated_at": "2026-06-17T05:21:52.769338"
},
{
"index_code": "TWSE_TAIEX",
"market": "TWSE",
"as_of_date": "2026-05-27",
"classification_version": "v1",
"index_name": "TWSE Capitalization Weighted Stock Index",
"index_type": "broad_market",
"sector": null,
"industry": null,
"parent_index_code": null,
"is_sector_index": false,
"is_broad_market_index": true,
"theme_primary": null,
"theme_secondary": null,
"classification_source": "index_code_mapping_v1",
"provider": "twse_official",
"source_role": "official_twse_mi_index",
"lineage": {
"source_key": {
"market": "TWSE",
"as_of_date": "2026-05-27",
"index_code": "TWSE_TAIEX"
},
"mapping_rule": "deterministic index_code mapping v1 only",
"upstream_lineage": {
"source": "TWSE_MI_INDEX",
"source_date": "2026-05-27",
"source_type": "ALLBUT0999",
"special_note": null,
"identity_rule": "exact_index_name_match",
"source_lineage": {
"row_number": 1,
"table_index": 0,
"table_title": "<Chinese value - see the zh page>"
},
"source_table_id": "table_0",
"turnover_lineage": {
"stat_item": "<Chinese value - see the zh page>",
"row_number": 0,
"table_index": 6,
"table_title": "<Chinese value - see the zh page>"
}
},
"classification_version": "v1",
"excluded_fields_reason": "ai/theme confidence/ranking/regime fields excluded by deterministic policy"
},
"updated_at": "2026-06-17T05:21:52.769338"
}
],
"quality": {
"freshness_state": "fresh",
"freshness_as_of": "2026-05-28",
"completeness_ratio": 1,
"quality_status": "ready"
},
"lineage": {
"source_role": "canonical",
"selected_source": "index_classification",
"fallback_chain": [],
"policy_notes": [
"official/public-first canonical",
"index classification facts mapped deterministically from canonical index/classification sources",
"ai/rank/regime fields excluded from public contract"
]
},
"error": {
"error_code": null,
"error_message": null,
"dataset": "index_classification",
"request_id": "read-api-66158c9b9f87",
"blocking_gate": null
}
}
}

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.

Provenance

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.

classification_versionclassification_sourceprovidersource_rolelineageupdated_at

Licence and attribution

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.

Cite this dataset

TW Market Data. (n.d.). Index classification [Data set]. TW Market Data. Retrieved 2026-09-05, from https://twmarketdata.com/en/docs/api/market-prices/index-classification

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

Related datasets

Datasets that join with this one. The key each pair aligns on is shown, so you can plan a multi-table query without guessing.

  • Market breadth

    Joins on as_of_date + market

  • Market value weight

    Joins on as_of_date + market

  • Technical indicators

    Joins on as_of_date + market

  • Valuation data

    Joins on as_of_date + market

  • GHG Carbon Disclosure (Scope 1/2/3)

    Joins on as_of_date + market

  • Market indices

    Same domain: market-prices

  • Market overview snapshots

    Joins on as_of_date

Getting started

  1. Put your key in the X-API-Key header.
  2. Add query parameters (symbol, date range, limit).
  3. Send the request and read the envelope.data array.
curl "https://api.twmarketdata.com/v2/datasets/index-classification?market=TWSE" \
-H "X-API-Key: sk_live_..."

Filtering

ParameterRequiredTypeDescription
index_codeNostringDeclared by the endpoint in envelope.request_context.supported_filter_fields.
marketNostringDeclared by the endpoint in envelope.request_context.supported_filter_fields.
index_typeNostringDeclared by the endpoint in envelope.request_context.supported_filter_fields.

Python

import requests

resp = requests.get(
"https://api.twmarketdata.com/v2/datasets/index-classification",
params={"market": "TWSE"},
headers={"X-API-Key": "sk_live_..."},
)
resp.raise_for_status()
print(resp.json()["envelope"]["data"])

OpenAPI

This endpoint is GET /v2/datasets/index-classification. The full machine-readable schema (parameters, security, response envelope) lives in the OpenAPI spec.

Notes & limitations

  • Reference lookup snapshot — not a time series; it does not reconstruct how an index was classified at a past date.
  • Scope: this classification currently covers the broad-market index. The remaining TWSE indices are not classified yet — a query for one returns no rows because it has not been built, not because the endpoint failed.

Request & Response

Request
curl "https://api.twmarketdata.com/v2/datasets/index-classification" \
-H "X-API-Key: $TWMD_API_KEY"
Response
{
"api_version": "v2",
"endpoint": "/v2/datasets/index-classification",
"request_id": "req_90acb32ace38",
"plan_id": "enterprise",
"dataset": "index_classification",
"query": {
"index_code": "<null>",
"market": "<string>",
"index_type": "<null>",
"sector": "<null>",
"industry": "<null>",
"limit": "<number>",
"offset": "<number>",
"sort_by": "<string>",
"sort_order": "<string>"
},
"meta": {
"rows_returned": "<number>",
"mandatory_contract_fields_present": "<array>",
"plan": "<string>",
"row_limit": "<number>",
"is_limited": "<boolean>"
},
"envelope": {
"api_version": "<string>",
"dataset": "<string>",
"dataset_version": "<string>",
"release_version": "<string>",
"release_date": "<string>",
"data_as_of": "<string>",
"request_context": {
"ticker": "<null>",
"as_of_date": "<string>",
"family": "<string>",
"field_group_type": "<string>",
"dataset_view": "<string>",
"supported_sort_by": "<array>",
"supported_filter_fields": "<array>"
},
"data": "<array>",
"quality": {
"freshness_state": "<string>",
"freshness_as_of": "<string>",
"completeness_ratio": "<number>",
"quality_status": "<string>"
},
"lineage": {
"source_role": "<string>",
"selected_source": "<string>",
"fallback_chain": "<array>",
"policy_notes": "<array>"
},
"error": {
"error_code": "<null>",
"error_message": "<null>",
"dataset": "<string>",
"request_id": "<string>",
"blocking_gate": "<null>"
}
}
}
i