# Taiwan Board Directors API (董監事・獨立董事兼任) (`chamarix/taiwan-board-directors`) Actor

Every independent director of 2,200 Taiwan companies (8,100+) with current jobs, career and every other board seat, linked to that company's stock code — plus board rosters, chair/CEO duality, director elections. Official MOPS data, cross-checked.

- **URL**: https://apify.com/chamarix/taiwan-board-directors.md
- **Developed by:** [chris](https://apify.com/chamarix) (community)
- **Categories:** AI, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Taiwan Board Directors API (董監事・獨立董事兼任・董事會網絡)

**Who sits on whose board in Taiwan?** This Actor returns every independent director of every Taiwan public company — listed, OTC, emerging and public-but-untraded — with their current jobs, career history and **every other board seat they hold, linked to that company's stock code**. Alongside it: the full board roster of every listed and OTC company, whether the chair is also the CEO, this year's director elections candidate by candidate, the shareholder-proposal window before each AGM, the 10% shareholders, and the boards that hold fewer shares than the law requires.

That is the raw material for an interlocking-directorate graph: 8,129 independent directors at 2,204 companies, holding 12,406 other board seats between them (2026-10-03). Taiwan publishes all of it officially, but only as an HTML report and as an open-data copy that loses most of the companies (see *Why not just use the open data?*). This Actor reads the original and checks it against the copy.

### Output

Seven record types in one dataset, told apart by `record_type`. Real rows:

**`independent_director`** — one per independent director, all four boards (獨立董事現職、經歷及兼任情形彙總表)

```json
{
  "record_type": "independent_director",
  "market": "TWSE",
  "retrieved_on": "2026-10-03",
  "company_code": "1101",
  "company_name": "台泥",
  "title": "獨立董事",
  "person_name": "王金山",
  "appointed_on": "2024-05-21",
  "current_positions": ["國巨(股)公司 董事", "永豐餘投資控股(股)公司 董事", "富林塑膠工業(開曼)控股(股)公司 獨立董事", "台灣航業(股)公司 獨立董事", "達新工程(股)公司 獨立董事"],
  "experience": ["勤業眾信聯合會計師事務所副董事長", "中華民國會計師公會全國聯合會常務理事", "奇力新電子(股)公司 董事", "鈺緯科技開發(股)公司 監察人"],
  "other_board_seats": [
    {"company_name": "國巨(股)公司", "title": "法人董事代表人", "company_code": "2327", "company_market": "TWSE"},
    {"company_name": "永豐餘投資控股(股)公司", "title": "法人董事代表人", "company_code": "1907", "company_market": "TWSE"},
    {"company_name": "富林塑膠工業(開曼)控股(股)公司", "title": "獨立董事", "company_code": "1341", "company_market": "TWSE"},
    {"company_name": "台灣航業(股)公司", "title": "獨立董事", "company_code": "2617", "company_market": "TWSE"},
    {"company_name": "達新工程(股)公司", "title": "獨立董事", "company_code": null, "company_market": null}
  ],
  "other_board_seat_count": 5,
  "note": null
}
```

The last seat is left unlinked on purpose: the filing says 達新工程, the register says 達欣工程 (2535). The Actor matches legal names exactly and does not guess at typos — `board_member` with `personNames: ["王金山"]` confirms the seat at 2535.

**`board_member`** — every director seat of every TWSE and TPEX company: name, title, date appointed (董監事名單, ~17,500 rows)

```json
{
  "record_type": "board_member",
  "market": "TWSE",
  "issued_on": "2026-10-02",
  "company_code": "1101",
  "company_name": "台泥",
  "seat_no": 1,
  "title": "法人董事代表人",
  "person_name": "王伯元",
  "appointed_on": "2024-05-21",
  "is_independent": false
}
```

**`chair_ceo`** — chair, CEO, and whether they are one person (董事長是否兼任總經理; 445 of 1,987 companies say yes)

```json
{"record_type": "chair_ceo", "market": "TWSE", "issued_on": "2026-10-02", "company_code": "1101", "company_name": "台泥", "chair_name": "張安平", "ceo_name": "程耀輝", "chair_is_also_ceo": false}
```

**`director_election`** — this year's director elections: cumulative voting, nomination window and venue, every candidate and whether they were elected (~7,200 rows)

```json
{"record_type": "director_election", "market": "TWSE", "company_code": "1102", "company_name": "亞泥", "meeting_type": "annual", "meeting_date": "2026-05-28", "elects_directors": true, "election_method": "累積投票制", "uses_candidate_nomination": true, "nomination_start": "2026-03-21", "nomination_end": "2026-03-30", "candidate_category": "董事", "candidate_name": "吳玲綾", "elected": true, "elected_raw": "是"}
```

**`shareholder_proposal`** — the window for shareholder proposals under Company Act §172-1, and the proposal itself where one was filed

```json
{"record_type": "shareholder_proposal", "market": "TWSE", "company_code": "1416", "company_name": "廣豐", "meeting_date": "2026-05-22", "proposal_window_start": "2026-03-13", "proposal_window_end": "2026-03-23", "proposal_text": "依公司法第172-1條行使權利,提案更改股息由公司公告0.57元變更為0.8元"}
```

**`major_shareholder`** — shareholders above 10% (持股逾10%大股東; names only — the source gives no percentage)

**`holding_shortfall`** — boards holding fewer shares than the statutory minimum, with the shortfall and how many months in a row (董監持股不足法定成數)

```json
{"record_type": "holding_shortfall", "market": "TWSE", "issued_on": "2026-08-19", "company_code": "2515", "company_name": "中工", "issued_shares": 1688460079, "directors_required_shares": 40523041, "directors_own_shares": 20166520, "directors_representative_shares": 0, "directors_trust_shares": 0, "directors_shortfall_shares": 20356521, "directors_exclude_independent": false, "consecutive_months_short": 3}
```

### Use cases

- **Interlocking directorates** — build the graph of companies that share directors: each `other_board_seats[].company_code` is an edge.
- **Busy directors** — `minOtherSeats: 5` lists the independent directors stretched across five or more other boards. The record holder sits on 53.
- **Independence screening** — an "independent" director who is also a corporate representative on a related company's board shows up in their seat list.
- **KYC and due diligence** — `personNames` returns every board a person sits on, across all four boards.
- **Governance factors** — chair/CEO duality, board size, independent-director share, holding shortfalls, all per company.
- **AGM season** — nomination and proposal windows tell you when shareholders can act.

### Why not just use the open data?

The exchanges publish an open-data copy of the independent-director report (t187ap30). It is the obvious source, and it is broken in a way that does not show:

- When a director holds more than one other seat, **only the first flattened row keeps the other company's name**. Every later row carries the director's own appointment date in the company column. On the 2026-10-02 TWSE issue, 4,371 of 6,663 seat rows had a date where the company should be, and 1,097 more had nothing. The titles survive; the companies do not.
- The open data has no 獨立董事之法人代表人 in its vocabulary — those seats come through blank or not at all.
- Names carry raw HTML entities (`蘇&#33398;雪`, `陳威宇&#160;`) and CJK compatibility ideographs, so the same person does not string-match across reports.

So the seats are read from the original MOPS report, and the open data is used for what it does get right: the full board roster (non-independent directors are only there), and a second, independent rendering of the same filing to check the MOPS parse against.

### Verification

Every run (with `crossCheck` on, the default) compares each independent director's seat titles, in order, between MOPS and the open data. On 2026-10-03: **TWSE 3,966 of 3,966 directors and TPEX 3,368 of 3,368 identical** once the two known gaps above are allowed for. The run fails if more than 2% disagree, or if under 90% of MOPS' directors can be found in the open data at all — the sign of a name or date read from the wrong column.

The MOPS parse itself refuses a page whose header has changed, or whose rowspans do not add up to the seat rows that follow — a short page is never read as a shorter list of directors.

`holding_shortfall` satisfies **shortfall = required − held − via representatives − in trust** exactly, for directors and supervisors, on every row (27 of 27 on the 2026-08 issue); a breach fails the run. Every company the months-short table (t187ap10) names is also on the shortfall list.

### Traps in the source that this Actor handles

- **Seats lost in the open data** — read from MOPS instead (above).
- **TPEX's months-short table still has 2018 column headers** (`107/10-12連續不足達4個月`) — columns are matched on their tail, not their full text.
- **TPEX computes directors' required holdings without independent directors, TWSE does not** — the column names say so, and `directors_exclude_independent` carries it.
- **Two exchanges, two column vocabularies** (公司代號 vs SecuritiesCompanyCode, 姓名 vs Name, 提案內容 vs 股東提案內容) — mapped explicitly; an unknown column fails the run.
- **TPEX's server cuts large responses short** — downloads resume with HTTP Range and are checked against the promised length.
- **CEO names are filed as written** — TSMC files `總裁: 魏哲家` and answers 未兼任, so `chair_is_also_ceo` is the company's own answer, not a string comparison.

### Input

| Field | Default | What it does |
|---|---|---|
| `recordTypes` | `["independent_director"]` | Any of the seven record types |
| `markets` | all four | TWSE, TPEX, EMERGING, PUBLIC. Only `independent_director` covers EMERGING and PUBLIC |
| `stockCodes` | all | e.g. `["2330", "1101"]` |
| `personNames` | none | Substring match on the name as filed, e.g. `["王金山"]` |
| `minOtherSeats` | 0 | Keep independent directors with at least this many other seats |
| `linkSeatCompanies` | true | Attach `company_code` to each seat from the official company registers |
| `crossCheck` | true | Compare MOPS with the open data and fail on disagreement |
| `useApifyProxy` | false | Only if the exchanges start refusing the platform's addresses |

A full run of every record type is about 36,000 rows in under a minute from Taiwan; the default (independent directors only) is about 8,100.

### Limitations, stated plainly

- **Snapshot, no history.** MOPS and the open data publish the current board only; there is no date parameter. Run it on a schedule to build history.
- **55.6% of seats link to a stock code.** The rest are mostly private companies — holding companies, investment vehicles, subsidiaries — which have no security code to link to. A filer's typo also stays unlinked rather than being guessed at.
- **Names are as filed.** Two different people with the same name are not told apart; neither does the source. Combine name with company and appointment date.
- **MOPS lists two people twice** (3218 劉文龍, 6419 何國華 on TPEX, 2026-10-03) — both rows are kept as filed.
- **Independent supervisors (獨立監察人)** appear in `board_member` but not in `independent_director`: the MOPS report covers independent directors only.
- **Emerging and public companies** have `independent_director` only; the exchanges do not publish the other reports for them.

### Source

- MOPS 公開資訊觀測站 — [獨立董事現職、經歷及兼任情形彙總表](https://mopsov.twse.com.tw/mops/web/t93sc01_1) (`t93sc01_1`, TYPEK sii / otc / rotc / pub)
- TWSE open data `openapi.twse.com.tw/v1/opendata/t187ap30_L, t187ap33_L, t187ap34_L, t187ap35_L, t187ap02_L, t187ap08_L, t187ap10_L, t187ap03_L, t187ap03_P`
- TPEx open data `www.tpex.org.tw/openapi/v1/mopsfin_t187ap30_O … t187ap10_O, t187ap03_O, t187ap03_R`

Directors' names are published by the exchanges as statutory corporate-governance disclosure; this Actor passes them through as published.

### Taiwan Market Data Suite

This Actor is part of a suite of 44 Taiwan market data APIs by [chamarix](https://apify.com/chamarix) — official sources only, cross-validated against independent official endpoints, clean JSON out. Code samples for the whole suite: [GitHub](https://github.com/cc77556/taiwan-market-data-actors).

**Market data:**

- [taiwan-corporate-bonds](https://apify.com/chamarix/taiwan-corporate-bonds) — Every corporate, bank & Formosa bond — terms, balance, ratings & ISINs, daily OTC trades since 2005 and USD bond fair values since 2017
- [taiwan-securities-lending-balance](https://apify.com/chamarix/taiwan-securities-lending-balance) — Shares on loan for every stock since 2004 by lending channel, every SLB trade with its borrow fee rate, and each firm's lending book
- [taiwan-ipo-listings](https://apify.com/chamarix/taiwan-ipo-listings) — Every TWSE & TPEx listing application since 2000 from filing to first trading day — review, approval, price, underwriter & withdrawals, plus delistings
- [taiwan-board-directors](https://apify.com/chamarix/taiwan-board-directors) — Every independent director's career and other board seats linked to stock codes, board rosters, chair/CEO duality & director elections
- [taiwan-broker-financials](https://apify.com/chamarix/taiwan-broker-financials) — Every securities firm's monthly balance sheet & P\&L since 2013, full trial balance, and the register of firms & branches
- [taiwan-short-sale-eligibility](https://apify.com/chamarix/taiwan-short-sale-eligibility) — Can it be shorted today? Below-close short list, shares available to borrow, borrow fees, margin haircuts & forced cover dates
- [taiwan-gold-spot](https://apify.com/chamarix/taiwan-gold-spot) — The Taipei Exchange physical gold board since 2015 — daily VWAP, traded high/low, market-maker spread and every print by firm and price
- [taiwan-convertible-bonds](https://apify.com/chamarix/taiwan-convertible-bonds) — Daily bars for every convertible bond on the Taipei Exchange, with conversion price, conversion window, put date & put price
- [taiwan-corporate-action-prices](https://apify.com/chamarix/taiwan-corporate-action-prices) — Capital reductions, par value changes & ETF splits — the official reopening price & adjustment factor for every price discontinuity since 2011
- [taiwan-ipo-subscription](https://apify.com/chamarix/taiwan-ipo-subscription) — Every IPO ballot since 2006 & every competitive auction since 2016 — odds, ticket cost, reserve & bid-to-cover
- [taiwan-intraday-5sec-stats](https://apify.com/chamarix/taiwan-intraday-5sec-stats) — Market-wide order book & all sector indices every 5 seconds since 2004, 3,241 rows a session
- [taiwan-stock-daily-quotes](https://apify.com/chamarix/taiwan-stock-daily-quotes) — Daily OHLCV, VWAP, P/E, price-to-book & dividend yield for every listed/OTC stock since 2004
- [taiwan-index-history](https://apify.com/chamarix/taiwan-index-history) — Daily TAIEX & TPEx index history since 1990 with market turnover, the total-return index & all 273 TWSE indices
- [twse-institutional-trades](https://apify.com/chamarix/twse-institutional-trades) — Daily institutional buy/sell (foreign, investment trust, dealer) per stock — TWSE listed
- [tpex-institutional-trades](https://apify.com/chamarix/tpex-institutional-trades) — Daily institutional buy/sell per stock — TPEx OTC market
- [taiwan-monthly-revenue](https://apify.com/chamarix/taiwan-monthly-revenue) — Monthly revenue of 1,900+ listed & OTC companies, MoM/YoY
- [taiwan-financial-statements](https://apify.com/chamarix/taiwan-financial-statements) — Quarterly income statement, balance sheet & cash flow back to 2013
- [taiwan-director-compensation](https://apify.com/chamarix/taiwan-director-compensation) — Board pay for 1,950+ companies, parent vs consolidated scope, with EPS, ROE & profit on the same row
- [taiwan-esg-disclosures](https://apify.com/chamarix/taiwan-esg-disclosures) — 21 ESG topics for 1,950+ companies — Scope 1/2/3 emissions, energy, water, waste, pay, board & climate risk
- [taiwan-dividend-calendar](https://apify.com/chamarix/taiwan-dividend-calendar) — Ex-dividend / ex-rights dates, reference prices & payouts back to 2003
- [taiwan-margin-trading](https://apify.com/chamarix/taiwan-margin-trading) — Daily margin trading & short sale balances per stock
- [taiwan-sbl-short-sale-balance](https://apify.com/chamarix/taiwan-sbl-short-sale-balance) — Securities-lending short sale balances per stock
- [taiwan-short-sale-volume](https://apify.com/chamarix/taiwan-short-sale-volume) — Daily short sale turnover per stock — margin & borrowed lots, value and implied price, since 2008
- [taiwan-day-trading-stats](https://apify.com/chamarix/taiwan-day-trading-stats) — Day-trading volume, value & ratio per stock since 2014
- [taiwan-odd-lot-trading](https://apify.com/chamarix/taiwan-odd-lot-trading) — Both odd-lot sessions per stock — intraday & after-hours, shares, turnover, OHLC & quotes since 2004
- [taiwan-broker-rankings](https://apify.com/chamarix/taiwan-broker-rankings) — Securities-firm turnover, market share & the top firms in each hot stock on the OTC board since 2007
- [tdcc-shareholding-dispersion](https://apify.com/chamarix/tdcc-shareholding-dispersion) — Weekly TDCC shareholding dispersion (retail vs whale structure)
- [taiwan-foreign-shareholding](https://apify.com/chamarix/taiwan-foreign-shareholding) — Foreign ownership percentage & remaining quota per stock
- [taiwan-futures-daily](https://apify.com/chamarix/taiwan-futures-daily) — Daily bars, settlement price & open interest for all 384 TAIFEX futures contracts since 1998, with the large-trader report
- [taifex-institutional-derivatives](https://apify.com/chamarix/taifex-institutional-derivatives) — Institutional futures & options positions (TAIFEX), incl. put/call ratio
- [taifex-options-chain](https://apify.com/chamarix/taifex-options-chain) — Full options chain by strike & expiry, both sessions, with the exchange's own Delta, since 2001
- [taiwan-warrants-daily](https://apify.com/chamarix/taiwan-warrants-daily) — Daily quotes, strike, expiry & moneyness for every listed/OTC warrant since 2004
- [taiwan-government-bonds](https://apify.com/chamarix/taiwan-government-bonds) — Central government bond benchmark yields, the full yield curve & issuance master, with staleness stated
- [taiwan-stock-alerts](https://apify.com/chamarix/taiwan-stock-alerts) — Watch-list, disposition & short-sale suspension alerts
- [taiwan-insider-share-transfers](https://apify.com/chamarix/taiwan-insider-share-transfers) — Insider share-transfer filings (directors, officers, 10% holders) since 2002
- [taiwan-director-shareholdings](https://apify.com/chamarix/taiwan-director-shareholdings) — Monthly director/officer shareholdings & share-pledge ratio since 1999
- [taiwan-block-trades](https://apify.com/chamarix/taiwan-block-trades) — Every block trade (鉅額交易) with price, size & basket constituents since 2005
- [taiwan-shareholder-meetings](https://apify.com/chamarix/taiwan-shareholder-meetings) — Shareholder meeting dates, book closure periods & e-voting since 2005
- [taiwan-emerging-stock-quotes](https://apify.com/chamarix/taiwan-emerging-stock-quotes) — Emerging (興櫃) board quotes, pre-IPO register & history since 2003
- [taiwan-etf-regular-investment](https://apify.com/chamarix/taiwan-etf-regular-investment) — Monthly regular savings plan (定期定額) rankings for stocks & ETFs since 2020
- [taiwan-treasury-stock-buybacks](https://apify.com/chamarix/taiwan-treasury-stock-buybacks) — Every treasury-stock buyback (庫藏股) filing, plan vs execution, since 2000

**Property market:**

- [taiwan-real-estate-transactions](https://apify.com/chamarix/taiwan-real-estate-transactions) — Actual registered sale, presale & lease prices (實價登錄) for all 22 cities since 2012

**Government & civic data:**

- [taiwan-legislator-monitor](https://apify.com/chamarix/taiwan-legislator-monitor) — Legislative Yuan bills, legislators & meetings
- [taiwan-tender-monitor](https://apify.com/chamarix/taiwan-tender-monitor) — Government e-procurement tenders (open calls, awards, failures)

# Actor input Schema

## `recordTypes` (type: `array`):

Seven record types in one dataset, told apart by record_type. independent_director is the one with careers and other board seats, for all four boards; the rest come from the exchanges' open-data feeds and cover TWSE and TPEX.

## `markets` (type: `array`):

Which boards to cover. Leave empty for all four. Emerging and public companies are covered by independent_director only — the exchanges publish the other reports for TWSE and TPEX.

## `stockCodes` (type: `array`):

Keep only these companies, e.g. 2330 (TSMC), 1101 (TCC). Leave empty for every company.

## `personNames` (type: `array`):

Keep only rows naming one of these people (substring match on the Chinese name as filed, e.g. 王金山). Combine with board_member to see every board a person sits on.

## `minOtherSeats` (type: `integer`):

Keep only independent directors who also sit on at least this many other boards — a quick way to find the busiest directors. 0 keeps everyone.

## `linkSeatCompanies` (type: `boolean`):

Look the other company's legal name up in the four official company registers and attach its security code and board. Costs four small requests. A company that is not public (most private holding and investment companies) gets null.

## `crossCheck` (type: `boolean`):

For TWSE and TPEX, compare every independent director's seats with the exchange's open-data copy of the same filing, and fail the run if they disagree. One extra request per board; never changes the output.

## `useApifyProxy` (type: `boolean`):

Only needed if the exchange's servers start refusing the platform's addresses.

## Actor input object example

```json
{
  "recordTypes": [
    "independent_director",
    "chair_ceo"
  ],
  "markets": [],
  "stockCodes": [],
  "personNames": [],
  "minOtherSeats": 0,
  "linkSeatCompanies": true,
  "crossCheck": true,
  "useApifyProxy": false
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

Independent directors with careers and other board seats, board rosters, chair/CEO duality, director elections, shareholder proposals, 10% holders and holding shortfalls, in one dataset told apart by record_type.

# 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 = {
    "recordTypes": [
        "independent_director",
        "chair_ceo"
    ],
    "stockCodes": [],
    "personNames": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("chamarix/taiwan-board-directors").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 = {
    "recordTypes": [
        "independent_director",
        "chair_ceo",
    ],
    "stockCodes": [],
    "personNames": [],
}

# Run the Actor and wait for it to finish
run = client.actor("chamarix/taiwan-board-directors").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 '{
  "recordTypes": [
    "independent_director",
    "chair_ceo"
  ],
  "stockCodes": [],
  "personNames": []
}' |
apify call chamarix/taiwan-board-directors --silent --output-dataset

```

## MCP server setup

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

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/aORvhGGXTNR5lW53E/builds/kRa6gTatbtGFOQphn/openapi.json
