Skip to main content
The /getPageSource endpoint is the workhorse of the API. You pass a URL, ScrapeUnblocker picks the cheapest bypass route that works for that domain, and returns the prettified HTML.

Minimum request

How routing decisions are made

ScrapeUnblocker keeps a per-domain success history and picks the cheapest path that has worked recently:
1

Domain plugin

If we have a custom-built plugin for the target domain (Mobile.de, Zillow, Amazon, etc.), we use it. Plugins ship hardcoded knowledge about that site’s protection - cookie order, headers, anti-fingerprinting tweaks.
2

Direct fetch

For unprotected origins, a plain HTTP fetch is tried first. Fastest and cheapest.
3

Residential proxy

If direct fails, the request is rotated through a residential IP in a relevant country.
4

Stealth browser

For JavaScript-rendered pages or sites with browser fingerprint checks, we spin up a real browser with a randomized profile.
5

Upstream fallback

If all in-house paths fail, the request falls back to a third-party provider as a last resort.
You don’t pick the route. It’s chosen automatically per request based on what has worked for that domain.
Google search URLs are not accepted here. A getPageSource request whose URL is a Google search - a google.<tld>/search path, or a google.<tld> homepage carrying a q= query - returns HTTP 400 with a plain-text body directing you to the dedicated SERP endpoint: POST /serpApi?keyword=<term> (optionally &proxy_country=<ISO2>). Google search moved to its own endpoint, which returns structured JSON instead of raw HTML - see Google SERP scraping. Other Google URLs (Maps, etc.) still pass through getPageSource normally.

Useful parameters

method and value

For domains with custom plugins, method selects a specific extraction strategy and value passes a parameter to it. Common patterns:
  • method=ajax&value=<endpoint> - hit a site’s internal JSON API and return the JSON instead of HTML.
  • method=scroll&value=3 - scroll the page N times before returning HTML, for infinite-scroll listings.
The exact methods supported depend on the domain plugin. Check the help center for per-domain documentation.

time_sleep

Number of seconds to wait after the page loads before returning HTML. Useful for sites that hydrate content lazily after first paint.

method_timeout

Hard cap on how long ScrapeUnblocker will spend on a single bypass attempt before moving to the next one. Default is 60 seconds. Lower it for fast-failing crawls; raise it for slow targets you really need.

proxy_country

Two-letter ISO country code forcing the request through that country’s proxy pool. See country targeting.

steps and list_elements

Some pages need interaction before the HTML you want exists - a search box to type into, a “load more” button to click, content that appears only after scrolling. Pass steps (a JSON array of browser actions - click, type, scroll, wait_for, press_key, …) and ScrapeUnblocker runs them in a real browser after the page loads, then returns the resulting HTML. To discover the selectors those actions need, add list_elements=true: instead of HTML you get back the page’s interactive elements as JSON, each with a ready-to-use selector. List the elements, build your steps, run them.
Full action reference, limits and the 422 failure shape are in browser steps and element discovery.

Response

By default, the response body is the prettified HTML of the page. Content-Type is text/html. When you add parsed_data=true or get_cookies=true, the response becomes JSON. See parsed data and cookies and sessions.

Errors

Full reference in errors.