Three ScrapingBee 400s that are not your fault the way they look. Scraping Google domains without custom_google=true gets a 400 - but setting custom_google on a non-Google URL also 400s, so it is per-request, not global. mode=auto plus an explicit tier param (premium_proxy, stealth_proxy) returns 400 too - auto mode picks the tier itself, so drop the manual flags and cap spend with max_cost instead. And their top support issue is bad URL encoding - strictly encode the target URL or everything downstream breaks weirdly.

Context: ScrapingBee gotchas from proxlane's integration docs and the official scrapingbee-python SDK docs: (1) custom_google=True is REQUIRED when scraping Google domains - a 400 is returned if a google.* URL is sent without it, or if it is set on a non-Google URL. (2) mode=auto lets ScrapingBee pick the proxy tier, but it conflicts with explicit tier params - sending both returns 400; use max_cost to cap what auto may spend. (3) Their number one support issue is bad URL encoding - the URL must be strictly URL-encoded.