Taiwan Broker Rankings (TPEx) — Turnover & Market Share avatar

Taiwan Broker Rankings (TPEx) — Turnover & Market Share

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Taiwan Broker Rankings (TPEx) — Turnover & Market Share

Taiwan Broker Rankings (TPEx) — Turnover & Market Share

Which securities firms traded Taiwan's OTC board and how much: each firm's daily turnover, rank and market share, by branch and by head office, plus the 15 most active firms in each of the day's 30 most active stocks, in lots and dollars. Back to 2007, reconciled against the exchange's own figures.

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 hours ago

Last modified

Share

Taiwan Broker Rankings (券商成交排行) API

Get structured JSON access to which securities firms actually traded Taiwan's OTC board — every firm's daily turnover, rank and market share, branch by branch and head office by head office, plus the fifteen most active firms in each of the day's thirty most active stocks in both lots and dollars.

About 1,500 rows a session: ~854 branches, ~62 head offices and ~600 firm-and-stock pairs. The turnover tables and the lots ranking reach back to 2007-04-23.

Why this data matters

  • The only free, official read on broker flow in Taiwan. Broker-level order flow is the single most requested Taiwanese market dataset that has no free API, because the per-branch buy/sell page (bsr.twse.com.tw) is behind a CAPTCHA and one stock at a time. These four reports are the part the OTC board does publish openly, and nobody has put them behind an API. To be clear about what this is not: it is not per-branch flow per stock. The hot-stock rankings name firms (凱基, 元大), not branches, and cover the day's thirty most active stocks. The turnover tables are branch-level, but they are a firm's whole-board total, not its position in any one stock.
  • Market share, ranked and already computed. day_share_pct and month_share_pct come from the exchange, and rank, previous_day_rank and month_rank come with them — so broker league tables, share-shift tracking and month-to-date race charts need no arithmetic on your side. 元大 held 17.55% of the OTC board on 2026-09-18 and 19.27% month-to-date; the top branch, 凱基台北, held 7.29%.
  • Two rankings that price each other. The board publishes the hot-stock ranking twice — once by lots and once by turnover — from two separate queries over the same matches. Divide one by the other and you get the average price a firm paid or received, per stock, per day. Those implied prices are checked against the range the stock actually traded in, from a third report: on 2026-09-18 all 599 priced sides landed inside their own high-low range, none outside. That is also a useful signal in itself — which firm bought near the low and which chased the high.
  • Nineteen years of it, not a rolling snapshot. The open-data editions of these reports carry only the latest session, which is why broker data usually shows up as "start collecting today". The dated reports behind them go back to 2007-04-23, and this Actor reads those. Every session in between is available on request.
  • Checks derived from the exchange's own rounding, not from a fudge factor. Turnover is printed in thousands and the percentage shares are truncated to two decimals. That means the month-to-date total has to grow by the day's turnover to within exactly NT$1,000 — measured across a session, the error is {-1, 0, +1} thousand and never once outside it — and it means all ~854 published percentages have to agree on one market total. Both are checked every run. So is the printed previous-day rank, against the rank the previous session actually carried: 916 of 916 matched across the two sessions of a sample run.
  • A holiday and an outage are told apart. The OTC board answers a public holiday, a date before the archive and next January alike with stat: ok and an empty table — and it drops requests often enough that this bit us while building: an empty answer for 2009 turned out to be the host failing, not the archive ending. Taking either at face value turns a total outage into a successful run reporting a quiet market. This Actor reads TWSE's trading calendar first, asks only for sessions actually held, retries until a complete body arrives, and fails loudly if every session in range comes back empty.

Output

One record per securities firm per trading day. A real record, as published:

{
"record_type": "BROKER_TURNOVER",
"date": "2026-09-18",
"market": "TPEX",
"scope": "BRANCH",
"broker_code": "9268",
"broker_name": "凱基台北",
"broker_registered_name": "凱基-台北",
"branch_count": null,
"rank": 1,
"previous_day_rank": 2,
"turnover": 40949952000,
"turnover_thousands": 40949952,
"day_share_pct": 7.29,
"month_rank": 2,
"month_to_date_turnover": 405588622000,
"month_to_date_turnover_thousands": 405588622,
"month_share_pct": 6.64,
"identity_ok": true
}

And one record per firm-and-stock pair in the day's hot-stock rankings, carrying both rankings on the same row:

{
"record_type": "STOCK_BROKER_FLOW",
"date": "2026-09-18",
"market": "TPEX",
"stock_code": "5314",
"stock_name": "世紀*",
"broker_name": "凱基",
"volume_rank_of_stock": 1,
"value_rank_of_stock": 19,
"broker_rank_by_volume": 1,
"broker_rank_by_value": 1,
"buy_lots": 36678,
"sell_lots": 16042,
"net_lots": 20636,
"buy_shares": 36678000,
"sell_shares": 16042000,
"buy_value": 1104121000,
"sell_value": 474238000,
"net_value": 629883000,
"implied_buy_price": 30.103086318774196,
"implied_sell_price": 29.562274030669492,
"identity_ok": true
}

Plus a MARKET_SUMMARY row per scope per session, and the exchange's 881-firm register on request as BROKER_PROFILE rows.

The four reports

BROKER_TURNOVER scope BRANCHscope FIRMSTOCK_BROKER_FLOW lotsflow value
Chinese name各券商當日營業金額統計表總公司當日營業金額統計表熱門股證券商進出排行 (量)熱門股證券商進出排行 (額)
Rows a session~854~62450450
Unit publishedNT$ thousandsNT$ thousands1,000-share lotsNT$ thousands
Archive reaches2007-04-232007-04-232007-04-232016-01-04
Coverswhole board, incl. odd-lot, after-hours and blocksametop 30 stocks × top 15 firmstop 30 stocks × top 15 firms

The two hot-stock rankings choose their top thirty separately — twenty stocks in common on 2026-09-18 — so the join is an outer one. A pair in only one ranking still gets a row, with the other side's columns null rather than zero, and no implied price.

Input

{
"startDate": "2026-09-01",
"endDate": "2026-09-18",
"datasets": ["HOT_STOCK_FLOW", "BROKER_TURNOVER"],
"turnoverScopes": ["BRANCH", "FIRM"],
"stockCodes": ["5314", "3105"],
"brokerCodes": ["9800", "9268"],
"includeMarketSummary": true,
"crossCheck": true,
"maxSessions": 60
}

Leave both dates empty for the most recent session. Add "BROKER_PROFILE" to datasets to also get the register of securities firms — 881 rows that do not change between sessions, so it is off by default and worth asking for once.

maxSessions defaults to 60 because a session is about 1,500 rows and a year of both reports is over 350,000. Set it to 0 to lift the cap.

Things worth knowing about this data

  • The hot-stock rankings are in lots; the turnover tables are in thousands. buy_lots: 36678 is 36,678 board lots — 36,678,000 shares, published here as buy_shares too. turnover_thousands: 40949952 is NT$40,949,952,000, published as turnover. The English column names the open-data edition uses (TotalPurchaseShares) say shares; the report's own Chinese header says 總買量(張), lots, and the arithmetic agrees with the header.
  • Turnover counts both sides of every match. The board's firms summed to NT$561.2bn on 2026-09-18 against a board turnover of NT$280.6bn — a ratio of exactly 2.0000. Halve it before comparing with a market turnover figure.
  • A broker code is not unique. 8888 carried three different branches on 2026-09-18 (國泰敦南, 國泰敦南二 and 國泰敦南三). Rows are identified by code and name, and brokerCodes filtering can therefore match more than one row per code.
  • The head-office report ranks over more firms than it prints. On 2026-09-18 it printed 62 firms carrying ranks up to 63, with rank 58 never appearing, and its percentages are shares of a market its own printed rows fall 0.013% short of. printed_rows_cover_market says so on the summary row — true for the branch report, false for this one — and implied_market_turnover_low/high give the total the percentages actually imply.
  • Ranks are an ordering, not a formula. Ties are broken inconsistently between sessions: the branch report's ranks rebuild exactly as a standard competition ranking on 2026-09-18 and not on 2026-09-17. What holds on every session sampled back to 2010 is that reading a table in rank order never takes turnover upwards, and that is what is checked.
  • The OTC board's short names differ from the register's. 星洲瑞銀 here is 新加坡商瑞銀 in the listed exchange's register, 美商高盛亞 is 美商高盛. Both are published — broker_name as the report prints it, broker_registered_name from the register — rather than one being corrected into the other. 847 of 854 branches and all 62 head offices joined on 2026-09-18; the rest are head-office trading desks the register does not carry.
  • Before 2013-01-02 the hot-stock report printed no stock codes. Rows from those sessions carry stock_code: null and the name only, rather than a guessed code.
  • identity_ok: false rows are published, not dropped. A handful of rows failing a derived bound is the exchange's own arithmetic and is flagged; a systematic failure means a report changed shape, and that fails the whole run rather than publishing anything.
  • Column layouts are read by name, never by position. All four reports have carried the same columns on every session since 2007-04-23, so a column name that stops existing means the layout changed, and the run stops rather than reading the wrong column.

Data source

TPEx 熱門股證券商進出排行 by volume (brokerVol) and by turnover (brokerAmt), 各券商當日營業金額統計表 (dailyBrk1), 櫃檯買賣總公司當日營業金額統計表 (dailyBrk2) and 上櫃股票每日收盤行情 (otc) for the implied-price check; TWSE 每日市場成交資訊 (FMTQIK) as the trading calendar, and TWSE 證券商總公司/分公司基本資料 for the register. Public official data, no login required.

Taiwan Market Data Suite

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