Taiwan Short Sale Eligibility & Borrow Fee API (TWSE + TPEx) avatar

Taiwan Short Sale Eligibility & Borrow Fee API (TWSE + TPEx)

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Taiwan Short Sale Eligibility & Borrow Fee API (TWSE + TPEx)

Taiwan Short Sale Eligibility & Borrow Fee API (TWSE + TPEx)

Can this Taiwan stock be shorted today? Below-close short list, shares available to borrow, stock borrow fees, margin haircuts and forced short-cover dates for every TWSE and TPEx stock, from ten official exchange reports, cross-checked against each other.

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

9 hours ago

Last modified

Share

Taiwan Short Sale Eligibility & Stock Borrow Fee API (可否放空・可借券股數・借券費率・強制回補日)

Can this Taiwan stock be shorted today, how many shares can be borrowed, what does borrowing cost, and when must existing shorts be covered? One dataset answering all four for every TWSE-listed and TPEx OTC stock, built from ten official exchange reports and checked against each other.

Most short-interest data tells you how much of a stock has already been shorted. None of it tells you whether you are allowed to short it this morning — and in Taiwan that is a real question. Short selling below the last close is permitted only for stocks on a daily list; the list suspends names ahead of every dividend, shareholder meeting and capital change; the exchange cuts margin and raises short margin on stocks it considers overheated; and the shares available to borrow are rationed by a published daily quota. This Actor returns all of it, per stock, in one run.

Output

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

eligibility — may it be shorted below the last close today? (TWT92U / TPEx 平盤下得融(借)券賣出之證券名單)

{
"record_type": "eligibility",
"market": "TWSE",
"date": "2026-09-30",
"stock_code": "00406A",
"stock_name": "主動中信台灣收益",
"margin_short_suspended": true,
"sbl_short_suspended": false,
"below_close_short_banned": false,
"below_close_ban_rule": "previous_close_limit_down",
"any_restriction": true
}

shortable_shares — shares available to borrow and sell short today (TWT96U, both markets)

{
"record_type": "shortable_shares",
"market": "TWSE",
"as_of_date": "2026-09-30",
"retrieved_at": "2026-09-30",
"stock_code": "2330",
"shortable_shares": 6250884,
"matches_previous_session_quota": true
}

borrow_fee — the rate paid to borrow a stock (BFIF8U / TPEx 券差借券費率)

{
"record_type": "borrow_fee",
"market": "TWSE",
"date": "2026-09-29",
"stock_code": "2030",
"stock_name": "彰源",
"borrowed_shares": 1000,
"borrow_fee_rate_pct": 3.5,
"lot_in_day": 1
}

suspension_notice — upcoming short-sale suspensions and the forced cover date (BFI84U / TPEx 暫停融券賣出預告表)

{
"record_type": "suspension_notice",
"market": "TWSE",
"as_of_date": "2026-09-29",
"stock_code": "00400A",
"stock_name": "主動國泰動能高息",
"forced_cover_date": "2026-10-02",
"suspension_end_date": "2026-10-07",
"reason": "分配收益"
}

margin_adjustment — margin loan cuts and short margin raises, with reasons (BFIB9U / TPEx 調整成數)

{
"record_type": "margin_adjustment",
"market": "TWSE",
"date": "2026-09-29",
"stock_code": "2455",
"stock_name": "全新",
"margin_ratio_cut_tenths": 6,
"short_margin_raise_tenths": 2,
"in_effect": true,
"reasons": [
{"reason": "股價波動過度劇烈", "start_date": "2026-09-02", "restore_date": null},
{"reason": "監視第二次處置", "start_date": "2026-09-23", "restore_date": "2026-10-06"}
],
"cumulative_matches_rule": true
}

collateral_balance (opt-in) — shares pledged as collateral under five kinds of loan, per stock per day (TWTA1U, both markets): margin, broker securities-business loans, broker and finance-company unrestricted-purpose loans, and settlement financing, each with previous balance, new, sold, repaid, swapped, balance and next-day limit, in shares.

A default daily run returns about 4,700 rows: ~2,070 eligibility, ~2,090 shortable-share, ~100 borrow-fee, ~400 margin-adjustment and ~40 suspension rows. Turn on onlyRestricted to keep just the restricted names.

History: which reports have it and which do not

This matters more than anything else about this data. Four of these reports accept a date parameter and ignore it — ask for 2020 and they return this morning's list with a normal "OK" status. A scraper that trusts the parameter produces a decade of plausible, entirely fake history. Every report here was checked by hashing its whole payload on dates years apart.

Record typeHistoryHow
eligibility2013-09-23 → both marketsone request per session
borrow_fee2015-05 → both marketsone request per month
margin_adjustmentTWSE 2014-04-18 →; TPEx today onlyTWSE takes startDate/endDate, not date
collateral_balance2006-10-02 → both marketsone request per session
shortable_sharestoday onlysee below
suspension_noticetoday onlyforward-looking by nature

Snapshot rows carry retrieved_at and the date the report itself names (as_of_date) instead of a session date, and in a history run they are only included when the range reaches today — a request for 2020 never comes back holding today's list.

Shortable shares do have a history, just not in this report. Today's shortable_shares equals the 次一營業日可借券賣出限額 published after the previous session — 2,090 of 2,090 stocks on 2026-09-30 — and that figure is dated and goes back years. It is sbl_quota_next_day in the sister Actor taiwan-sbl-short-sale-balance. This Actor re-checks the equality on every run and records it on each row.

The TWSE margin-adjustment report was catalogued as snapshot-only too, because it ignores date=. It answers startDate/endDate properly back to 2014-04-18, which is what the page's own form sends.

Verification

  • Margin adjustments are rebuilt from their parts. The TWSE report prints each stock as a block of reasons plus a 累計 (cumulative) row, and its footnote gives the rule: the three ordinary reasons share a single one-tenth step, a second-stage surveillance disposition cuts the margin loan ratio by six tenths, steps add, and the loan cut stops at six tenths. The rule is re-applied to every block and must reproduce the printed total exactly. It held for 559 of 559 blocks across ten dates from 2014 to 2026; a miss fails the run.
  • Collateral balances satisfy the report's own identity — 今日餘額 = 前日餘額 + 新增 − 賣出 − 現償 − 更換 — on every block of every row. The report prints thousands of shares and rounds each figure separately, so the tolerance is the sum of their half-units (2 with five terms, 3 with six), derived rather than picked. Across four dates from 2006 to 2026, two ETF rows in 2015 were off by one thousand shares; everything else was exact. The margin block also equals the separate margin-trading report (MI_MARGN) — 1,294 of 1,294 stocks on 2026-09-29.
  • Shortable shares equal the previous session's published quota from a separate report, and equal the exchange's open-data copy of the same table (2,090 of 2,090).
  • Suspension notices agree with the eligibility list. Every stock whose notice window covers a session is flagged 暫停融券賣出 on that session's list — 21 of 21 on 2026-09-30, both markets. The TWSE notice table also matches its open-data copy row for row.

Traps in the source that this Actor handles

  • The shortable-shares table is two tables side by side. Its header literally reads 證券代號, 可借券賣出股數, 證券代號, 可借券賣出股數 — listed stocks on the left, OTC on the right. Reading it by column name keeps only the right-hand stock and silently drops half the market. Each code is also wrapped in an HTML link.
  • The below-close ban rule changes. The fifth column's header names the rule: on most dates it is "previous close was limit-down", but TPEx prints "previous close fell 3.5% or more" on some dates (seen on 2020-03-20 and 2023-01-03). The header is read on every payload and published as below_close_ban_rule; an unknown header stops the run.
  • Borrow fees are not capped at 7%. Nearly every month tops out at exactly 7.000%, which looks like a ceiling; TWSE printed 57.143% for 2390 on 2020-06-17. The rate is published as-is. TPEx also prints 0.000% lots.
  • The fee reports are monthly and list each borrowed lot separately, so one stock can have several rows on a day at different rates (lot_in_day numbers them). Days on which nobody failed to deliver are printed as a row of dashes; those are dropped.
  • Holidays look different on each exchange. TWSE answers "OK" with no rows; TPEx's list answers with a single one-cell row holding the date. Both are treated as a closed market, not as data.
  • Codes are not always four digits (00400A, 00631L, 006201).

Input

  • recordTypes — any of the six. collateral_balance is off by default.
  • startDate / endDate — leave both empty for the latest of everything (each report's most recent session, looking back over holidays). Fill them in for history.
  • market — both, twse or tpex.
  • stockCodes — keep only these.
  • onlyRestricted — only restricted eligibility rows, adjustments in effect and flagged collateral rows.
  • maxRequests — a cap for long backfills (default 300).
  • useApifyProxy — for multi-year TWSE backfills; TWSE's firewall blocks an address that asks too often.

Limitations, stated plainly

  • TPEx does not publish the size of a margin adjustment, only that one applies and why. margin_ratio_cut_tenths and short_margin_raise_tenths are null on TPEx rows rather than guessed.
  • The TWSE margin-adjustment publication describes the next business day, per the exchange's own note. date is the publication date. A date after the latest publication is not requested, because the report answers such a request with the previous publication under the new date.
  • The collateral report's next-day limit differs from the margin-trading report's for about half of stocks (1,294 compared, 687 equal on 2026-09-29) by more than rounding. Both are official; this Actor publishes the collateral report's figure verbatim and does not pick one.
  • Borrow fees cover day-trade delivery failures, which is the only per-stock, per-day borrowing price either exchange publishes. It is not the negotiated rate in the securities lending market.
  • The 暫停借券賣出 column has been empty on every date sampled in both markets. It is parsed and published, not assumed.

Source

Taiwan Stock Exchange (臺灣證券交易所): TWT92U 平盤下得融(借)券賣出之證券名單, TWT96U 當日可借券賣出股數, BFIF8U 應付現股當日沖銷券差借券費率, BFIB9U 調整融資融券成數股票資訊, BFI84U 停券預告表, TWTA1U 借貸款項擔保品餘額表, plus TWT93U for verification. Taipei Exchange (證券櫃檯買賣中心): margin/mark, intraday/fee, margin/adjust, margin/term, plus margin/sbl for verification.

Taiwan Market Data Suite

This Actor is part of a suite of 44 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: