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 get the 3 financial statements

Pull income statement, balance sheet and cash-flow for a company, then narrow by period.

Prerequisites

  • A dashboard-issued API key (sk_live_…).
  • Python with the requests library.
  • The three statement datasets are on the Pro plan.

Step 1 — Authenticate

Send your key in the X-API-Key header on every request.

import requests BASE = "https://api.twmarketdata.com"HEADERS = {"X-API-Key": "sk_live_..."}

Step 2 — Fetch the three statements

for slug in ["income-statement", "balance-sheet", "cash-flow-statement"]:    resp = requests.get(        f"{BASE}/v2/datasets/{slug}",        params={"symbol": "2330"},        headers=HEADERS,    )    resp.raise_for_status()    print(slug, "->", len(resp.json()["data"]), "rows")

Step 3 — Narrow by period

Add start_date / end_date to limit the range.

resp = requests.get(    f"{BASE}/v2/datasets/income-statement",    params={"symbol": "2330", "start_date": "2024-01-01", "end_date": "2026-06-30"},    headers=HEADERS,)print(resp.json()["data"])

Next steps

  • See the monthly-revenue dataset for the freshest top-line growth signal.
  • For backtests, pass as_of so you only see figures public at that date.

English is a semantic rewrite, not a machine translation.

On this page

  • Prerequisites
  • Step 1 — Authenticate
  • Step 2 — Fetch the three statements
  • Step 3 — Narrow by period
  • Next steps