Skip to main content

Scraping Modes

The mode parameter controls how aggressively OmniScrape works to fetch a page. The right mode balances speed, cost, and success rate.

ModeBrowser?Best forSpeed
fastNoStatic HTML, APIs, simple sitesFastest
js_renderingYesJS-heavy or anti-bot-protected sitesSlower
auto (default)MaybeWhen you're not sureAdaptive

auto

The default. We start with the cheap, fast path and automatically escalate to a real browser with challenge solving only if the target blocks us or requires JavaScript. This gives you the best success-to-cost ratio without you having to guess.

{ "url": "https://example.com", "mode": "auto" }

Use auto unless you have a specific reason not to.

fast

A direct, browserless HTTP request with rotating fingerprints. No JavaScript execution. It's the cheapest and fastest option and works great for static pages, JSON endpoints, and sitemaps.

{ "url": "https://api.example.com/data.json", "mode": "fast" }

Choose fast when you know the content is in the initial HTML response and the site isn't protected.

js_rendering

Loads the page in a real, headless browser. JavaScript runs, lazy content can load, and anti-bot challenges (Cloudflare, DataDome, etc.) are solved automatically. It's slower and costs more, but it gets through almost anything.

{
"url": "https://protected.example.com",
"mode": "js_rendering",
"js_wait_selector": ".main-content"
}

Choose js_rendering when content is rendered client-side, or when auto/fast returns a challenge page.

Decision guide

  1. Start with auto.
  2. If you need every request to be as cheap as possible and the site is static, pin fast.
  3. If you keep getting 502 or empty content, pin js_rendering and add a js_wait_selector.