SerpApi-backed provider (fetchMode: "serpapi", now the default). Brings your own free SerpApi key (100 searches/month free). Eliminates the Google proxy/captcha fight entirely.
Apify-scraper provider (fetchMode: "apify-scraper"). Calls Apify's official apify/google-trends-scraper Actor as a backend. Requires Apify Starter+ plan.
Browser fallback provider (fetchMode: "browser" / "auto"). Playwright Chromium with passive XHR capture, configurable navigation timeout and warm-up dwell.
New input fields: fetchMode, serpApiKey (secret), browserNavigationTimeoutMs, browserWarmupMs.
Credential-safe proxy diagnostics logged at start of every run.
Per-run debug artifacts (HTML + screenshot) dumped to the default key-value store on browser-navigation failures.
End-to-end cloud test harness — scripts/cloud-test*.sh + scripts/validate-output.js for CLI-driven Apify Cloud validation without opening the Console.
16 new tests (38 total) covering all fetch modes, fallback paths, proxy diagnostic credential safety, and SerpApi provider construction.
Changed
Default fetch mode is now serpapi (was a direct Google Trends scrape that's largely blocked in practice).
Dockerfile switched to apify/actor-node-playwright-chrome:20 so browser mode works out of the box.
All string input fields now have explicit editor annotations per Apify schema validation rules.
Removed
Default Apify-proxy auto-configuration in main.ts — proxy is now strictly opt-in via the input, fixing local 407 errors when Apify proxy credentials are unavailable.