Getting Raw Data From Yahoo Finance For Taiwan Stocks
I spent three months trying to build a clean historical dataset for the Taiwan Weighted Index and the top 50 stocks on TWSE. Yahoo Finance has an API-like endpoint that returns CSV or JSON data if you know the right URL structure. The symbol format for Taiwan stocks is different from US equities. You append .TW to the ticker. So TSMC becomes 2330.TW. Most people miss that suffix and waste hours debugging empty responses. The endpoint I use lives at query1.finance.yahoo.com. You pass a series parameter, an interval parameter, and a range parameter. The response comes back as a JSON object with a timestamps array and a indicators array containing open, high, low, close, volume, and adjusted close data. It is undocumented. Yahoo changes it sometimes without warning. When they do, the whole pipeline breaks until you adjust the field names or switch providers.
Unlocking Taiwans Financial Pulse How Yahoo Finance Data Powers Insight In The Taiwan Stock Market
Here is the practical workflow I ended up sticking with after most alternatives failed. I use Python. Requests library hits the Yahoo endpoint with the correct symbol, interval, and date range. I parse the JSON, rename the columns to something consistent, and store everything in a SQLite database. From there I can join price data with dividend schedules, which Yahoo also provides through a separate endpoint. The dividend data is not always complete for Taiwanese stocks. I cross-reference with the TWSE website when the Yahoo feed is missing a payout. For real-time quotes, Yahoo offers a different endpoint that returns a single JSON object with current price, previous close, day high, day low, and market cap. This one is useful for screening but unreliable for execution-grade accuracy. The bid-ask spread information does not come through. If you need Level 2 data for Taiwan, you are better off using the Taiwan Futures Exchange data provider or a local broker API. Yahoo gives you a general sense of where the market is trading, not the order book depth. I ran into a specific problem with after-hours trading data. Yahoo Finance includes pre-market and after-hours sessions in its extended hours data, but the timestamps do not always align with Taiwan time zone conventions. The exchange operates in GMT+8, and Yahoo sometimes returns UTC timestamps that are off by an hour during daylight saving transitions in the US. I wrote a timezone correction step that checks the last known exchange holiday schedule and shifts timestamps accordingly. This added about ten minutes to my initial data load script but prevented a cascade of wrong entries in my database. It was a one-time fix that saved me from re-doing months of analysis.
Another issue is the handling of corporate actions. Yahoo adjusts historical prices for splits and dividends, but Taiwan has a history of unusual capital restructuring events that the platform does not always flag correctly. I noticed that several mid-cap stocks showed a sudden price drop of roughly 15 percent on a specific date with no corresponding news event. After checking the TWSE announcements, it turned out to be a rights issue pricing adjustment that Yahoo classified as a standard dividend. The adjusted close column was wrong for every day after that event. I had to manually pull the unadjusted prices and recalculate the adjustment factor using the rights issue terms from the exchange filing. This took about two hours for one stock and exposed how fragile automated historical datasets can be for smaller markets. The main advantage of Yahoo Finance data is that it is free and requires no account creation for basic historical queries. You can fetch daily bars for any Taiwan-listed stock going back to its IPO date in most cases. The data quality is decent for macro-level analysis. Volume figures occasionally show anomalies on holidays or thin trading days, so I filter out any day where volume deviates more than three standard deviations from the trailing 60-day average before running any models. For anyone building screening tools or backtesting strategies, the combination of price history and dividend data from Yahoo covers about 80 percent of what you need. The remaining 20 percent usually involves corporate action research and timezone validation. I have considered switching to a paid provider like Bloomberg or Refinitiv for production work, but the cost does not justify the marginal improvement for retail-level analysis. Yahoo gets the job done if you budget time for data cleaning.
Get the Full Details

The symbols you will use most frequently are 2330.TW for TSMC, 2454.TW for Acer, 2412.TW for Foxconn Industrial Internet, and 2881.TW for the Taiwan ETF. The index symbol for the weighted index is ^TWII. All of these follow the same .TW suffix rule. You can batch request multiple symbols in a single call if you use yfinance, the Python package that wraps Yahoo Finance. It handles retries and rate limiting automatically, which saves you from writing your own error recovery logic. If you need intraday data, Yahoo supports intervals as fine as one minute, but the available history is limited to about seven days for intraday bars. Daily and weekly data go back much further. For longer intraday histories on Taiwan stocks, you would need a dedicated data vendor or a broker that provides historical tick data. Yahoo is not built for that use case. The code to pull a single stock's daily history looks like this: import yfinance as yf, then ts = yf.Ticker("2330.TW"), then hist = ts.history(period="max"). The resulting dataframe has Date, Open, High, Low, Close, Volume, and Dividends columns. That is the core of what most people need to start analyzing Taiwan market trends without paying for a terminal subscription.