Taiwan Treasury Stock Buybacks — 庫藏股 Filings API avatar

Taiwan Treasury Stock Buybacks — 庫藏股 Filings API

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Taiwan Treasury Stock Buybacks — 庫藏股 Filings API

Taiwan Treasury Stock Buybacks — 庫藏股 Filings API

Every treasury-stock buyback ever filed in Taiwan: all 5,800+ board resolutions on the TWSE, TPEX and public-issue boards since 2000, with the planned size, price band and window, and — once the window closes — how much of it the company actually executed and at what average price.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

chris

chris

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Taiwan Treasury Stock Buybacks (庫藏股) API

Get structured JSON access to every treasury-stock buyback ever filed in Taiwan — all 5,857 board resolutions on the TWSE, TPEX and public-issue boards since 2000-08-09, with the size, price band and window each company declared, and — once the window closes — how many shares it actually bought and at what average price.

Taiwanese companies buy their own shares back under §28-2 of the Securities and Exchange Act, and every one of them has to tell the regulator first: how many shares, between which two prices, over which two months, and why. When the window closes they have to file what they actually did. That before-and-after pair is what makes this dataset unusual — a public, 26-year record of what companies said they would do with their own cash and what they then did. Across all 5,812 finished buybacks the answer is 64.57% — 43.5 billion shares actually bought against 67.3 billion announced, for a total outlay of NT$1.03 trillion.

The report has no date parameter and no per-company view — it is one HTML page per board carrying the entire archive. This Actor takes that page apart, verifies it against five identities the page has to satisfy before emitting a single record, and gives you the filtering the exchange never built.

Why this data matters

  • A buyback is the clearest signal a company can send about its own valuation. Nobody buys their own stock at a price they think is too high. purpose splits that signal in two: CREDIT_AND_SHAREHOLDER_INTEREST (2,292 filings) is a response to the share price, while EMPLOYEE_TRANSFER (3,533) is a compensation decision that happens to be executed in the market.
  • Announcing is not doing, and this dataset proves it. 179 buybacks bought zero shares after announcing. Only 37.5% finished the plan in full. execution_rate_pct and incomplete_reason — the company's own written explanation for falling short — turn a press release into a track record.
  • Where in the band they bought tells you what they thought. price_floor, price_ceiling and average_buyback_price sit side by side, so you can see who bought at the bottom of their own range and who chased. 240 finished buybacks paid an average below their declared floor, which Taiwanese rules explicitly allow.
  • Open programmes are a live buying-pressure signal. onlyInProgress gives you the buybacks whose windows have not closed — companies with a standing, disclosed mandate to buy their own stock right now.
  • The largest single buyback on record is TSMC's. Its 2007-11-13 resolution bought all 800,000,000 shares it announced, at NT$60.58, for NT$48.5bn. TSMC has filed six buybacks in 26 years and this Actor has all of them, down to the 2024-06-05 programme that bought 3,249,000 shares at NT$950.81.
  • Nobody serves this in English. The source is one Chinese-language HTML table per board, behind a host that answers "FOR SECURITY REASONS, THIS PAGE CAN NOT BE ACCESSED" if you ask it the obvious way.

Output

Two record types, selected with recordTypes.

BUYBACK — one record per filed buyback. Execution fields are null while the window is still open:

{
"record_type": "BUYBACK",
"market": "TWSE",
"company_code": "8028",
"company_name": "昇陽半導體",
"board_resolution_date": "2026-08-13",
"purpose_code": 1,
"purpose": "EMPLOYEE_TRANSFER",
"purpose_zh": "轉讓股份予員工",
"max_buyback_amount": 3483787097,
"planned_shares": 300000,
"price_floor": 210.0,
"price_ceiling": 430.0,
"planned_start_date": "2026-08-13",
"planned_end_date": "2026-10-12",
"completed": false,
"executed_shares": null,
"cancelled_or_transferred_shares": null,
"execution_rate_pct": null,
"executed_amount": null,
"average_buyback_price": null,
"share_of_outstanding_pct": null,
"incomplete_reason": null,
"figures_self_consistent": null
}

A finished one carries the whole story:

{
"record_type": "BUYBACK",
"market": "TWSE",
"company_code": "1101",
"company_name": "台泥",
"board_resolution_date": "2018-02-02",
"purpose": "EMPLOYEE_TRANSFER",
"planned_shares": 6000000,
"price_floor": 26.53,
"price_ceiling": 56.63,
"completed": true,
"executed_shares": 6000000,
"cancelled_or_transferred_shares": 6000000,
"execution_rate_pct": 100.0,
"executed_amount": 218165694,
"average_buyback_price": 36.36,
"share_of_outstanding_pct": 0.14,
"incomplete_reason": null,
"figures_self_consistent": true
}

COMPANY_TOTAL — the exchange's own all-time totals per company, one record each:

{
"record_type": "COMPANY_TOTAL",
"market": "TWSE",
"company_code": "2330",
"company_name": "台積電",
"buyback_count_all_time": 6,
"total_planned_shares": 1887636000,
"total_executed_shares": 1424905000,
"total_cancelled_or_transferred_shares": 1424905000,
"overall_execution_rate_pct": 75.49,
"total_executed_amount": 89914910189
}

COMPANY_TOTAL figures are always all-time as the exchange publishes them — they are not recomputed over a startDate window, so they stay the number the exchange stands behind.

Input

FieldTypeDefaultWhat it does
recordTypesarray["BUYBACK"]BUYBACK, COMPANY_TOTAL, or both — they come from the same request
marketsarray["TWSE", "TPEX"]Also PUBLIC (public-issue, unlisted). One request per market
startDatestring(all)Keep buybacks resolved on or after this date, YYYY-MM-DD
endDatestring(all)Keep buybacks resolved on or before this date, inclusive
stockCodesarray(all)e.g. ["2330", "2317"] — matched as text, since codes are not always numeric
purposesarray(all)EMPLOYEE_TRANSFER, SHARE_CONVERSION, CREDIT_AND_SHAREHOLDER_INTEREST
onlyInProgressbooleanfalseOnly buybacks the company has not yet filed as finished

The whole archive is three requests, so every filter above is applied locally and costs nothing.

How the numbers are checked

The report is an HTML table read by column position, which is only safe if the columns are what you think they are. Before any record is emitted, this Actor verifies the page against itself — five checks, no extra requests:

  1. The report's own purpose tally. The page prints how many buybacks it lists for each of the three purposes. The parser's counts must equal it exactly. This check earned its keep during development: 永豐金證 files under company code 0009A0, a digits-only code match silently dropped five buybacks, and the tally came up five short.
  2. Every company's 累計 row. The page publishes each company's all-time totals alongside its individual buybacks. Planned shares, executed shares, cancelled-or-transferred shares and amount spent must each sum to the published total, for all 1,226 companies.
  3. The execution rate. executed_shares ÷ planned_shares must equal the printed execution_rate_pct to the last published decimal.
  4. "Not finished" means "no figures yet". A buyback flagged as incomplete must have every execution column blank, and vice versa — 5,857 out of 5,857.
  5. Average price against amount ÷ shares. True on all but four filings from 2000-2001, where the company's own numbers do not reconcile (統一證's 2001-06-04 buyback prints NT$9.27 against an amount that works out to NT$119.85). Those are published exactly as filed and flagged figures_self_consistent: false rather than silently corrected — there is no way to know which of the two figures the filer got wrong.

The first four raise and fail the run. A layout change is caught loudly instead of producing plausible, wrong numbers.

Notes on the source

  • Units. max_buyback_amount and executed_amount are in NT dollars, not thousands — unlike most MOPS reports. Share counts are in shares, prices are NT$ per share.
  • Dates are converted from the ROC calendar (民國 115 → 2026) to ISO YYYY-MM-DD.
  • The emerging board is not offered. §28-2 only lets listed and OTC companies buy their own shares back, and the report answers 查無所需資料 for it.
  • completed: false is not always "running now". A handful of legacy filings — the oldest from 2010 — were never closed out by the filer and still sit open in the official report. Check planned_end_date before treating one as live.
  • Legal window. Taiwanese rules cap the buying window at two months from the board resolution, which is why planned_end_date is never far from planned_start_date.

Taiwan Market Data Suite

This Actor is part of a suite of 23 Taiwan market data APIs by chamarix — official sources only, cross-validated against independent official endpoints, clean JSON out. Code samples for the whole suite: GitHub.

Market data:

Property market:

Government & civic data:

Data source

Taiwan Stock Exchange Market Observation Post System (公開資訊觀測站), 上市/上櫃/公開發行公司買回自己公司股份彙總統計表. Public data, no login required.