TheDocumentation Index
Fetch the complete documentation index at: https://developers.scrapeunblocker.com/llms.txt
Use this file to discover all available pages before exploring further.
/serpApi endpoint scrapes Google search results and returns normalized JSON. It handles the CAPTCHA gauntlet, ad rendering delays, and proxy rotation that make Google scraping painful.
Minimum request
Response shape
Useful parameters
pages_to_check
How many SERP pages to scrape, 1 to 10. Defaults to 1.
topAds, bottomAds, and organic with position reflecting cross-page ordering.
proxy_country
Two-letter ISO code forcing the request through that country’s IP pool. Affects what Google shows you - SERP composition varies by region.
proxy_country field.
wait_after_load
Seconds to wait after the SERP loads before extraction. Set this if you’re seeing ads missing from topAds/bottomAds - some ad units render late.
captcha_pause
Seconds to pause if Google shows a CAPTCHA, giving an interactive user time to solve it. Only useful when running the API in attended mode. Leave at 0 for automated workloads - rely on proxy_country rotation instead.
Errors
| Code | Meaning |
|---|---|
403 | Google CAPTCHA after retries on multiple proxies. Try a different proxy_country or wait. |
504 | SERP fetch timed out. Lower pages_to_check or retry. |
422 | Missing keyword or invalid parameter range |
Tips
- Phrase keywords like a user would.
keyword=best+pizza+nycperforms differently fromkeyword=best%20pizza%20nyc%202026. Use spaces or+, not commas. - Watch
totalResultsfor sanity. AtotalResultsof 0 with valid organic results means the count couldn’t be extracted - not that there are no results. - Cross-page dedup is your job. If you call with
pages_to_check=10, expect some overlap on borderline results. Dedup onurl.

