Taiwan TWSE Scraper: MOPS Disclosures, Revenue, Financials avatar

Taiwan TWSE Scraper: MOPS Disclosures, Revenue, Financials

Pricing

from $11.54 / 1,000 results

Go to Apify Store
Taiwan TWSE Scraper: MOPS Disclosures, Revenue, Financials

Taiwan TWSE Scraper: MOPS Disclosures, Revenue, Financials

Scrape Taiwan Stock Exchange (TWSE) and MOPS disclosures with no API key: material announcements, monthly revenue, financial statements, EPS, dividends, major shareholders, insider holdings and company profiles for 1,000+ listed companies. ROC dates to ISO. JSON, CSV, Excel.

Pricing

from $11.54 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

14 days ago

Last modified

Share

Taiwan TWSE Scraper: MOPS Disclosures, Revenue, Financials

Taiwan TWSE Scraper: MOPS Disclosures, Revenue & Financials

Scrape Taiwan Stock Exchange (TWSE) and MOPS (公開資訊觀測站) disclosures with no API key: material announcements (重大訊息), monthly revenue, quarterly financial statements, EPS, dividends, major shareholders, insider holdings and company profiles for 1,000+ Taiwan-listed companies. ROC (Minguo) dates are converted to ISO, Chinese fields are mapped to clean English keys, and every record carries the English company name and market. Export to JSON, CSV or Excel.

Here is one real result for the default monthly_revenue dataset (English name and ISO date are added by this actor):

{
"stockCode": "1101",
"companyName": "台泥",
"englishName": "TCC",
"market": "TWSE",
"reportDate": "1150817",
"reportDateISO": "2026-08-17",
"dataPeriod": "11507",
"dataPeriodISO": "2026-07",
"industry": "水泥工業",
"revenueCurrentMonth": "13744103",
"revenuePreviousMonth": "13382706",
"revenueYearAgoMonth": "13535929",
"revenueMoMChangePct": "2.70047776585692",
"revenueYoYChangePct": "1.5379365538929763",
"cumulativeRevenue": "85211435",
"cumulativeRevenueYearAgo": "83916845",
"cumulativeRevenueChangePct": "1.5427057583015662",
"note": "-",
"sourceApiUrl": "https://openapi.twse.com.tw/v1/opendata/t187ap05_L",
"mopsUrl": "https://mops.twse.com.tw/mops/#/web/t05st01",
"observedAt": "2026-09-06T14:16:45.756Z",
"error": null
}

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

This is the most complete Taiwan company disclosures scraper on Apify. It fetches one official TWSE open-data feed per run, applies your filters, and writes one normalized record per disclosure to the run dataset. Pick the feed with the dataset input:

  • Monthly revenue (每月營收): current month, prior month, year-ago month, MoM and YoY change, cumulative YTD.
  • Material announcements (重大訊息): subject, statute clause, event date, full description text.
  • Financials summary: revenue, operating income, EPS by company.
  • Income statement and Balance sheet: full line items by quarter.
  • Dividends (股利): cash and stock dividends, resolution progress, board and shareholder-meeting dates.
  • Major shareholders (大股東) and Insider holdings (董監事持股): shares held, pledged shares and ratios.
  • Company profiles (基本資料): chairman, spokesperson, contacts, incorporation and listing dates, capital, audit firm.

Every record adds value the raw feed does not have:

  • ROC to ISO dates: reportDateISO, announcementDateISO, eventDateISO, dataPeriodISO, dividendYearAD, plus announcementDateTimeISO (Taipei time) so you can sort chronologically.
  • English company name (englishName) and market on every row, joined from the official company-profile feed.
  • English industry classification (industryName) from the numeric TWSE industry code.
  • sourceApiUrl and mopsUrl provenance links.
  • Optional company-profile add-on: attach contacts, officers, capital and audit firm to any dataset.

Missing source values are returned as null (or the source placeholder such as -). Chinese labels are preserved where they are the real value.

Use cases

  • Fundamental analysis and stock screening across all TWSE-listed companies.
  • Monitoring MOPS material information (重大訊息) for governance, tender offers, capital changes and dividends.
  • Building a Taiwan equities dataset for quant research, dashboards or AI agents.
  • Tracking monthly revenue momentum (MoM, YoY) and dividend calendars.
  • Enriching a watchlist with company contacts and financial identity for IR or supply-chain research.

Quickstart

Open the actor, paste this into the input, and press Run. It returns up to 10 monthly-revenue records across all listed companies.

{
"maxDisclosures": 10,
"dataset": "monthly_revenue"
}

Add a stockCode (for example 2330 for TSMC), a list of stockCodes, a companyName substring, a keyword, an announcementType clause, or a dateFrom/dateTo range to narrow the feed.

Input reference

FieldTypeRequiredDefaultDescription
datasetenumnomonthly_revenueWhich TWSE feed to pull. One of monthly_revenue, material_announcements, financials, income_statement, balance_sheet, dividends, major_shareholders, insider_holdings, company_info. One per run.
stockCodestringno(empty)Single TWSE stock code, for example 2330 (TSMC) or 2317 (Hon Hai / Foxconn).
stockCodesarrayno[]Several stock codes at once, for example ["2330","2317","2454"].
companyNamestringno(empty)Case-insensitive substring on the company name (Chinese or English).
keywordstringno(empty)Case-insensitive keyword matched against subject, description and other text.
announcementTypestringno(empty)MOPS statute clause of a material announcement, for example 第51款.
dateFromstringno(empty)Earliest disclosure date, inclusive. ISO 2026-06-01 or ROC 1150601.
dateTostringno(empty)Latest disclosure date, inclusive. ISO or ROC.
maxDisclosuresintegerno10Max records to collect. Range 1 to 1000000. Free plans capped at 10.
withCompanyProfilebooleannofalsePaid add-on (paying plans only). Attach a companyProfile object to every record.
includeRawFieldsbooleannofalseAttach the original Traditional-Chinese source object as raw.

Aliases accepted for interoperability: ticker_filter, company_filter, companyCodes, titleKeyword, startDate/endDate, date_from/date_to, max_disclosures, withDetails. Filters combine with logical AND.

Output reference

One dataset item per disclosure. Present on every record:

FieldTypeDescription
stockCodestringTWSE stock code.
companyNamestringCompany name as the feed provides it.
englishNamestring | nullEnglish short name, joined from the company-profile feed.
marketstringTWSE.
sourceApiUrlstringThe exact official TWSE feed used.
mopsUrlstringMOPS material-information portal link.
observedAtstringISO 8601 timestamp of collection.
errorstring | nullnull on success. On a failed run a single item with a populated error is written and not charged.

Added ISO date fields (when the source field exists): reportDateISO, announcementDateISO, announcementTimeISO, announcementDateTimeISO, eventDateISO, boardDividendDateISO, shareholderMeetingDateISO, establishedDateISO, listingDateISO, dataPeriodISO, dividendYearAD, dividendPeriodStartISO, dividendPeriodEndISO. Numeric industry codes also yield industryCode and English industryName.

The remaining fields are the native columns of the dataset you select (all mapped to English keys), for example subject, clause, description, basicEPS, majorShareholderName, revenueCurrentMonth, chairman, spokesperson.

With withCompanyProfile: true, each record gains a companyProfile object: englishName, industryName, chairman, generalManager, spokesperson, spokespersonTitle, phone, fax, email, website, address, englishAddress, taxId, establishedDateISO, listingDateISO, paidInCapital, sharesOutstanding, auditFirm.

How it compares

CapabilityThis actorautomation-labnexgendataquiet_dictionarychamarix
Material announcements (重大訊息)YesYesYesNoNo
Monthly revenueYesNoNoNoYes
Quarterly financials + balance sheetYesNoNoYesNo
Dividends, shareholders, insiders, profilesYesNoNoNoNo
Datasets in one actor91111
ROC dates converted to ISOYesYesYesYesYes
English company name on every rowYesNoYesYesNo
Stock code + multi-code + name + keyword + clause + date range filtersYesYesPartialNoPartial
Company-profile / contacts add-onYesNoNoNoNo
Raw source object optionYesYesNoNoNo
No API keyYesYesYesYesYes

We accept every input the announcement competitors accept (dates, codes, keyword, clause, raw toggle) and return every output they return (ISO dates, English name, market, MOPS link), plus eight more datasets and a contacts add-on.

Run via API and CLI

Replace <TOKEN> with your Apify API token.

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~taiwan-twse-disclosures-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"dataset":"material_announcements","stockCode":"2330","maxDisclosures":10}'

Apify CLI:

apify call scrapers_lat/taiwan-twse-disclosures-scraper \
--input '{"dataset":"dividends","stockCodes":["2330","2454"],"dateFrom":"2026-01-01"}'

Fetch results

# JSON / CSV / Excel via the format query param
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large sets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is defaultDatasetId in the run object.

Billing and limits

  • Pay per result. Charged per disclosure returned (result event). See the pricing tab.
  • Company-profile add-on (details event) is charged only for rows that are genuinely enriched, only when withCompanyProfile is on, and only after the row is delivered.
  • No charge on failure. A failed run writes a single item with an error field and charges nothing. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd; once reached the actor stops emitting and charging.
  • Free Apify plans are capped at 10 disclosures per run.

FAQ and troubleshooting

Are dates converted from the ROC (Minguo) calendar? Yes. Every ROC date gets an ISO twin (for example reportDate 1150817 becomes reportDateISO 2026-08-17). Incorporation and listing dates that the source publishes in Gregorian YYYYMMDD are also normalized. The original values are kept for auditability.

Does material_announcements return history? The official TWSE material-announcements feed publishes the most recent disclosures (typically the current trading day). Use dateFrom/dateTo, stockCode, keyword or announcementType to filter what it returns.

Does it cover TPEx (OTC / 上櫃)? This actor reads the official TWSE (上市) open-data feeds. It does not cover TPEx-only tickers.

A run returned 0 records. Why? Your filter matched nothing in the selected feed, or that feed was empty for the current period. Zero-result runs are not charged.

Is this an official TWSE tool? No. It is independent and reads only data that is publicly available through the official TWSE open-data feeds.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat. Browse the catalog or request a custom scraper at scrapers.lat.


台灣證券交易所 (TWSE) 爬蟲:公開資訊觀測站重大訊息、營收與財報

API 金鑰擷取 台灣證券交易所 (TWSE)公開資訊觀測站 (MOPS) 揭露資料:重大訊息、每月營收、季度財務報表、每股盈餘 (EPS)、股利、大股東、內部人 (董監事) 持股與公司基本資料,涵蓋 1,000 家以上台灣上市公司。民國 (ROC) 日期自動轉換為 ISO 格式,中文欄位對應成乾淨的英文鍵值,每筆資料都附上公司英文名稱與市場別。可匯出為 JSON、CSV 或 Excel。

以下是預設 monthly_revenue 資料集的一筆真實結果 (英文名稱與 ISO 日期由本爬蟲加上):

{
"stockCode": "1101",
"companyName": "台泥",
"englishName": "TCC",
"market": "TWSE",
"reportDate": "1150817",
"reportDateISO": "2026-08-17",
"dataPeriod": "11507",
"dataPeriodISO": "2026-07",
"industry": "水泥工業",
"revenueCurrentMonth": "13744103",
"revenueMoMChangePct": "2.70047776585692",
"revenueYoYChangePct": "1.5379365538929763",
"sourceApiUrl": "https://openapi.twse.com.tw/v1/opendata/t187ap05_L",
"mopsUrl": "https://mops.twse.com.tw/mops/#/web/t05st01",
"observedAt": "2026-09-06T14:16:45.756Z",
"error": null
}

📥 輸入 · 📤 輸出 · 💰 價格 · ▶️ 範例

目錄

功能說明

這是 Apify 上功能最完整的台灣公司揭露資料爬蟲。每次執行擷取一個 TWSE 官方開放資料 (open data) 來源,套用您的篩選條件,並將每筆揭露正規化成一列資料。以 dataset 參數選擇來源:

  • 每月營收 (monthly revenue):當月、上月、去年當月營收、月增率 (MoM)、年增率 (YoY)、累計營收。
  • 重大訊息 (material announcements):主旨、符合條款、事實發生日、完整說明內容。
  • 財務摘要 (financials):營業收入、營業利益、每股盈餘。
  • 綜合損益表 (income statement) 與 資產負債表 (balance sheet):依季別的完整明細。
  • 股利分派 (dividends):現金與股票股利、決議進度、董事會與股東會日期。
  • 大股東 (major shareholders) 與 內部人持股 (insider holdings):持股數、設質股數與比例。
  • 公司基本資料 (company profiles):董事長、發言人、聯絡方式、成立與上市日期、資本額、簽證會計師。

每筆資料都加上原始來源沒有的加值資訊:

  • 民國轉 ISO 日期reportDateISOannouncementDateISOeventDateISOdataPeriodISOdividendYearAD,以及 announcementDateTimeISO (台北時間),方便依時間排序。
  • 每列附上公司英文名稱 (englishName) 與 market (市場別),由官方公司基本資料來源比對而來。
  • 由 TWSE 數字產業代碼比對出的英文產業分類 (industryName)。
  • sourceApiUrlmopsUrl 來源連結。
  • 選用的公司基本資料加購項目:可為任一資料集附上聯絡方式、經營團隊、資本額與簽證會計師。

來源缺值以 null 呈現 (或來源本身的佔位符號,例如 -)。當中文是真正的值時予以保留。

應用情境

  • 涵蓋所有 TWSE 上市公司的基本面分析與選股
  • 監控公開資訊觀測站重大訊息:公司治理、公開收購、資本變動與股利。
  • 為量化研究、儀表板或 AI 代理建立台股資料集
  • 追蹤每月營收動能 (月增、年增) 與股利行事曆。
  • 為觀察清單補上公司聯絡方式與財務身分,供投資人關係 (IR) 或供應鏈研究使用。

快速開始

開啟 actor,將以下內容貼到輸入並按執行。它會回傳所有上市公司最多 10 筆每月營收資料。

{
"maxDisclosures": 10,
"dataset": "monthly_revenue"
}

加上 stockCode (例如 TSMC 為 2330)、stockCodes 清單、companyName 子字串、keyword 關鍵字、announcementType 條款,或 dateFrom/dateTo 日期區間來縮小範圍。

輸入參數

參數型別必填預設說明
datasetenummonthly_revenue要擷取的 TWSE 來源,九選一。每次執行一個。
stockCodestring(空)單一 TWSE 股票代號,例如 2330 (台積電)、2317 (鴻海)。
stockCodesarray[]一次多個代號,例如 ["2330","2317","2454"]
companyNamestring(空)公司名稱子字串比對 (中文或英文),不分大小寫。
keywordstring(空)對主旨、說明與其他文字進行關鍵字比對。
announcementTypestring(空)重大訊息的符合條款,例如 第51款
dateFromstring(空)起始揭露日期 (含)。ISO 2026-06-01 或民國 1150601
dateTostring(空)結束揭露日期 (含)。ISO 或民國格式。
maxDisclosuresinteger10最多擷取筆數,範圍 11000000。免費方案上限 10 筆。
withCompanyProfilebooleanfalse加購項目 (僅付費方案)。為每筆資料附上 companyProfile 物件。
includeRawFieldsbooleanfalseraw 附上原始繁體中文來源物件。

為相容性接受的別名:ticker_filtercompany_filtercompanyCodestitleKeywordstartDate/endDatedate_from/date_tomax_disclosureswithDetails。篩選條件以邏輯 AND 組合。

輸出欄位

每筆揭露一列。所有資料皆含:

欄位型別說明
stockCodestringTWSE 股票代號。
companyNamestring來源提供的公司名稱。
englishNamestring | null公司英文簡稱,由公司基本資料比對而來。
marketstringTWSE
sourceApiUrlstring使用的 TWSE 官方來源網址。
mopsUrlstring公開資訊觀測站重大訊息入口連結。
observedAtstring擷取當下的 ISO 8601 時間。
errorstring | null成功時為 null。執行失敗時僅寫入一筆含 error 的資料且不計費。

加上的 ISO 日期欄位 (來源有該欄位時):reportDateISOannouncementDateISOannouncementTimeISOannouncementDateTimeISOeventDateISOboardDividendDateISOshareholderMeetingDateISOestablishedDateISOlistingDateISOdataPeriodISOdividendYearADdividendPeriodStartISOdividendPeriodEndISO。數字產業代碼另產生 industryCode 與英文 industryName

其餘欄位為所選 dataset 的原生欄位 (全部對應成英文鍵值),例如 subjectclausedescriptionbasicEPSmajorShareholderNamerevenueCurrentMonthchairmanspokesperson

withCompanyProfile: true,每筆資料會多出 companyProfile 物件:englishNameindustryNamechairmangeneralManagerspokespersonspokespersonTitlephonefaxemailwebsiteaddressenglishAddresstaxIdestablishedDateISOlistingDateISOpaidInCapitalsharesOutstandingauditFirm

競品比較

功能本爬蟲automation-labnexgendataquiet_dictionarychamarix
重大訊息
每月營收
季度財報 + 資產負債表
股利、大股東、內部人、基本資料
單一 actor 內的資料集數91111
民國日期轉 ISO
每列附公司英文名稱
代號 + 多代號 + 名稱 + 關鍵字 + 條款 + 日期區間篩選部分部分
公司基本資料 / 聯絡方式加購
原始來源物件選項
免 API 金鑰

我們接受重大訊息競品的所有輸入 (日期、代號、關鍵字、條款、raw 選項),並回傳其所有輸出 (ISO 日期、英文名稱、市場別、MOPS 連結),另外多出八個資料集與聯絡方式加購。

透過 API 與 CLI 執行

<TOKEN> 換成您的 Apify API token。

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~taiwan-twse-disclosures-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"dataset":"material_announcements","stockCode":"2330","maxDisclosures":10}'

Apify CLI:

apify call scrapers_lat/taiwan-twse-disclosures-scraper \
--input '{"dataset":"dividends","stockCodes":["2330","2454"],"dateFrom":"2026-01-01"}'

取得結果

# 以 format 參數取得 JSON / CSV / Excel
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# 大型資料集分頁
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> 為執行物件中的 defaultDatasetId

計費與限制

  • 按結果計費。依回傳的揭露筆數計費 (result 事件)。請見價格頁
  • 公司基本資料加購 (details 事件) 僅在開啟 withCompanyProfile、且該列確實成功補上資料、並於資料送出後才計費。
  • 失敗不計費。執行失敗時僅寫入一筆含 error 的資料,且不計費。零結果亦不計費。
  • 遵守花費上限。設定 maxTotalChargeUsd,達到後即停止輸出與計費。
  • 免費 Apify 方案每次執行上限 10 筆揭露。

常見問題與疑難排解

日期會從民國 (ROC) 曆轉換嗎? 會。每個民國日期都會產生對應的 ISO 欄位 (例如 reportDate 1150817 會轉為 reportDateISO 2026-08-17)。來源以西元 YYYYMMDD 提供的成立與上市日期也會正規化。原始值一併保留供查核。

material_announcements 會回傳歷史資料嗎? TWSE 官方重大訊息來源提供最新的揭露 (通常為當個交易日)。請用 dateFrom/dateTostockCodekeywordannouncementType 篩選。

是否涵蓋上櫃 (TPEx / OTC)? 本爬蟲讀取 TWSE (上市) 官方開放資料,不涵蓋僅上櫃的股票。

執行回傳 0 筆,為什麼? 您的篩選條件在所選來源沒有比對到資料,或該來源當期為空。零結果不計費。

這是 TWSE 官方工具嗎? 不是。本工具為獨立開發,僅讀取 TWSE 官方開放資料中公開可得的資料。

獨立工具,與台灣證券交易所 (TWSE) 無任何關聯。僅存取 TWSE 官方開放資料中公開可得的資料。