Building an AI agent? Start with /llms.txt for the full site index.
Market Structure & Reference
Issuer profile — the reference record of each listed company's corporate basics (registered name, industry, listing board, key dates).
GET /v2/datasets/issuer-profileissuer-profile is a reference dataset: one active record per issuer, not a time series. Use it to resolve a ticker to the company's registered identity, industry and listing board. It is an active snapshot — the full point-in-time history of renames, industry re-classifications and capital changes is not yet integrated.
| Field | Type | Description |
|---|---|---|
symbol | string | Ticker. |
company_name | string | Registered company name. |
industry | string | Industry classification. |
board | string | Listing board (TWSE / TPEx). |
listing_date | string | Date the security was listed. |
source_role | string | official_twse_issuer_profile. |
| Rows | 1,084 |
| Window | Reference data, no time series |
| Grade | Reference |
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/issuer-profile", "request_id": "req_b0ee95457597", "plan_id": "enterprise", "dataset": "issuer_profile", "query": { "symbol": "2330", "market": null, "limit": 50 }, "meta": { "rows_returned": 1, "mandatory_contract_fields_present": [ "api_version", "data", "data_as_of" ], "plan": "enterprise", "row_limit": 100000, "is_limited": false }, "envelope": { "api_version": "v2", "dataset": "issuer_profile", "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": "2330", "as_of_date": "2026-05-28", "family": "discovery_reference", "field_group_type": "canonical", "dataset_view": "issuer_profile_v1" }, "data": [ { "symbol": "2330", "company_name": "<Chinese value - see the zh page>", "market": "TWSE", "industry": "24", "isin": null, "listing_date": "1994-09-05", "chairperson": null, "general_manager": null, "capital": null, "address": null, "website": "https://www.tsmc.com", "source_name": "official_twse_openapi_t187ap03_l", "source_url": null, "announcement_type": null, "source_as_of": "2026-05-28", "updated_at": "2026-07-17T15:58:24.532904" } ], "quality": { "freshness_state": "fresh", "freshness_as_of": "2026-05-28", "completeness_ratio": 1, "quality_status": "ready" }, "lineage": { "source_role": "canonical", "selected_source": "issuer_profiles", "fallback_chain": [], "policy_notes": [ "official/public-first canonical", "issuer profile mapped from canonical issuer_profiles table", "nullable profile fields are preserved as-is" ] }, "error": { "error_code": null, "error_message": null, "dataset": "issuer_profile", "request_id": "read-api-590902c52ef5", "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.
curl "https://api.twmarketdata.com/v2/datasets/issuer-profile?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/issuer-profile", params={"symbol": "2330"}, headers={"X-API-Key": "sk_live_..."},)resp.raise_for_status()print(resp.json()["envelope"]["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/issuer-profile", params={"symbol": "2330"}, headers={"X-API-Key": "sk_live_..."},)resp.raise_for_status()for row in resp.json()["envelope"]["data"]: print(row)This endpoint is GET /v2/datasets/issuer-profile. The full machine-readable schema (parameters, security, response envelope) lives in the OpenAPI spec.