Building an AI agent? Start with /llms.txt for the full site index.
Funds & Corporate Intelligence
Fund / ETF metadata — the reference record for each listed fund and ETF (identity, issuer, type).
GET /v2/datasets/fund-etf-metadatafund-etf-metadata is a reference dataset: one record per fund/ETF used to resolve a code to its issuer and type. It is metadata, not a price or flow time series.
| Field | Type | Description |
|---|---|---|
symbol | string | Fund / ETF code. |
name | string | Fund / ETF name. |
issuer | string | Issuing institution. |
fund_type | string | Fund / ETF type. |
| Rows | 257 |
| Window | Reference data, no time series |
| Grade | Reference |
A real response from this endpoint. Rows are returned under "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.
{ "dataset_id": "fund_etf_metadata", "request_context": { "scope": "fund_etf_metadata_latest_snapshot_only", "coverage_type": "latest_snapshot_only", "filters": { "fund_code": null, "market": null, "issuer": null, "fund_type": null, "source_as_of_date": null, "source_family": null, "limit": 50 }, "min_source_as_of_date": "2026-06-04", "max_source_as_of_date": "2026-06-04" }, "quality": { "row_count": 50, "fund_count": 50, "sensitive_fields_exposed": false }, "lineage": { "source_providers": [ "twse_official" ], "source_roles": [ "official_twse_t187ap47_l" ], "source_families": [ "twse_fund_etf_metadata" ] }, "error": null, "data": [ { "fund_code": "00400A", "market": "TWSE", "fund_name": "<Chinese value - see the zh page>", "issuer": null, "listing_date": "2026-04-09", "fund_type": "<Chinese value - see the zh page>", "underlying_index": "<Chinese value - see the zh page>", "currency": null, "source_as_of_date": "2026-06-04", "source_provider": "twse_official", "source_role": "official_twse_t187ap47_l", "source_family": "twse_fund_etf_metadata", "lineage": { "depth": "latest_snapshot_only", "source_name": "t187ap47_L", "tpex_supplemental_probe_status": "pass" }, "data_gaps": [ "issuer_not_provided_by_source", "currency_not_provided_by_source" ], "not_investment_advice": true }, { "fund_code": "00401A", "market": "TWSE", "fund_name": "<Chinese value - see the zh page>", "issuer": null, "listing_date": "2026-04-10", "fund_type": "<Chinese value - see the zh page>", "underlying_index": "<Chinese value - see the zh page>", "currency": null, "source_as_of_date": "2026-06-04", "source_provider": "twse_official", "source_role": "official_twse_t187ap47_l", "source_family": "twse_fund_etf_metadata", "lineage": { "depth": "latest_snapshot_only", "source_name": "t187ap47_L", "tpex_supplemental_probe_status": "pass" }, "data_gaps": [ "issuer_not_provided_by_source", "currency_not_provided_by_source" ], "not_investment_advice": true } ], "data_count": 50, "known_gaps": [ "latest_snapshot_only", "twse_first_baseline", "tpex_supplemental_not_full_baseline" ], "warnings": [ "not_investment_advice" ], "not_investment_advice": true, "envelope": { "dataset_id": "fund_etf_metadata", "scope": "fund_etf_metadata_latest_snapshot_only", "row_count": 50 }}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.
curl "https://api.twmarketdata.com/v2/datasets/fund-etf-metadata?symbol=2330" \ -H "X-API-Key: sk_live_..."| Parameter | Required | Type | Description |
|---|---|---|---|
symbol | No | string | Ticker to filter to a single security. |
limit | No | integer | Maximum rows to return. |
A first call:
import requests resp = requests.get( "https://api.twmarketdata.com/v2/datasets/fund-etf-metadata", params={"symbol": "2330"}, headers={"X-API-Key": "sk_live_..."},)resp.raise_for_status()print(resp.json()["data"])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/fund-etf-metadata", params={"symbol": "2330"}, headers={"X-API-Key": "sk_live_..."},)resp.raise_for_status()for row in resp.json()["data"]: print(row)This endpoint is GET /v2/datasets/fund-etf-metadata. The full machine-readable schema (parameters, security, response envelope) lives in the OpenAPI spec.