# 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:** Business, Lead generation
- **Stats:** 3 total users, 0 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 — UBN, Directors & Financials (GCIS + TWSE) 🇹🇼

🎉 Turn Taiwan's official company register into clean, structured company records — look companies up by UBN (統一編號) or name and get status, capital, business items and the directors and supervisors with their shareholdings, plus contacts and the latest quarterly income statement for TWSE-listed companies, one row per company.
Built for KYB / KYC, supplier verification, due diligence and B2B research on Taiwanese companies.

### 🔍 What is Taiwan Company Data — and when should you use it?

Give this Actor 8-digit **Unified Business Numbers** (統一編號, UBN) or **company names**, and it returns one record per company from the Ministry of Economic Affairs' **GCIS open-data API** (`data.gcis.nat.gov.tw`) — registration data, business items, directors and supervisors — joined with the **TWSE OpenAPI** (`openapi.twse.com.tw`) when the company is listed on the Taiwan Stock Exchange. Every run reads both sources live.

**Use it when you need:** a registry check for KYB or supplier onboarding (status, responsible person, capital, registered address, setup date); the directors and supervisors of a company with the shares they hold; contacts and the latest quarterly results of a TWSE-listed company.

**Use something else when:** you need contacts or financials for companies that are not listed on the TWSE — the Actor takes both from TWSE only, so they stay `null` for other companies, including companies traded only on TPEx.

### 🤖 Use with AI agents

**Already on the Apify MCP server?** Ask for this Actor by name: `foxlabs/taiwan-company-data`.

**Your agent can pay for its own runs.** This Actor is pay-per-event with agentic payments, so an agent can discover it, run it and settle the bill over **x402 (USDC on Base)** or **Skyfire** — no Apify account or API token of its own. Billing is the same either way: per delivered company record — rows that only report a failed lookup are free from 25 September 2026.

Otherwise paste this into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

```
I want Taiwanese company records from the Apify Actor `foxlabs/taiwan-company-data`.
Input: `ubns` is a list of 8-digit Unified Business Numbers (統一編號, exact match); `companyNames` is a list of company names in Traditional Chinese (resolved through GCIS, best-effort). `includeFinancials` adds TWSE statements for listed companies; `maxResults` caps the rows.
Start with: {"ubns":["22099131","16003518"]}
Ask me what to look up, run the Actor, then summarise the rows as a table.
```

The machine-readable API, MCP config and OpenAPI definition live at `apify.com/foxlabs/taiwan-company-data.md`.

### 📋 Overview

Everything you need to turn Taiwan's company register into structured data — in one Actor, with no login, cookies or API key.

**Why teams pick this Actor:**

- ✅ **Official open data** — GCIS (Ministry of Economic Affairs) for every registered company, TWSE for listed ones.
- 🧑‍💼 **Directors and supervisors with shareholdings** — position, name, the juristic person they represent, shares held.
- 🏷️ **Business items** — coded business items plus the company's own free-text business scope.
- 📈 **Listed-company data** — English name, stock code, TWSE industry, chairman, CEO, spokesperson, email, website, phone, auditor and the latest quarterly income statement and balance sheet.
- 💰 **Pay per record** — $0.004 per delivered company record, no subscription.
- 🤖 **Agent-ready** — MCP + x402 agentic payments.

### ✨ Features

- 🔍 **Two ways in** — `ubns` (exact) or `companyNames` (resolved through GCIS's keyword search among active companies).
- ✅ **UBN check** — every UBN is checked with the Ministry of Finance check-digit rule before any lookup, so a mistyped number or `00000000` gets an error row instead of a wrong company.
- 🧾 **Registry record** — name, status, responsible person, address, registering authority, setup date and date of the last approved change, authorised and paid-in capital (NT$).
- 🧑‍💼 **Board** — every director and supervisor GCIS lists (up to 100), with shareholding.
- 📈 **TWSE data** — for TWSE-listed companies: listing data and contacts, and with `includeFinancials` the latest quarterly income statement and balance sheet.
- 🧹 **Clean values** — ROC (民國) dates converted to ISO, TWSE amounts in thousands scaled to NT$, compact money texts next to the numbers.

### 🎬 Quick Start

```bash
curl -X POST "https://api.apify.com/v2/acts/foxlabs~taiwan-company-data/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ubns":["22099131","16003518"]}'
```

### 🚀 Getting Started (3 steps)

1. **Choose your targets** — UBNs for exact matches, names for convenience.
2. **Keep or drop the TWSE statements** — `includeFinancials` is on by default.
3. **Run and export** — download the dataset as JSON, CSV, Excel, HTML or XML.

### 📥 Input

```json
{"ubns":["22099131","16003518"]}
```

| Field | Type | Description |
|---|---|---|
| `ubns` | array | 8-digit UBNs (統一編號), one per line — exact match. Non-digits are stripped, then each number is checked with the Ministry of Finance check-digit rule; an entry that fails it — wrong length, a typo or `00000000` — gets its own `error` row and is not looked up. |
| `companyNames` | array | Company names, resolved to a UBN through GCIS's keyword search among active companies: an exact legal-name match wins, otherwise the first hit is used. Use the full registered name (e.g. `台灣積體電路製造股份有限公司` for TSMC) and check `resolvedFrom` and `name` in the output. |
| `includeFinancials` | boolean | For TWSE-listed companies, add the latest quarterly income statement and balance-sheet items (default on). Listing data and contacts come for listed companies either way. |
| `maxResults` | integer | Cap on company rows (default 100; 0 = no cap). |
| `maxConcurrency` | integer | Companies fetched in parallel (default 8, max 25); names are resolved up to 5 at a time. |
| `proxyConfiguration` | object | Apify Proxy settings (default: Apify Proxy on). |

**More recipes**

- Name look-up: `{"companyNames":["鴻海精密工業"]}` — resolved to 鴻海精密工業股份有限公司 (UBN 04541302) in our test.
- Full legal name: `{"companyNames":["台灣積體電路製造股份有限公司"],"includeFinancials":false}` — resolved to TSMC (UBN 22099131) in our test.
- A company that is not listed: `{"companyNames":["台灣國際商業機器"]}` — resolved to 台灣國際商業機器股份有限公司 (UBN 11917900): registry record, 38 business items and 2 directors, `isListed: false`, no contacts or financials.

### 📤 Output

One row per company. Rows with `matched: true` are delivered company records. A lookup that fails still writes a row with `matched: false` and an `error` — a UBN that fails the check-digit rule, a name that could not be resolved (the name is in `query`), or a UBN that neither GCIS nor TWSE returns — so a failed lookup never disappears silently. From 25 September 2026 these rows are not charged.

| Field | Description |
|---|---|
| `ubn` | Unified Business Number |
| `name` / `nameEnglish` / `shortName` | Registered name; English and short name from TWSE (listed companies) |
| `status` | GCIS status text, e.g. `核准設立` (registered, active) |
| `responsiblePerson` | Responsible person (代表人) |
| `address` / `addressEnglish` | Registered address; English address from TWSE (listed companies) |
| `registerOrganization` | Registering authority |
| `setupDate` / `lastApprovalDate` | Setup date and date of the last approved change (ISO) |
| `capitalStock` / `capitalStockFormatted` / `capitalStockExact` / `paidInCapital` / `paidInCapitalFormatted` / `currency` | Authorised and paid-in capital (NT$) |
| `industries[]` / `industriesText` / `businessScopeStatement` | Business items — `code`, `description`, `kind` (`coded` or `statement`); the coded items joined; the free-text statements joined |
| `directors[]` / `directorsCount` / `directorsText` | Directors and supervisors — `position`, `name`, `juristicPerson`, `shareholding` (shares) |
| `isListed` / `stockCode` / `listingDate` / `industryCategory` / `industryCategoryCode` | TWSE listing data (`isListed: false` and `null`s for other companies) |
| `chairman` / `ceo` / `ceoTitle` / `spokesperson` / `email` / `website` / `phone` / `auditorFirm` | Governance and contacts from TWSE (listed companies only) |
| `financials` / `revenue` / `revenueFormatted` / `financialsText` | Latest TWSE quarter: `period`, `incomeStatement` (revenue, cost, gross profit, operating income, pre-tax income, net income, EPS) and `balanceSheet` (total assets, total liabilities, total equity, share capital, retained earnings, net value per share) |
| `resolvedFrom` | Name look-ups only — the name you searched |
| `matched` / `error` / `query` | `true` for a company record; `false` plus `error` for a failed lookup (`query` holds an unresolved name) |
| `source` / `sourceUrl` / `scrapedAt` | Sources used, link to the company's page on findbiz.nat.gov.tw, timestamp |

Sample — TSMC, captured 2026-09-10 (lists trimmed to one entry):

```json
{
  "ubn": "22099131",
  "name": "台灣積體電路製造股份有限公司",
  "nameEnglish": "TSMC",
  "shortName": "台積電",
  "status": "核准設立",
  "responsiblePerson": "魏哲家",
  "address": "新竹科學園區新竹市力行六路8號",
  "addressEnglish": "No. 8, Li-Hsin Rd. 6, Hsinchu Science Park,Hsin-Chu 300096, Taiwan, R.O.C.",
  "registerOrganization": "國家科學及技術委員會新竹科學園區管理局",
  "setupDate": "1987-02-21",
  "lastApprovalDate": "2026-08-21",
  "capitalStock": 280500000000,
  "capitalStockFormatted": "NT$280.50B",
  "capitalStockExact": "NT$280,500,000,000",
  "paidInCapital": 259323700670,
  "paidInCapitalFormatted": "NT$259.32B",
  "currency": "TWD",
  "industries": [
    {
      "code": "CC01080",
      "description": "電子零組件製造業",
      "kind": "coded"
    }
  ],
  "industriesText": "電子零組件製造業; 電池製造業; 照明設備製造業; 能源技術服務業; 其他化學材料製造業; 其他化學製品製造業; 其他金屬製品製造業; 其他塑膠製品製造業; 肥料製造業; 未分類其他工業製品製造業",
  "businessScopeStatement": "１．依客戶之訂單與其提供之產品設計說明，以從事製造與銷售積體電路以及其他晶圓半導體裝置。 提供前述產品之封裝與測試服務。 提供積體電路之電腦輔助設計技術服務。 提供製造光罩及其設計服務。 ２．從事研究、開發、設計、製造與銷售發光二極體（LED）照明裝置及其相關應用產品與系統。 ３．從事研究、開發、設計、製造與銷售可再生能源及節能相關之技術與產品，包括太陽能電池、太陽能發電模組及其相關系統與應用。 ４．從事銷售本公司營運活動所回收再製成之化學、金屬、塑膠及其他工業製品以及肥料。",
  "directors": [
    {
      "position": "董事長",
      "name": "魏哲家",
      "juristicPerson": null,
      "shareholding": 7452349
    }
  ],
  "directorsCount": 10,
  "directorsText": "魏哲家, 曾繁城, 葉俊顯, 彼得‧邦菲爵士, 麥克‧史賓林特, 摩西‧蓋弗瑞洛夫, 拉斐爾‧萊夫, 烏蘇拉‧伯恩斯, 琳恩‧埃爾森漢斯, 林全",
  "isListed": true,
  "stockCode": "2330",
  "listingDate": "1994-09-05",
  "industryCategory": "半導體業",
  "industryCategoryCode": "24",
  "chairman": "魏哲家",
  "ceo": "魏哲家",
  "ceoTitle": "總裁",
  "spokesperson": "黃仁昭",
  "email": "invest@tsmc.com",
  "website": "https://www.tsmc.com/",
  "phone": "03-5636688",
  "auditorFirm": "勤業眾信聯合會計師事務所",
  "financials": {
    "period": "2026 Q2",
    "balanceSheet": {
      "totalAssets": 9375654727000,
      "totalLiabilities": 2901183746000,
      "totalEquity": 6474470981000,
      "shareCapital": 259323701000,
      "retainedEarnings": 6051113099000,
      "netValuePerShare": 248.05
    },
    "incomeStatement": {
      "revenue": 2404483690000,
      "cost": 792877574000,
      "grossProfit": 1611606116000,
      "operatingIncome": 1425568793000,
      "pretaxIncome": 1550229773000,
      "netIncome": 1279582227000,
      "eps": 49.33
    }
  },
  "revenue": 2404483690000,
  "revenueFormatted": "NT$2.40T",
  "financialsText": "Revenue NT$2.40T · Net income NT$1.28T · EPS 49.33 · Assets NT$9.38T (2026 Q2)",
  "matched": true,
  "source": "GCIS (data.gcis.nat.gov.tw) + TWSE OpenAPI",
  "sourceUrl": "https://findbiz.nat.gov.tw/fts/query/QueryCmpyDetail/queryCmpyDetail.do?banNo=22099131",
  "scrapedAt": "2026-09-10T15:36:09.203Z"
}
```

### 💼 Use cases

**1. KYB and supplier onboarding** — verify a Taiwanese company before you sign.
*Input:* its UBN. *Output:* status, responsible person, capital, address, setup date. *Use:* confirm it is registered and active.

**2. Ownership and board checks** — who sits on the board, and for whom.
*Input:* UBNs. *Output:* directors and supervisors with shareholdings and the juristic persons they represent. *Use:* spot a parent company behind the board — in our test IBM Taiwan's chairman represents 荷蘭商萬國商業機器台灣控股公司.

**3. Supply-chain checks** — is the supplier registered for what it sells?
*Input:* supplier UBNs. *Output:* coded business items and the business-scope statement. *Use:* compare them with what you buy.

**4. Listed-company snapshot** — contacts and the latest quarter.
*Input:* UBNs of TWSE-listed companies. *Output:* stock code, spokesperson, email, website, auditor, quarterly revenue, net income and EPS. *Use:* enrich a CRM or a screening sheet.

### 🔗 Integration

**JavaScript / Node.js**

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('foxlabs/taiwan-company-data').call({"ubns":["22099131"]});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

**Python**

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('foxlabs/taiwan-company-data').call(run_input={"ubns": ["22099131"]})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

**Automation (n8n / Zapier / Make):** schedule or webhook → HTTP request to the Actor API with your `ubns` → handle the JSON dataset → push to a sheet, CRM or dashboard.

### 📊 Pricing

Pay-per-event: **$0.004 per delivered company record** (≈ $4 per 1,000 companies), plus Apify's run-start event of $0.00005 per GB of memory. **From 25 September 2026, rows that only report a failed lookup (`error`) are free.** Until then Apify still counts them as dataset items. [Current pricing](https://apify.com/foxlabs/taiwan-company-data).

### ❓ FAQ

**Where does the data come from?** From GCIS, the Ministry of Economic Affairs' open-data API — company basic data, business items, directors and supervisors, and its keyword search for names — and from the TWSE OpenAPI: the listed-company file (loaded once per run) and the quarterly income statement and balance sheet. Neither needs a key.

**UBN or name?** A UBN is exact. A name goes through GCIS's keyword search among active companies; an exact legal-name match wins, otherwise the first hit is used, which can be a different company: in our test `台積電` (TSMC's short name) resolved to 台積電機有限公司 (UBN 54900838), not TSMC (22099131), while `鴻海精密工業` resolved to 鴻海精密工業股份有限公司 and the full legal name `台灣積體電路製造股份有限公司` to TSMC. Check `resolvedFrom` and `name`, or pass the UBN.

**Which companies get financials?** Companies in TWSE's general-industry statement files: 1,048 of the 1,094 TWSE-listed companies on 2026-09-10. Of the other 46, 31 are banks and insurers and 10 are depositary receipts. `financials` is `null` for them, and for every company that is not TWSE-listed.

**How is a UBN checked?** With the Ministry of Finance rule: the 8 digits are multiplied by 1, 2, 1, 2, 1, 2, 4, 1, the digits of the products are added, and the total must be divisible by 5 — by 10 before April 2023 — with an allowance when the 7th digit is 7. `00000000` is rejected as well. In our test the check rejected none of 1,000 active companies from GCIS.

**Can I export to CSV / Excel / JSON?** Yes — directly from the Apify dataset.

### 🐛 Troubleshooting

- **`Could not resolve company name to a UBN.`** — the name matched no active company in GCIS; try the full legal name in Traditional Chinese, or pass the UBN.
- **`No company found for this UBN in the GCIS registry.`** — neither GCIS nor TWSE returned the number. The same message appears when GCIS does not answer (the log then shows failed requests); check the number or re-run.
- **`Not a valid UBN (統一編號): …`** — the entry is not 8 digits, is `00000000`, or its check digit does not match (usually a typo); correct it and re-run.
- **Rate limits on large lists** — lower `maxConcurrency`; failed requests are retried with a back-off.

### ⚖️ Is it legal to scrape this data?

The Actor reads open data published by the Ministry of Economic Affairs (GCIS) and the Taiwan Stock Exchange. Names of responsible persons, directors and supervisors and their shareholdings are personal data under Taiwan's Personal Data Protection Act — process them only for a lawful purpose such as KYC or due diligence. This Actor is not affiliated with GCIS, the Ministry of Economic Affairs or TWSE.

### 🤝 Support & contact

- 🌐 **Website:** [data.foxlabs.com.tr](https://data.foxlabs.com.tr)
- 📧 **Email:** info@foxlabs.com.tr
- 🐛 **Issues:** open a ticket in the Actor’s **Issues** tab
- 🧰 **More clean B2B data actors:** [Fox Labs on Apify](https://apify.com/foxlabs)

### Changelog

#### 0.1.1 — 2026-09-10 — failed lookups become free (per-record billing) + README corrected + balance-sheet totals and UBN check fixed

- **You will pay only for delivered company records.** The Actor now charges a new `company-record` event for each delivered company (`matched: true`). Rows that only report a failed lookup — a UBN that fails the check-digit rule, a name that could not be resolved, a UBN that neither GCIS nor TWSE returns — are pushed without a charge.
- **Timing:** Apify applies pricing changes after a 14-day notice. From **25 September 2026** the pricing switches from the per-dataset-item event to `company-record` at the same price ($0.004). Until then billing is exactly as before; the code detects the switch by itself.
- **Fixed: balance-sheet totals.** `totalAssets`, `totalLiabilities` and `totalEquity` were `null` for every company because TWSE labels them 資產總計 / 負債總計 / 權益總計. They are now filled — for TSMC, 2026 Q2, with the same figures as TWSE's MOPS balance sheet — and `financialsText` ends with the assets figure.
- **Fixed: UBN check.** Every UBN is checked with the Ministry of Finance check-digit rule before any lookup. An entry that fails — wrong length, a typo, `00000000`, no digits — gets its own `error` row instead of a lookup; `00000000` used to return one of TWSE's 8 foreign-registered companies as `matched: true`, and an entry without digits used to disappear without a row.
- **Name example.** The input form's name example `台積電` resolves to 台積電機有限公司, a different company; it now shows the full legal name 台灣積體電路製造股份有限公司, which resolves to TSMC.
- No output field was added, renamed or removed.
- **README corrected.** The previous README showed inputs this Actor does not read (`queries`, `maxResultsPerQuery`, `includeRaw`) with placeholder values, and claimed things it does not do: whole-registry calls, formation monitoring, relevance-ranked search, registry contact fields, English status values, a `query` field on every row, no empty columns, and free failed lookups before this billing change. This README is written from the code and from test runs on 2026-09-10.

#### 0.1 — 2026-09-07

- README rebuilt and AI-agent payments (x402) enabled. That README described inputs this Actor does not have (corrected in 0.1.1).

#### 0.0

- Initial release: data from the Taiwan Ministry of Economic Affairs business registry (open data) by name or registry ID.

# Actor input Schema

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

8-digit Unified Business Numbers (統一編號), one per line — the most precise input and a guaranteed exact match. Example: 22099131 (TSMC), 04541302 (Hon Hai / Foxconn). Each number is checked against the official check-digit rule first; an entry that fails it gets an error row and is not looked up.

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

Company names for best-effort resolution via the GCIS keyword registry. Use the full registered name in Traditional Chinese, e.g. 台灣積體電路製造股份有限公司 (TSMC) — a short name can resolve to a different company (台積電 resolves to 台積電機有限公司). Pass a UBN for a guaranteed match, and check `resolvedFrom` + the returned `name`.

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

Enrich TWSE-listed companies with their latest balance sheet, income statement, English name and governance contacts. Non-listed companies are unaffected (those fields stay null). Default: on.

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

Hard cap on the number of company records returned (you are billed per result). 0 = no cap. Bounded by how many UBNs/names you supply.

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

How many companies to fetch in parallel. Lower this (e.g. 3–5) if you hit rate limits from the GCIS API on very large lists.

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

Apify Proxy is sufficient for these government open APIs. Leave as default.

## 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": []
};

// 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": [],
}

# 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(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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": []
}' |
apify call foxlabs/taiwan-company-data --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,foxlabs/taiwan-company-data"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/QfB6IBIjN2MdR9dlS/builds/09RG2lcCcXidtFpQj/openapi.json
