Taiwan MOPS Company Announcements Scraper
Pricing
Pay per event
Taiwan MOPS Company Announcements Scraper
Track Taiwan MOPS company announcements from the public TWSE OpenAPI with clean date, company, keyword, and clause filters.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Track Taiwan MOPS material company announcements from the public TWSE OpenAPI. This Apify Actor turns the official Traditional Chinese disclosure feed into clean English-keyed dataset records with date, company, keyword, clause, and volume filters.
Use it to monitor listed-company material events, corporate-governance updates, tender offers, dividend announcements, board changes, market status notices, and other disclosures published through Taiwan's Market Observation Post System (MOPS).
What does Taiwan MOPS Company Announcements Scraper do?
The actor fetches the TWSE/MOPS public announcements OpenAPI and emits one dataset item per announcement.
It normalizes the source fields into stable English aliases while preserving the original context:
- π’ Company stock code and company name
- π Announcement date, announcement time, report date, and event date
- π§Ύ Announcement title and MOPS clause
- π Full announcement description/details
- π Human source page and source API URL
- π Scrape timestamp for monitoring pipelines
- πΉπΌ Optional raw Traditional Chinese source fields
Who is it for?
This actor is useful for teams that need repeatable Taiwan disclosure monitoring.
- π Equity researchers tracking listed Taiwan companies
- π APAC market-intelligence teams covering exchange disclosures
- π§ββοΈ Corporate-governance and compliance analysts
- π° Financial news monitors looking for material-event signals
- π¦ Investor-relations teams watching peer-company announcements
- π€ Data engineers building alerts, dashboards, or LLM workflows
Why use this actor?
The official endpoint is public, but raw MOPS records use Traditional Chinese field names, ROC dates, and source-specific whitespace. This actor packages the feed for repeatable automation.
Benefits:
- No login required
- No browser required
- No proxy required
- Low-cost HTTP/API execution
- Stable English output aliases
- Raw fields available when needed
- Works well for scheduled monitoring runs
Source coverage
The actor uses the public TWSE OpenAPI endpoint:
https://openapi.twse.com.tw/v1/opendata/t187ap04_L
The feed is maintained by TWSE/MOPS and contains listed-company announcement records. Availability and historical depth are controlled by the public source.
Data you can extract
| Field | Description |
|---|---|
companyCode | Taiwan listed-company stock code |
companyName | Company name from MOPS |
announcementDate | Announcement date converted to ISO format |
announcementTime | Announcement time in HH:mm:ss |
eventDate | Fact/event date converted to ISO format |
reportDate | Source report date converted to ISO format |
title | Material announcement title |
clause | MOPS clause/category value |
description | Full announcement detail text |
sourceUrl | Human MOPS search page |
sourceApiUrl | Public API endpoint used by the actor |
scrapedAt | Time when the actor saved the record |
raw | Optional raw Traditional Chinese source object |
How much does it cost to scrape Taiwan MOPS announcements?
This actor uses pay-per-event pricing:
- A small start event is charged once per run.
- A per-announcement event is charged only for records saved to the dataset.
The actor is HTTP/API-only and does not use paid proxies, so it is designed for inexpensive scheduled monitoring. Exact live prices are shown on the Apify Store page after launch.
Input options
You can run the actor broadly or with focused monitoring filters.
Date filters
Use startDate and endDate to keep only announcements in a date range.
Accepted formats:
- ISO date:
2026-06-30 - ROC date:
1150630
Company filters
Use companyCodes to monitor specific listed companies.
Examples:
2330β TSMC2317β Hon Hai / Foxconn2454β MediaTek
Keyword filters
Use titleKeyword to match the announcement title or description.
Examples:
θ‘ε©θ£δΊδ½΅θ³Όtender offer
Clause filter
Use announcementType when you need an exact MOPS clause such as 第14款.
Run limit
Use maxItems to control the maximum number of announcements saved.
Example input: monitor dividend announcements
{"startDate": "2026-06-01","endDate": "2026-06-30","titleKeyword": "θ‘ε©","maxItems": 100,"includeRawFields": false}
Example input: monitor specific companies
{"companyCodes": ["2330", "2317", "2454"],"maxItems": 100,"includeRawFields": true}
Example output
{"companyCode": "2330","companyName": "ε°η©ι»","announcementDate": "2026-06-30","announcementTime": "14:30:00","eventDate": "2026-06-30","reportDate": "2026-06-30","title": "ε ¬εζ¬ε ¬εΈ...","clause": "第14ζ¬Ύ","description": "1.δΊε―¦ηΌηζ₯...","sourceUrl": "https://mops.twse.com.tw/mops/web/t05sr01_1","sourceApiUrl": "https://openapi.twse.com.tw/v1/opendata/t187ap04_L","scrapedAt": "2026-06-30T04:30:00.000Z"}
How to run
- Open the actor on Apify.
- Enter optional date, company, keyword, or clause filters.
- Choose a
maxItemslimit. - Run the actor.
- Export the dataset as JSON, CSV, Excel, or via API.
Scheduling and monitoring
For disclosure monitoring, schedule the actor to run daily or hourly. Use a narrow keyword/company filter for alerting workflows, or run broadly and filter downstream in your warehouse.
Common schedules:
- Daily market-monitoring snapshot
- Hourly corporate-event alerting
- Weekly APAC disclosure archive refresh
Integration ideas
- Send matching announcements to Slack or Teams.
- Load datasets into BigQuery, Snowflake, or PostgreSQL.
- Trigger an Apify webhook when a new disclosure appears.
- Feed records into an LLM summarizer for English briefs.
- Combine with financial statement or SEC filing actors for cross-market monitoring.
API usage with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/taiwan-mops-company-announcements-scraper').call({companyCodes: ['2330', '2317'],maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/taiwan-mops-company-announcements-scraper').call(run_input={'titleKeyword': 'θ‘ε©','maxItems': 100,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items[0])
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~taiwan-mops-company-announcements-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"companyCodes":["2330"],"maxItems":50}'
MCP usage
Use the Apify MCP server to call this actor from Claude Desktop, Claude Code, or other MCP clients.
MCP URL:
https://mcp.apify.com/?tools=automation-lab/taiwan-mops-company-announcements-scraper
Claude Code setup:
$claude mcp add apify-taiwan-mops --url "https://mcp.apify.com/?tools=automation-lab/taiwan-mops-company-announcements-scraper"
Claude Desktop JSON config:
{"mcpServers": {"apify-taiwan-mops": {"url": "https://mcp.apify.com/?tools=automation-lab/taiwan-mops-company-announcements-scraper"}}}
Example prompts:
- "Run the Taiwan MOPS announcements scraper for company code 2330 and summarize new governance disclosures."
- "Find dividend-related Taiwan MOPS announcements from the latest feed."
- "Monitor MOPS announcements with the keyword θ£δΊ and return the most important items."
Data quality notes
- Dates are converted from ROC year format to ISO dates.
- Source line breaks are preserved where they carry meaning.
- Extra spaces and repeated blank lines are normalized.
- Raw fields can be included for auditability.
- The actor does not translate Traditional Chinese text; it preserves source language.
Troubleshooting
I received fewer records than expected
The public OpenAPI feed may only expose the currently available set of announcements. Broaden your date range, remove company filters, or increase maxItems.
My company code returned no results
Check that the company has announcements in the current public feed. Use the actor without companyCodes first, then add the code once you confirm it appears.
Keyword matching missed an item
The keyword filter matches the title and description exactly as text. Try a shorter Traditional Chinese term or run without the keyword and filter downstream.
Limitations
- Coverage depends on the public TWSE/MOPS OpenAPI feed.
- Historical depth is limited by the source endpoint.
- The actor does not scrape private pages or login-only data.
- The actor does not provide legal, investment, or trading advice.
Legality and responsible use
This actor uses a public OpenAPI endpoint and saves publicly available company disclosure data. You are responsible for using the data in accordance with applicable laws, platform terms, and your organization's compliance requirements.
Related scrapers
Explore related Automation Lab actors for financial and regulatory workflows:
- ASX announcements scraper:
https://apify.com/automation-lab/asx-announcements-scraper - SEC filings scraper:
https://apify.com/automation-lab/sec-filings-scraper - SEC litigation releases scraper:
https://apify.com/automation-lab/sec-litigation-releases-scraper - Financial statements scraper:
https://apify.com/automation-lab/financial-statements-scraper
FAQ
Does this actor require a proxy?
No. The source is a public OpenAPI endpoint, so the actor runs as an HTTP/API integration without paid proxies.
Does this actor translate Traditional Chinese announcements?
No. It normalizes field names and dates but keeps the official announcement text unchanged.
Can I monitor only one company?
Yes. Put one or more Taiwan stock codes in companyCodes.
Can I use this for alerts?
Yes. Schedule the actor and connect dataset or run-finished webhooks to your alerting system.
Can I export to Excel?
Yes. Apify datasets can be exported as JSON, CSV, Excel, XML, RSS, or HTML.
Support
If the public MOPS endpoint changes, report an issue on Apify with the input you used and a link to the failed run. Include whether the failure happened for all inputs or only a specific date/company filter.