# 🇹🇼 Taiwan FSC + SFB Enforcement · 金管會證期局裁罰 (`nexgendata/taiwan-fsc-sfb-enforcement-notices`) Actor

Taiwan FSC (金融監督管理委員會) + SFB (證券期貨局) enforcement: penalties (裁罰), warnings, license revocations under Banking Act, Insurance Act, SEA. NTD+USD amounts, Trad-Chinese+English names, statutory citations. Bloomberg TW regulatory alternative.

- **URL**: https://apify.com/nexgendata/taiwan-fsc-sfb-enforcement-notices.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $150.00 / 1,000 enforcement actions

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 FSC + SFB Enforcement Notices — Financial Supervisory Commission + Securities & Futures Bureau

**Bloomberg TW regulatory at $0.12 per row, not $25,000 per seat per year.**

This actor wraps both halves of Taiwan's financial enforcement apparatus into a single normalized feed:

- **FSC (Financial Supervisory Commission / 金融監督管理委員會)** — the prudential supervisor of banks, insurers, and asset managers. Issues monetary penalties (罰鍰), corrective orders (糾正), and license revocations (廢止許可) under the Banking Act, Insurance Act, Trust Enterprise Act, Money Laundering Control Act, and related statutes. Within FSC, three operating bureaus issue penalty decisions: **銀行局 (Banking Bureau)**, **保險局 (Insurance Bureau)**, and **檢查局 (Examination Bureau)**.
- **SFB (Securities & Futures Bureau / 證券期貨局)** — the FSC bureau focused on market misconduct: insider dealing, market manipulation, delayed material-info disclosure, and registration deficiencies of securities brokers, futures dealers, and investment trusts under the Securities and Exchange Act.

All four bureaus publish their penalty decisions through the **same FSC central penalty index** at `fsc.gov.tw/ch/home.jsp?id=131&parentpath=0,2` — the `資料來源` (source bureau) column distinguishes SFB rows from FSC mainline rows. The actor scrapes the unified index for both regulators, normalizes into a single cross-source schema, and is **bilingual by design** — every row carries both Traditional Chinese (`target_entity_tc`, `summary_tc`) and English (`target_entity_en`, `summary_en_if_available`) fields so it works for foreign-compliance + domestic-Taiwanese buyers alike.

---

### ⚡ What you get

| Field | What it is |
|---|---|
| `regulator` | `FSC` or `SFB` — the issuing regulator |
| `bureau_tc` | `銀行局` / `保險局` / `證期局` / `檢查局` — the issuing FSC bureau |
| `bureau_en` | `Banking Bureau` / `Insurance Bureau` / `Securities & Futures Bureau` / `Examination Bureau` |
| `action_id` | Stable composite ID built from the FSC `dataserno` (e.g. `FSC-202605290002`) — safe to use as a primary key |
| `target_entity_tc` | Traditional Chinese name of the regulated firm or individual (e.g. `台新國際商業銀行股份有限公司`) |
| `target_entity_en` | Official English name (e.g. `Taishin International Bank`) — populated for curated rows |
| `entity_type` | `firm` / `individual` / `both` |
| `action_type` | `fine` / `warning` / `license_revocation` / `other` |
| `action_date` | ISO YYYY-MM-DD of the FSC 裁處書發文日期 (penalty document issuance date) |
| `summary_tc` | Traditional Chinese summary of the penalty decision (extracted from the FSC anchor `title` attribute) |
| `summary_en_if_available` | English summary (curated rows only) |
| `fine_amount_TWD` | Penalty amount in NTD, integer (None for non-monetary actions like 糾正) |
| `fine_amount_USD` | Convenience conversion at TWD/USD mid-band ≈ 32 (None when TWD is None) |
| `regulatory_basis` | Statutory citation — `Banking Act §45-1, §129`, `Securities and Exchange Act §157-1, §171`, etc. |
| `source_url` | Canonical FSC penalty detail URL — every record is audit-traceable |
| `data_source` | `live`, `curated`, or `live+curated_merge` |

---

### 📊 Sample Output

[![Taiwan FSC and SFB enforcement notices sample output — recent administrative penalties against Taishin International Bank, Taichung Commercial Bank, Shin Kong Life, Shanghai Commercial Savings Bank and other regulated firms, with Traditional Chinese and English entity names, issuing bureau, action dates, statutory basis and NTD/USD fine amounts](https://api.apify.com/v2/key-value-stores/8gLgXMBveEI1tTz1z/records/taiwan-fsc-sfb-enforcement-notices-sample)](https://apify.com/nexgendata/taiwan-fsc-sfb-enforcement-notices?fpr=2ayu9b)

Output from a sample run — `regulator: both`, `action_type: all`. Each row is one penalty case with bilingual entity names, the issuing bureau, the statutory basis, and NTD/USD fine amounts:

| Date 處分日 | Bureau 局 | Target 受處分人 (TC / EN) | Action type | Fine 罰鍰 |
|---|---|---|---|---|
| 2026-05-28 | 銀行局 | 台新國際商業銀行股份有限公司 / Taishin International Bank | 罰鍰 (fine) | NT$1,400萬 (~$437,500) |
| 2026-05-28 | 銀行局 | 台新國際商業銀行催收信函寄送地址異常及信用… | 罰鍰 (fine) | NT$600萬 (~$187,500) |
| 2026-05-28 | 銀行局 | 臺灣土地銀行沙鹿分行 | 罰鍰 (fine) | NT$400萬 (~$125,000) |
| 2026-05-28 | 銀行局 | 臺灣銀行 | 罰鍰 (fine) | NT$2,200萬 (~$687,500) |
| 2026-05-28 | 銀行局 | 台灣人壽保險股份有限公司 | 罰鍰 (fine) | NT$720萬 (~$225,000) |
| 2026-05-28 | 銀行局 | 國泰證券投資信託股份有限公司及其人員 | 罰鍰 (fine) | — |
| 2026-05-28 | 銀行局 | 復華證券投資信託股份有限公司及其人員 | 罰鍰 (fine) | — |
| 2026-05-15 | 銀行局 | 台中商業銀行股份有限公司 / Taichung Commercial Bank | 罰鍰 (fine) | NT$3,200萬 (~$1,000,000) |
| 2026-01-22 | 保險局 | 新光人壽保險股份有限公司 / Shin Kong Life Insurance | 罰鍰 (fine) | NT$480萬 (~$150,000) |
| 2025-12-31 | 銀行局 | 上海商業儲蓄銀行股份有限公司 / Shanghai Commercial & Savings Bank | 罰鍰 (fine) | NT$600萬 (~$187,500) |

Each row also carries `regulator`, `bureau_en`, `action_id`, `entity_type`, the full `summary_tc` + `summary_en_if_available`, `regulatory_basis`, the live `source_url`, and `data_source` / `data_source_tag` — see the full JSON record under **How to use** below.

### 🎯 Use cases

- **Taiwan-securities-litigation defense counsel** — early-warning feed on SFB recommendations against TWSE / TPEx-listed issuers (insider dealing under SEA §157-1, false disclosure under §36-1, market manipulation under §155). SFB recommendation → criminal referral has a ~3-6 month lag; defense counsel who detect the recommendation immediately get a head start.
- **Forensic accountant / short-seller research** — SFB false-disclosure penalties are a top leading indicator of restated financials at Taiwanese semiconductor and tech issuers (TSMC supply chain, Hon Hai, MediaTek). Combined with insider-dealing decisions, this is the Taiwanese forensic alpha signal.
- **Compliance officer at a TW-listed entity or foreign-bank Taiwan branch** — quarterly enforcement-trend report ("AML focus areas in 2026", "what kind of penalties is the Banking Bureau issuing this quarter?") with structured, deduped, citable rows. The 2026 enforcement trend shows AML / KYC controls as the dominant theme: 5 of the 10 most recent FSC penalties cite AML Act §3/§5/§6/§9/§15 or Banking Act §45-1 ("internal-control deficiency").
- **Foreign bank / private bank Taiwan desk** — counterparty monitoring against Taiwanese clients (firms + officers) under FATF / FCPA-equivalent KYC. Filter `target_filter` by counterparty name (Chinese OR English); cross-check against your sanctions / PEP screening.
- **Academic + policy researcher** — Taiwanese financial enforcement is a recurring research target (comparative enforcement intensity vs Korea FSS / Japan FSA / HK SFC). This actor produces clean, schema-stable rows ready for pandas / R.

---

### 🇹🇼 繁體中文說明 (For Traditional-Chinese-Speaking Buyers)

本爬蟲統一抓取**金融監督管理委員會 (金管會 / FSC)** 與其轄下**證券期貨局 (證期局 / SFB)** 的公開裁罰案件，輸出標準化的資料結構。

#### 抓取對象
- **金管會 (FSC)** — 依銀行法、保險法、信託業法、洗錢防制法等法規所為之罰鍰、糾正、業務限制、撤銷登記等行政處分。下轄三大業務局：
  - **銀行局** — 銀行業內部控制、防制洗錢、客戶資料保護之裁罰
  - **保險局** — 人壽保險公司一般業務檢查缺失、投資型商品銷售缺失之裁罰
  - **檢查局** — 跨業務金融檢查報告之裁罰
- **證期局 (SFB)** — 依證券交易法之內線交易、操縱股價、重大訊息延遲申報、財報不實等違規案件

#### 輸出欄位（主要）
| 欄位 | 內容 |
|---|---|
| `regulator` | `FSC` 或 `SFB` |
| `bureau_tc` | 發布裁罰之業務局（銀行局／保險局／證期局／檢查局） |
| `target_entity_tc` | 受處分人名稱（繁體中文） |
| `target_entity_en` | 受處分人名稱（英文） |
| `action_type` | `fine` (罰鍰) / `warning` (糾正) / `license_revocation` (廢止許可) |
| `action_date` | 裁處書發文日期（YYYY-MM-DD） |
| `summary_tc` | 處分摘要（繁體中文） |
| `fine_amount_TWD` | 罰鍰金額（新臺幣） |
| `regulatory_basis` | 法律依據（銀行法第45條之1、證券交易法第157條之1 等） |
| `source_url` | 金管會官方裁罰案件公告頁面 URL |

#### 主要使用情境
- **法律事務所** — 證券訴訟律師之早期預警情報，特別針對證期局之裁罰與處分案件
- **法務會計師事務所** — 上市公司財報不實、內線交易、操縱股價之前期訊號
- **金融機構法令遵循部門** — 銀行業、保險業、券商之季度裁罰趨勢分析報告
- **外資銀行台灣分行** — 對交易對手公司及個人之 KYC 強化盡職調查與制裁名單比對
- **半導體供應鏈分析師** — 追蹤台積電、聯電、鴻海等大型半導體上市公司及其供應商之內線交易及財報不實裁罰

#### 使用注意事項
- 本爬蟲僅取得**金管會官方公告之裁罰資料**（未公告之偵查中案件不含其中）。
- 使用識別清楚的 User-Agent，符合台灣政府資料開放原則：
  - `User-Agent: Mozilla/5.0 (compatible; NexGenDataBot/1.0; +https://nexgendata.com/bot; contact: hello@nexgendata.com)`
- 對金管會伺服器之請求頻率限制為每秒 1 次以下，遵守政府開放資料禮儀。
- 對 `data.fsc.gov.tw` 與 `openapi.fsc.gov.tw` 子網域之請求**不予使用**——此二子網域對外資料中心 IP 不開放。
- 罰鍰金額之原始單位為**新臺幣元**（已從「萬元」展開）；USD 換算僅供參考，以 TWD/USD ≈ 32 中位匯率計算。

#### 關鍵搜尋詞 (SEO keywords)
金融監督管理委員會、金管會、裁罰、處分、罰鍰、銀行局、保險局、證期局、檢查局、銀行法、保險法、證券交易法、洗錢防制法、內線交易、操縱股價、財報不實、重大訊息、上市公司、上櫃公司、台股、TWSE、TPEx、台積電、聯電、鴻海、國泰金、中信金、富邦金、玉山金、台新金、合作金庫、上海商銀

---

### 🚀 How to use

#### Sample input — last 90 days, FSC + SFB, all action types

```json
{
  "regulator": "both",
  "action_type": "all",
  "date_from": "2026-03-02",
  "date_to": "2026-05-31",
  "max_actions": 50
}
````

#### Sample input — narrow to SFB securities-law penalties only

```json
{
  "regulator": "SFB",
  "action_type": "fine",
  "max_actions": 100
}
```

#### Sample input — counterparty monitoring on Taishin

```json
{
  "regulator": "both",
  "action_type": "all",
  "target_filter": "台新",
  "max_actions": 200
}
```

#### Sample output row

```json
{
  "regulator": "FSC",
  "bureau_tc": "銀行局",
  "bureau_en": "Banking Bureau",
  "action_id": "FSC-202605290002",
  "target_entity_tc": "台新國際商業銀行股份有限公司",
  "target_entity_en": "Taishin International Bank",
  "entity_type": "firm",
  "action_type": "fine",
  "action_date": "2026-05-28",
  "summary_tc": "台新國際商業銀行新店分行前理財專員(下稱理專)張員涉挪用客戶款項，核有違反銀行法第45條之1第1項規定...依銀行法第129條第7款規定，核處新臺幣1,400萬元罰鍰。",
  "summary_en_if_available": "Taishin International Bank — Xindian branch wealth-management officer misappropriated client funds. Violation of Banking Act Article 45-1 paragraph 1. NT$14 million administrative penalty under Banking Act Article 129 item 7.",
  "fine_amount_TWD": 14000000,
  "fine_amount_USD": 437500.0,
  "regulatory_basis": "Banking Act §45-1, §129",
  "source_url": "https://www.fsc.gov.tw/ch/home.jsp?id=131&parentpath=0,2&mcustomize=multimessages_view.jsp&dataserno=202605290002&dtable=Penalty",
  "data_source": "curated"
}
```

#### Call from Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("nexgendata/taiwan-fsc-sfb-enforcement-notices").call(
    run_input={
        "regulator": "both",
        "action_type": "all",
        "date_from": "2026-03-01",
        "max_actions": 50,
    }
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["action_date"], item["regulator"],
          item["target_entity_tc"], item["fine_amount_TWD"])
```

#### Call via cURL

```bash
curl "https://api.apify.com/v2/acts/nexgendata~taiwan-fsc-sfb-enforcement-notices/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -X POST -H "Content-Type: application/json" \
  -d '{"regulator":"SFB","action_type":"fine","max_actions":25}'
```

***

### 🔗 Related Actors

If you found this actor useful, the same regulatory cluster has:

- [`finma-mas-sfc-enforcement-tracker`](https://apify.com/nexgendata/finma-mas-sfc-enforcement-tracker) — Combined FINMA (Switzerland) + MAS (Singapore) + SFC (Hong Kong) enforcement tracker. Three-jurisdiction private-banking compliance feed.
- [`hk-sfc-enforcement-tracker`](https://apify.com/nexgendata/hk-sfc-enforcement-tracker) — Hong Kong SFC enforcement notices. Pairs with Taiwan FSC/SFB for Greater China compliance coverage (TW + HK Greater Bay Area).
- [`singapore-mas-enforcement`](https://apify.com/nexgendata/singapore-mas-enforcement) — Singapore MAS enforcement actions. Pairs with Taiwan FSC/SFB for APAC private-banking and securities compliance.
- [`australia-asic-enforcement`](https://apify.com/nexgendata/australia-asic-enforcement) — Australian Securities and Investments Commission enforcement. APAC compliance buyers typically subscribe to TW + AU together.

***

### ⚖️ Legal & data-source notes

- **Public data only.** FSC and SFB publish enforcement notices under the FSC Organization Act §6 and Administrative Procedure Act §96 (public-notice requirement). All rows in the output schema come from FSC public press-release pages on `www.fsc.gov.tw`.
- **Politely-identified bot.** Per the Taiwan government open-data convention (which explicitly invites identified crawlers under the National Open Data Charter), the actor sends:
  - `User-Agent: Mozilla/5.0 (compatible; NexGenDataBot/1.0; +https://nexgendata.com/bot; contact: hello@nexgendata.com)`
- **Rate limit.** ≤ 1 request/second to `www.fsc.gov.tw`, with backoff on 5xx.
- **Curated + live merge.** To guarantee the actor never returns empty (FSC's JSP server occasionally returns 503 during peak periods and the DOM has historically been tweaked without notice), every run merges a curated bank of publicly-disclosed FSC / SFB enforcement actions (drawn from the FSC penalty index, with citations) with the live-probe output. Each row is tagged `data_source: live`, `curated`, or `live+curated_merge`.
- **Subdomain selection.** The actor scrapes `www.fsc.gov.tw` (HTML-rendered JSP) only. It does NOT touch `data.fsc.gov.tw` or `openapi.fsc.gov.tw` — both subdomains return HTTP 000 (DNS-NXDOMAIN / firewall-blocked) from datacenter egress per Wave 15 (2026-05-30) probe research. SFB's English mirror at `www.sfb.gov.tw/en/` is probed for visibility only; the penalty list lives on the FSC central index.
- **TWD-to-USD conversion** uses a single mid-band rate (TWD/USD ≈ 32) for convenience. The headline figure is always `fine_amount_TWD` — do NOT use `fine_amount_USD` for material reporting; query the FX rate as of `action_date` separately (Bank of Taiwan FX CSV `rate.bot.com.tw/xrt/flcsv/0/day` is a free source).
- **Penalty-amount parsing.** The Taiwanese 萬元 (10,000 NTD) and 億 (100M NTD) units are normalized to plain NTD integers. `1,400萬元` → `14_000_000`, `3,200萬元` → `32_000_000`, `1.5億` → `150_000_000`.
- **No PII.** Some SFB penalty decisions target individuals (e.g. insider-trading defendants); in those cases the FSC press release publishes the firm name and the individual's surname-only (e.g. "張員" = "Mr/Ms Chang") to comply with the Personal Data Protection Act. The actor reproduces what FSC publishes — no de-anonymization.

***

### ❓ FAQ

**Q: Why combine FSC and SFB into one actor?**
A: SFB (Securities & Futures Bureau) is an organ of the FSC — they publish penalties through the same central penalty index, and the typical buyer needs both for full Taiwanese enforcement coverage. Two separate actors would fragment the buyer experience. Filter via `regulator` if you only want one.

**Q: How does this differ from a TWSE-disclosure actor?**
A: A TWSE actor captures **issuer disclosures** (material announcements, insider holdings, IPO pipeline). This actor captures **enforcement** — what FSC / SFB do *after* a violation. They are complements, not substitutes. Compliance teams typically subscribe to both.

**Q: How fresh is the data?**
A: The live-probe path reads the FSC central penalty index on every run, so newly-published actions appear within a single run cycle (typically same-day). The curated fallback is updated when FSC / SFB publish new actions; the merge dedupes by FSC `dataserno` so you never see double-counted rows.

**Q: What's the typical row count per run?**
A: The FSC central penalty index surfaces ~12-15 recent cases at any time, spanning roughly the most recent 6-12 months across all four bureaus. The curated fallback adds ~12 historically significant cases. A 90-day default window typically returns 8-20 rows when both regulators + all action types are selected.

**Q: Can I filter by penalty size?**
A: Not natively in the input schema. Run with `action_type: fine` and post-filter on `fine_amount_TWD` in your downstream pipeline. We expose the raw NTD integer for exactly this purpose.

**Q: Does this include criminal prosecutions?**
A: SFB criminal referrals to the District Prosecutor's Office under SEA Article 171 (insider trading) and Article 174 (false disclosure) are surfaced where FSC publishes them on the penalty index (typically the larger fraud / market-manipulation cases). The downstream prosecution outcome is NOT tracked here — query Taiwanese court records separately (Judicial Yuan `judgment.judicial.gov.tw`) for that.

**Q: What ROC date format does FSC use?**
A: Modern FSC penalty pages use Gregorian ISO dates (YYYY-MM-DD). Historical references may use ROC year format (民國YYY年 / YYY.MM.DD, where YYY = Gregorian year − 1911). The actor normalizes both.

***

### 🏷️ About NexGenData

Built by [nexgendata](https://apify.com/nexgendata) — over 200 production-grade Apify actors focused on financial regulatory data, market intelligence, IP databases, and corporate registries. Questions / corrections / custom-build requests: hello@thenextgennexus.com.

# Actor input Schema

## `regulator` (type: `string`):

Which regulator to surface. 'FSC' = Financial Supervisory Commission (金融監督管理委員會) cases from the 銀行局 (Banking Bureau), 保險局 (Insurance Bureau), and 檢查局 (Examination Bureau) — supervises banks, insurers, and asset managers under the Banking Act, Insurance Act, and related statutes. 'SFB' = Securities & Futures Bureau (證券期貨局) cases — the FSC arm focused on TWSE/TPEx-listed firms, securities brokers, futures dealers, and investment trusts under the Securities and Exchange Act. 'both' = unified merged feed of FSC + SFB penalty cases, distinguished by the regulator field. All four bureaus publish through the same FSC central penalty index.

## `action_type` (type: `string`):

Filter by enforcement action category. 'fine' = administrative monetary penalty (罰鍰) — typically NT$1M-NT$100M, the dominant category on the FSC penalty index. 'warning' = public warning / corrective order (糾正 / 警告 / 命令改善) under Banking Act §61-1 and equivalents. 'license\_revocation' = registration / business-licence revocation (廢止許可 / 撤照) under Banking Act §62, Insurance Act §149, or SEA §66 — rare but high-impact. 'all' = every enforcement category.

## `target_filter` (type: `string`):

Case-insensitive substring match against target firm/individual name (Traditional Chinese OR English) and the summary text. Use for counterparty monitoring — e.g. '國泰' (Cathay), '中信' (CTBC), '台新' (Taishin), '新光' (Shin Kong), '玉山' (E.SUN), '南山' (Nan Shan), 'Cathay', 'CTBC', 'Taishin', or a specific bureau name '保險局' to filter for insurance-bureau actions only. Leave empty to skip.

## `date_from` (type: `string`):

Lower bound on the date FSC / SFB published the penalty decision (裁處書發文日期, ISO YYYY-MM-DD). Defaults to 90 days before today if empty. Combine with date\_to to build a quarterly enforcement report. The FSC central penalty index typically surfaces ~12-15 cases at any time, spanning roughly the most recent 6-12 months.

## `date_to` (type: `string`):

Upper bound on the date FSC / SFB published the penalty decision (ISO YYYY-MM-DD). Defaults to today if empty.

## `max_actions` (type: `integer`):

Cap on the number of enforcement-action rows emitted in a single run. The FSC central penalty index lists ~15 recent cases at any time; the curated fallback set adds another ~12 historically-significant cases. 50 is plenty for a normal quarterly sweep; bump up to 500 only when paired with a wide date window for a multi-year backfill.

## Actor input object example

```json
{
  "regulator": "both",
  "action_type": "all",
  "max_actions": 50
}
```

# 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 = {
    "regulator": "both",
    "action_type": "all",
    "target_filter": "",
    "date_from": "",
    "date_to": "",
    "max_actions": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/taiwan-fsc-sfb-enforcement-notices").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 = {
    "regulator": "both",
    "action_type": "all",
    "target_filter": "",
    "date_from": "",
    "date_to": "",
    "max_actions": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/taiwan-fsc-sfb-enforcement-notices").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 '{
  "regulator": "both",
  "action_type": "all",
  "target_filter": "",
  "date_from": "",
  "date_to": "",
  "max_actions": 50
}' |
apify call nexgendata/taiwan-fsc-sfb-enforcement-notices --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/taiwan-fsc-sfb-enforcement-notices",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🇹🇼 Taiwan FSC + SFB Enforcement · 金管會證期局裁罰",
        "description": "Taiwan FSC (金融監督管理委員會) + SFB (證券期貨局) enforcement: penalties (裁罰), warnings, license revocations under Banking Act, Insurance Act, SEA. NTD+USD amounts, Trad-Chinese+English names, statutory citations. Bloomberg TW regulatory alternative.",
        "version": "0.0",
        "x-build-id": "medGl1aYCa7F59fWl"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~taiwan-fsc-sfb-enforcement-notices/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-taiwan-fsc-sfb-enforcement-notices",
                "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/nexgendata~taiwan-fsc-sfb-enforcement-notices/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-taiwan-fsc-sfb-enforcement-notices",
                "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/nexgendata~taiwan-fsc-sfb-enforcement-notices/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-taiwan-fsc-sfb-enforcement-notices",
                "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": {
                    "regulator": {
                        "title": "Regulator",
                        "enum": [
                            "FSC",
                            "SFB",
                            "both"
                        ],
                        "type": "string",
                        "description": "Which regulator to surface. 'FSC' = Financial Supervisory Commission (金融監督管理委員會) cases from the 銀行局 (Banking Bureau), 保險局 (Insurance Bureau), and 檢查局 (Examination Bureau) — supervises banks, insurers, and asset managers under the Banking Act, Insurance Act, and related statutes. 'SFB' = Securities & Futures Bureau (證券期貨局) cases — the FSC arm focused on TWSE/TPEx-listed firms, securities brokers, futures dealers, and investment trusts under the Securities and Exchange Act. 'both' = unified merged feed of FSC + SFB penalty cases, distinguished by the regulator field. All four bureaus publish through the same FSC central penalty index.",
                        "default": "both"
                    },
                    "action_type": {
                        "title": "Action type",
                        "enum": [
                            "fine",
                            "warning",
                            "license_revocation",
                            "all"
                        ],
                        "type": "string",
                        "description": "Filter by enforcement action category. 'fine' = administrative monetary penalty (罰鍰) — typically NT$1M-NT$100M, the dominant category on the FSC penalty index. 'warning' = public warning / corrective order (糾正 / 警告 / 命令改善) under Banking Act §61-1 and equivalents. 'license_revocation' = registration / business-licence revocation (廢止許可 / 撤照) under Banking Act §62, Insurance Act §149, or SEA §66 — rare but high-impact. 'all' = every enforcement category.",
                        "default": "all"
                    },
                    "target_filter": {
                        "title": "Target entity filter (Traditional Chinese or English)",
                        "type": "string",
                        "description": "Case-insensitive substring match against target firm/individual name (Traditional Chinese OR English) and the summary text. Use for counterparty monitoring — e.g. '國泰' (Cathay), '中信' (CTBC), '台新' (Taishin), '新光' (Shin Kong), '玉山' (E.SUN), '南山' (Nan Shan), 'Cathay', 'CTBC', 'Taishin', or a specific bureau name '保險局' to filter for insurance-bureau actions only. Leave empty to skip."
                    },
                    "date_from": {
                        "title": "Date of action — from (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Lower bound on the date FSC / SFB published the penalty decision (裁處書發文日期, ISO YYYY-MM-DD). Defaults to 90 days before today if empty. Combine with date_to to build a quarterly enforcement report. The FSC central penalty index typically surfaces ~12-15 cases at any time, spanning roughly the most recent 6-12 months."
                    },
                    "date_to": {
                        "title": "Date of action — to (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Upper bound on the date FSC / SFB published the penalty decision (ISO YYYY-MM-DD). Defaults to today if empty."
                    },
                    "max_actions": {
                        "title": "Maximum actions to emit",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Cap on the number of enforcement-action rows emitted in a single run. The FSC central penalty index lists ~15 recent cases at any time; the curated fallback set adds another ~12 historically-significant cases. 50 is plenty for a normal quarterly sweep; bump up to 500 only when paired with a wide date window for a multi-year backfill.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
