Building an AI agent? Start with /llms.txt for the full site index.
Financials & Growth
Quarterly cash-flow statements for listed companies, sourced from MOPS — operating, investing and financing cash flows as filed.
GET /v2/datasets/cash-flow-statementcash-flow-statement returns one row per company per fiscal period from the official MOPS filings. Each row carries a source role and lineage naming the exact MOPS form, so a cash-flow figure can be audited back to the filing.
| Field | Type | Description |
|---|---|---|
symbol | string | Ticker. |
period | string | Fiscal period (e.g. 2026-Q1). |
operating_cash_flow | number | Net cash from operating activities (TWD thousands). |
investing_cash_flow | number | Net cash from investing activities (TWD thousands). |
financing_cash_flow | number | Net cash from financing activities (TWD thousands). |
source_role | string | Canonical source role (official_mops_cash_flow_statement). |
| Rows | 77,712 |
| Window | 2013-03-31 – 2026-03-31 |
| Grade | Verified |
A real response from this endpoint. Rows are returned under "rows", 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": "cash_flow_statement", "rows": [ { "symbol": "2330", "ticker": "2330", "fiscal_year": 2026, "fiscal_quarter": 1, "period_type": "quarterly", "period_end_date": "2026-03-31", "report_date": "2026-05-15", "operating_cash_flow": 698976265, "investing_cash_flow": -356853756, "financing_cash_flow": -119910612, "free_cash_flow": null, "capital_expenditures": null, "depreciation": null, "cash_beginning": null, "cash_ending": null, "net_change_in_cash": null, "source": "mops_t163sb20", "source_name": "mops_t163sb20", "fiscal_period": "2026-Q1", "frequency": "quarterly", "updated_at": "2026-07-18T14:43:59.997885", "fundamentals_context": { "generated_at": "2026-07-20T18:31:54Z", "ticker": "2330", "period": "2026Q1", "period_type": "quarterly", "statement_family": "cash_flow_statement", "metric_values": { "symbol": "2330", "period_end_date": "2026-03-31", "report_date": "2026-05-15", "operating_cash_flow": 698976265, "investing_cash_flow": -356853756, "financing_cash_flow": -119910612, "free_cash_flow": null, "capital_expenditures": null, "depreciation": null, "cash_beginning": null, "cash_ending": null, "net_change_in_cash": null, "source": "mops_t163sb20", "source_name": "mops_t163sb20", "fiscal_period": "2026-Q1", "frequency": "quarterly", "updated_at": "2026-07-18T14:43:59.997885" }, "source_lineage": { "provider": "mops_t163sb20", "source_role": "official_mops_cash_flow_statement", "source_table": "fundamental_cash_flows", "ingestion_run_id": null, "transformation_version": "fundamentals_ai_context_v1" }, "data_gaps": [], "restatement_warning": { "has_restatement": false, "reason": null, "previous_version_ref": null }, "not_investment_advice": true, "coverage_window": { "min_period": null, "max_period": null, "coverage_confidence": "medium", "row_count": 0 }, "safe_usage_notes": [ "not_investment_advice", "official_public_first_policy", "period_semantics_explicit" ], "available_tools_or_endpoints": [ { "name": "cash_flow_statement", "path": "/v2/datasets/cash-flow-statement" }, { "name": "cash_flow_statement", "path": "/v2/datasets/financials" } ] } }, { "symbol": "2330", "ticker": "2330", "fiscal_year": 2026, "fiscal_quarter": 1, "period_type": "quarterly", "period_end_date": "2026-03-31", "report_date": null, "operating_cash_flow": 698976265, "investing_cash_flow": -356853756, "financing_cash_flow": -119910612, "free_cash_flow": 342122509, "capital_expenditures": null, "depreciation": null, "cash_beginning": null, "cash_ending": null, "net_change_in_cash": null, "source": "official_mopsov_ajax_t163sb20", "source_name": "official_mopsov_ajax_t163sb20", "fiscal_period": "2026-Q1", "frequency": "quarterly", "updated_at": "2026-05-25T10:25:58.801061", "fundamentals_context": { "generated_at": "2026-07-20T18:31:54Z", "ticker": "2330", "period": "2026Q1", "period_type": "quarterly", "statement_family": "cash_flow_statement", "metric_values": { "symbol": "2330", "period_end_date": "2026-03-31", "report_date": null, "operating_cash_flow": 698976265, "investing_cash_flow": -356853756, "financing_cash_flow": -119910612, "free_cash_flow": 342122509, "capital_expenditures": null, "depreciation": null, "cash_beginning": null, "cash_ending": null, "net_change_in_cash": null, "source": "official_mopsov_ajax_t163sb20", "source_name": "official_mopsov_ajax_t163sb20", "fiscal_period": "2026-Q1", "frequency": "quarterly", "updated_at": "2026-05-25T10:25:58.801061" }, "source_lineage": { "provider": "official_mopsov_ajax_t163sb20", "source_role": "official_mops_cash_flow_statement", "source_table": "fundamental_cash_flows", "ingestion_run_id": null, "transformation_version": "fundamentals_ai_context_v1" }, "data_gaps": [], "restatement_warning": { "has_restatement": false, "reason": null, "previous_version_ref": null }, "not_investment_advice": true, "coverage_window": { "min_period": null, "max_period": null, "coverage_confidence": "medium", "row_count": 0 }, "safe_usage_notes": [ "not_investment_advice", "official_public_first_policy", "period_semantics_explicit" ], "available_tools_or_endpoints": [ { "name": "cash_flow_statement", "path": "/v2/datasets/cash-flow-statement" }, { "name": "cash_flow_statement", "path": "/v2/datasets/financials" } ] } } ], "count": 50, "status": "ok"}Captured from the live API on 2026-07-20.
curl "https://api.twmarketdata.com/v2/datasets/cash-flow-statement?symbol=2330" \ -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. |
A first call:
import requests resp = requests.get( "https://api.twmarketdata.com/v2/datasets/cash-flow-statement", params={"symbol": "2330"}, headers={"X-API-Key": "sk_live_..."},)resp.raise_for_status()print(resp.json()["rows"])With a date-range filter:
import requests # The full verified example — the same call with every supported filter set.resp = requests.get( "https://api.twmarketdata.com/v2/datasets/cash-flow-statement", params={"symbol": "2330"}, headers={"X-API-Key": "sk_live_..."},)resp.raise_for_status()for row in resp.json()["rows"]: print(row)This endpoint is GET /v2/datasets/cash-flow-statement. The full machine-readable schema (parameters, security, response envelope) lives in the OpenAPI spec.