Yahoo rate limiting blocks all market data from data-center / non-US networks; propose a keyless akshare (Sina) vendor
Running TradingAgents from a Singapore data-center IP, every yfinance endpoint (fast_info, history, news) answers with YFRateLimitError and does not recover within 48h, including after long waits:
yfinance.exceptions.YFRateLimitError: Too Many Requests. Rate limited. Try after a while.The effect on a full 4-analyst run is that market, sentiment and news all come back NO_DATA_AVAILABLE, and the decision layer has to reason over an information vacuum. The same pattern is commonly reported from mainland-China networks. alpha_vantage works but requires an API key, and its free tier (25 requests/day) does not survive one full run.
Measured from the same Singapore IP where Yahoo 429s, Sina Finance endpoints (via the akshare package) answer in under half a second, keyless:
ak.stock_us_daily('NVDA') -> 5772 rows of full daily history
ak.stock_zh_a_daily('sh600519') -> 6012 rows
sz000001 / sz300750 / sh688981 / bj920099 -> all return immediatelySina serves both mainland-China and overseas clients, and akshare wraps it with no signup or key. The vendor routing in dataflows/router.py makes this a contained addition: register implementations for get_stock_data, get_indicators and get_verified_market_snapshot alongside yfinance/alpha_vantage, keep defaults unchanged, and let users opt in per category:
"data_vendors": {"core_stock_apis": "akshare,yfinance", ...}I have a working implementation (CSV/snapshot output shapes identical to the yfinance ones, an in-process 900s OHLCV cache so one run hits Sina once per symbol, and a friendly NoMarketDataError for tickers Sina does not recognize) and will open a PR referencing this issue.
Source: TauricResearch/TradingAgents