TW Market Data LogoTW Market Data

Core data

Market & prices

TWSE / TPEx daily bars, adjusted prices, indices, and market breadth

Financials & growth

Monthly revenue, the three financial statements, financial metrics, and valuation data

Flows & positioning

Institutional investors and margin & short-selling data

Company & structure

Company & events

Company profiles, disclosures, events, corporate actions, and dividends

Taxonomy & structure

Theme taxonomy, index classification, and cross-dataset mapping

Strategy & quant

Features, factor data, time alignment, and screener

Platform capabilities

API access

REST API, authentication, and your first request

Query & tools

Search API, Query API, field lists, and query examples

Tools / MCP

Agent workflows, MCP tools, and the OpenAPI entry point

PricingDocsBlog
中文Dashboard

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|Help Center||中文|TW Market Data © 2026

Documentation

DASHBOARD

DashboardPricing

FOR AI AGENTS

MCP Serverllms.txtTool manifestOpenAPI SpecAgent workflow examples
WebhooksBuilding

OVERVIEW

OverviewQuick startAuthenticationSource policyData gradesData lineageMarket coverage

DATA APIS

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.

Guide

How to check market status

Read the day's benchmark index level and change from the official TWSE index feed.

Goal

See where the market closed today: the TAIEX level and its daily change, from the official TWSE index feed.

Step 1 — Fetch the benchmark index

Request market-index filtered to the TAIEX. A real request:

curl -H "X-API-Key: sk_live_..." \  "https://api.twmarketdata.com/v2/datasets/market-index?symbol=TAIEX&start_date=2026-07-14&end_date=2026-07-18"

Step 2 — Read the level and change

A real 200 response (one item, TAIEX on 2026-07-17). Note this dataset's envelope is { dataset_id, row_count, items } and the fields are nested (the Chinese index name is omitted here to keep the sample ASCII — index_code identifies it):

  • index_level.value — the index level (42,671.27).
  • daily_change.points / daily_change.return_pct — the day's move (-2,953.71 points, -6.47%).
  • index_identity.index_code is TWSE_TAIEX (the response also carries the Chinese index_name — see the zh page).
{  "dataset_id": "market_index",  "row_count": 4,  "items": [    {      "index_identity": { "index_code": "TWSE_TAIEX", "index_type": "price" },      "market_identity": { "as_of_date": "2026-07-17", "source_role": "official_twse_mi_index" },      "index_level": { "value": 42671.27 },      "daily_change": { "points": -2953.71, "return_pct": -6.47 }    }  ]}

Advancers / decliners (breadth)

TODO — the market-breadth endpoint requires a market filter and returned no rows for the windows tested against the live API, so a real example is not shown here yet rather than a fabricated one. It will be filled once the dataset is re-verified.

English is a semantic rewrite, not a machine translation.

On this page

  • Goal
  • Step 1 — Fetch the benchmark index
  • Step 2 — Read the level and change
  • Advancers / decliners (breadth)