# Taiwan Company Data — Directors, Shareholders & Financials (`foxlabs/taiwan-company-data`) Actor

Look up any Taiwan company by Unified Business Number and get directors with shareholdings, capital, business scope, address & status (GCIS) — plus financials & English names for listed firms (TWSE). Clean JSON for KYC, due diligence & lead enrichment.

- **URL**: https://apify.com/foxlabs/taiwan-company-data.md
- **Developed by:** [Berkan Kaplan](https://apify.com/foxlabs) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Taiwan Company Data — Directors, Shareholders & Financials

**Look up any Taiwanese company by its Unified Business Number (UBN / 統一編號)** and get a clean, structured JSON profile: **directors and supervisors with their shareholdings, registered capital, business scope, address and status** — sourced from Taiwan's official **GCIS** (Ministry of Economic Affairs) open registry. Listed companies are automatically enriched with **full financials (balance sheet + income statement) and English names** from the **TWSE OpenAPI**. Try it with `22099131` (TSMC).

Built on Apify, so you get API access, scheduling, integrations, proxy rotation and run monitoring out of the box.

### What does Taiwan Company Data do?

It turns a list of UBNs (or company names) into rich firmographic records combining two authoritative public sources:

- **GCIS** (`data.gcis.nat.gov.tw`) — covers **all ~800K+ registered companies**: company name, status, registered & paid-in capital, responsible person, full address, incorporation date, business-scope items (with industry codes), and the **complete board of directors & supervisors including each member's shareholding** — a depth most registries never expose.
- **TWSE OpenAPI** (`openapi.twse.com.tw`) — for the ~1,000 listed companies, adds the **English name and address**, governance contacts (chairman, CEO, spokesperson, email, website, auditor), and the **latest balance sheet and income statement** (revenue, gross profit, operating/pre-tax/net income, EPS, total assets/liabilities/equity).

### Why use Taiwan Company Data?

- **KYC / KYB & due diligence** on Taiwanese counterparties and suppliers.
- **Semiconductor & electronics supply-chain mapping** (the TSMC / Foxconn / MediaTek / ASE ecosystem).
- **Lead generation & CRM enrichment** with verified firmographics.
- **Investment & M&A research** — directors, ownership and financials in one record.
- **Ownership / UBO analysis** — universe-wide director shareholdings.

Taiwanese company data is poorly covered by global B2B databases (Traditional-Chinese naming + the MOEA registry structure), so this is a genuine coverage gap you can fill.

### How to use Taiwan Company Data

1. Open the **Input** tab.
2. Paste one or more **UBNs** (8-digit, e.g. `22099131`) — the most precise option.
3. *(Optional)* Add **company names** (Chinese works best) for best-effort lookup.
4. Leave **Include financials** on to enrich listed companies.
5. Click **Start**, then download results from the **Output** tab.

### Input

| Field | Description |
|---|---|
| `ubns` | List of 8-digit Unified Business Numbers (most precise). |
| `companyNames` | Company names — best-effort resolution via the GCIS keyword registry. Ambiguous names may resolve to the wrong company; check `matched` + the returned name. |
| `includeFinancials` | Enrich listed companies with TWSE financials & English names (default `true`). |
| `maxResults` | Hard cap on results (pay-per-result). `0` = unlimited. |
| `maxConcurrency` | Parallel lookups (default `8`). |
| `proxyConfiguration` | Apify Datacenter proxy is sufficient. |

```json
{ "ubns": ["22099131", "04541302"], "includeFinancials": true }
````

### Output

```json
{
  "ubn": "22099131",
  "name": "台灣積體電路製造股份有限公司",
  "nameEnglish": "TSMC",
  "status": "核准設立",
  "responsiblePerson": "魏哲家",
  "address": "新竹科學園區新竹市力行六路8號",
  "addressEnglish": "No. 8, Li-Hsin Rd. 6, Hsinchu Science Park, Hsin-Chu 300096, Taiwan",
  "capitalStock": 280500000000,
  "capitalStockFormatted": "NT$280.50B",
  "setupDate": "1987-02-21",
  "industriesText": "電子零組件製造業; 能源技術服務業; …",
  "directors": [
    { "position": "董事長", "name": "魏哲家", "juristicPerson": null, "shareholding": 7452349 },
    { "position": "董事", "name": "葉俊顯", "juristicPerson": "行政院國家發展基金管理會", "shareholding": 1653709980 }
  ],
  "directorsCount": 10,
  "isListed": true,
  "stockCode": "2330",
  "listingDate": "1994-09-05",
  "chairman": "魏哲家",
  "email": "invest@tsmc.com",
  "website": "https://www.tsmc.com",
  "financials": {
    "period": "2026 Q1",
    "balanceSheet": { "totalAssets": 8660949685000, "totalEquity": 5932388921000, "netValuePerShare": 227.17 },
    "incomeStatement": { "revenue": 1134103440000, "netIncome": 572801304000, "eps": 22.08 }
  },
  "financialsText": "Revenue NT$1.13T · Net income NT$572.80B · EPS 22.08 · Assets NT$8.66T (2026 Q1)",
  "source": "GCIS (data.gcis.nat.gov.tw) + TWSE OpenAPI",
  "sourceUrl": "https://findbiz.nat.gov.tw/fts/query/QueryCmpyDetail/queryCmpyDetail.do?banNo=22099131"
}
```

You can download the dataset in various formats such as **JSON, HTML, CSV, or Excel**. All monetary values are in **NT$ (TWD)**; financial figures are converted from the source's NT$-thousands to absolute NT$.

#### Data table

| Field | Description |
|---|---|
| `ubn` | Unified Business Number (統一編號) |
| `name` / `nameEnglish` | Chinese registered name / English name (listed) |
| `status` | Registration status (e.g. 核准設立 = active) |
| `capitalStock` / `paidInCapital` | Registered / paid-in capital (NT$) |
| `responsiblePerson` | Legal responsible person |
| `address` / `addressEnglish` | Registered address |
| `setupDate` / `listingDate` | Incorporation / TWSE listing date |
| `industries` | Business-scope items with codes |
| `directors[]` | Board & supervisors: position, name, juristic backer, shareholding |
| `isListed` / `stockCode` | Listed flag / TWSE ticker |
| `chairman`, `ceo`, `email`, `website` | Governance & contacts (listed) |
| `financials` | Balance sheet + income statement (listed) |

### How much does it cost to get Taiwan company data?

The Actor uses free government open APIs and pure JSON parsing (no headless browser), so runs are fast and cheap. Pricing is **pay-per-result**, scaling linearly with the number of companies — set `maxResults` to control spend. A typical lookup of a few hundred companies costs only a few cents of platform usage.

### Tips & advanced options

- **UBN is king.** For guaranteed matches, supply UBNs; names are best-effort and may be ambiguous (e.g. a colloquial brand name differs from the registered name).
- **Financials are listed-only.** Non-listed Taiwanese companies are not required to publish financial statements, so `financials` is `null` for them — this is a legal limitation, not a gap in the Actor.
- Lower `maxConcurrency` on very large lists if you hit rate limits on the GCIS API.

### FAQ, disclaimers & support

**Is this legal?** The Actor reads **official open-government data** (GCIS under the Open Government Data Licence; TWSE OpenAPI) that permits commercial reuse with attribution. It does not bypass any login or anti-bot system. Director/shareholder names are public registry data; handle personal data in line with applicable law.

**Why is `nameEnglish` empty for some companies?** English names come from TWSE and exist only for listed companies.

**Found an issue or need a custom field?** Open an issue on the Actor's **Issues** tab — custom B2B-intelligence solutions are available.

### Changelog

#### 0.1 (initial release)

- GCIS lookup by UBN: registry basics, capital, business scope, and full directors/supervisors with shareholdings.
- TWSE enrichment for listed companies: English name/address, governance contacts, and latest balance sheet + income statement.
- Best-effort company-name → UBN resolution via the GCIS keyword registry.

# Actor input Schema

## `ubns` (type: `array`):

One 8-digit UBN per line — e.g. `22099131` (TSMC). The UBN is the tax/registration number printed on every Taiwanese company's invoices and filings. No ambiguity — exact match.

## `companyNames` (type: `array`):

Type Taiwanese company names — one per line (Chinese name works best, e.g. `台積電`). Each is resolved to its UBN via the GCIS keyword registry. ⚠ Best-effort: a partial/ambiguous name may resolve to the wrong company — for guaranteed results use the UBN. Always check the `matched` field + returned name.

## `includeFinancials` (type: `boolean`):

When on, listed (TWSE) companies are enriched with their latest balance sheet, income statement and English name. Non-listed companies are unaffected (their financials are not public in Taiwan).

## `maxResults` (type: `integer`):

Hard cap on results — pay-per-result pricing scales linearly. Set 0 for unlimited.

## `maxConcurrency` (type: `integer`):

How many companies to fetch in parallel. Default 8 is balanced for the GCIS open API; lower it if you hit rate limits on large lists.

## `proxyConfiguration` (type: `object`):

Apify Datacenter proxy is sufficient (the sources are open government APIs).

## Actor input object example

```json
{
  "ubns": [
    "22099131",
    "16003518"
  ],
  "companyNames": [],
  "includeFinancials": true,
  "maxResults": 100,
  "maxConcurrency": 8,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "ubns": [
        "22099131",
        "16003518"
    ],
    "companyNames": [],
    "maxResults": 100,
    "maxConcurrency": 8,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": []
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("foxlabs/taiwan-company-data").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "ubns": [
        "22099131",
        "16003518",
    ],
    "companyNames": [],
    "maxResults": 100,
    "maxConcurrency": 8,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("foxlabs/taiwan-company-data").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "ubns": [
    "22099131",
    "16003518"
  ],
  "companyNames": [],
  "maxResults": 100,
  "maxConcurrency": 8,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}' |
apify call foxlabs/taiwan-company-data --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=foxlabs/taiwan-company-data",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Taiwan Company Data — Directors, Shareholders & Financials",
        "description": "Look up any Taiwan company by Unified Business Number and get directors with shareholdings, capital, business scope, address & status (GCIS) — plus financials & English names for listed firms (TWSE). Clean JSON for KYC, due diligence & lead enrichment.",
        "version": "0.1",
        "x-build-id": "cU9Pk2vgeS2DY895a"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/foxlabs~taiwan-company-data/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-foxlabs-taiwan-company-data",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/foxlabs~taiwan-company-data/runs": {
            "post": {
                "operationId": "runs-sync-foxlabs-taiwan-company-data",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/foxlabs~taiwan-company-data/run-sync": {
            "post": {
                "operationId": "run-sync-foxlabs-taiwan-company-data",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "ubns": {
                        "title": "Unified Business Numbers (UBN / 統一編號) — most precise",
                        "type": "array",
                        "description": "One 8-digit UBN per line — e.g. `22099131` (TSMC). The UBN is the tax/registration number printed on every Taiwanese company's invoices and filings. No ambiguity — exact match.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "companyNames": {
                        "title": "Company names (best-effort)",
                        "type": "array",
                        "description": "Type Taiwanese company names — one per line (Chinese name works best, e.g. `台積電`). Each is resolved to its UBN via the GCIS keyword registry. ⚠ Best-effort: a partial/ambiguous name may resolve to the wrong company — for guaranteed results use the UBN. Always check the `matched` field + returned name.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeFinancials": {
                        "title": "Include financials for listed companies",
                        "type": "boolean",
                        "description": "When on, listed (TWSE) companies are enriched with their latest balance sheet, income statement and English name. Non-listed companies are unaffected (their financials are not public in Taiwan).",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Maximum number of companies",
                        "minimum": 0,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Hard cap on results — pay-per-result pricing scales linearly. Set 0 for unlimited.",
                        "default": 100
                    },
                    "maxConcurrency": {
                        "title": "Concurrent lookups",
                        "minimum": 1,
                        "maximum": 25,
                        "type": "integer",
                        "description": "How many companies to fetch in parallel. Default 8 is balanced for the GCIS open API; lower it if you hit rate limits on large lists.",
                        "default": 8
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Datacenter proxy is sufficient (the sources are open government APIs).",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": []
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
