The live Google Trends board is get_top_trends with type Google Trends. There is no keyword. Daily Trends HTML and RSS are pages, not a contract. pytrends trending_searches scraped those pages. Trends API returns ranked rows in the same envelope as keyword modes. body is a JSON string and must be parsed a second time. Docs: the API reference. Google notes: the Google Trends guide. Caps: pricing.
Daily Trends HTML is not a contract
Google Trends can move markup without notice. A CSS selector is not an API. The official Trends API alpha is a different, gated product and is not this board call.
type Google Trends, omit keyword
POST https://api.trendsapi.ai/api
Authorization: Bearer <api_key>
Content-Type: application/json
{"mode":"get_top_trends","type":"Google Trends","limit":5}
A live pull on 2026-08-27 returned five rows: dolly parton, tim curry, nepal, carl dean, jed york. Those strings change through the day. Cache with a short TTL. Do not treat yesterday's row 1 as a dimension key.
Keyword history stays on source google search. A live get_growth pull the same day for air fryer is a different mode and a different question.
Category board when the mix is wrong
Google Trends by Category is a second type. It requires category set to an official name. Without that field the category feed mixes boards. Do not pass category on the default Google Trends type to fake a filter that is not there.
rank versus rank_change
Default sort is rank, current leaders. sort rank_change returns climbers against a prior snapshot. window is one of 1d, 3d, 7d, 14d, 30d and applies only to rank_change. Short windows fail on feeds that are not daily. Mover rows include rank, keyword, prev_rank, and rank_change. The product MCP server at https://api.trendsapi.ai/mcp uses the same type string.