  // PRODUCT# Scrapium

 Scrapfly's stealth Chromium browser for web scraping and agent automation. Drive it with Playwright, Puppeteer, Selenium, or Stagehand.

##  Patches Blink/V8 source directly. 4,000+ signals coherent. 

- **Anti-detect, proven in production.** 5B+ scrapes/month on blocked websites via the Scrapfly Web Scraping API.
- **Agentic by design.** We patch, fix, and add features for agent workflows: permissions, popups, tab-switching prevention, download handling, and more.
 
 [ Get Free API Key ](https://scrapfly.io/register) [ Developer Docs ](https://scrapfly.io/docs/cloud-browser-api/getting-started) 

 1,000 free credits. No credit card required. 

 

   

 FINGERPRINT DATA  LIVE  

















 

 

 + 4,000 more datapoints... 

 

 4,000+

 Fingerprint Datapoints 

200M+

 Proxy IPs 

50+

 Anti-Bots 

 



 

 

 

---

## 4,000+

signals patched at C++ level

 



 

## 550+

Chromium source files patched

 



 

## 345+

distinct GPU profiles across Windows / macOS / Linux

 



 

## auto

tracks every Chrome upstream release

 



 

 

 

---

 COVERAGE## Every Signal Patched

From TCP to behavior. One coherent identity across all layers.

 

 ##### Genuine Windows, macOS, Linux

Not a Linux process pretending to be Windows. Scrapium runs as an authentic Chrome build for each target OS. Windows Chrome renders with Windows fonts, Windows system colors, and the exact Blink build Chrome ships on that platform. The proxy chain guarantees OS-to-exit-peer alignment: a Windows browser always exits through a Windows peer, 100% coherent end to end. Same for macOS and Linux.

Windows

 

macOS

 

Linux

 

 

 



 

 

 ##### Every Signal Patched

4,000+ signals rewritten at Chromium source. Not monkey-patches. Not JS shims.

**4,000+**signals

**550+**files patched

**C++**not JS shims

 

[WebGL](https://scrapfly.io/web-scraping-tools/webgl-fingerprint)

[WebGPU](https://scrapfly.io/web-scraping-tools/gpu-fingerprint/webgpu)

[Canvas](https://scrapfly.io/web-scraping-tools/canvas-fingerprint)

[Audio](https://scrapfly.io/web-scraping-tools/audio-fingerprint)

[Navigator](https://scrapfly.io/web-scraping-tools/lies-detector)

[Fonts](https://scrapfly.io/web-scraping-tools/fonts)

[Codecs](https://scrapfly.io/web-scraping-tools/media-codecs)

[DRM](https://scrapfly.io/web-scraping-tools/drm-capabilities)

 

**Blink**rendering engine

**V8**JS runtime

**Skia**2D graphics

**Mojo**IPC layer

 

 



 

 ##### Patched Bottom To Top

From the network layer up. Every signal the browser exposes is rewritten at the layer it actually comes from, not spoofed on the way out.

  **Chrome Browser** navigator, canvas, WebGL, audio, plugins 

 

  **GPU** genuine GPU profile, not a spoofed renderer string 

 

  **CPU** hardwareConcurrency, perf timing coherent 

 

  **Memory** deviceMemory, allocation pattern jitter 

 

  **Host OS** device aligned to the proxy exit peer 

 

  **Network Over Proxy** HTTP/3, WebRTC, DNS-over-HTTPS. All tunneled via UDP proxy, no leaks 

 

 

 



 

 

 ##### Stays Current

Auto-tracks every Chrome release. Your traffic matches what real users run today, not last quarter.

**3 days**max lag from GA

 

 



 

 ##### Bypasses Every Major Antibot

Tested against production antibot stacks. Consistent pass rate across vendors.

[Cloudflare](https://scrapfly.io/bypass/cloudflare)

[DataDome](https://scrapfly.io/bypass/datadome)

[Akamai](https://scrapfly.io/bypass/akamai)

[PerimeterX](https://scrapfly.io/bypass/perimeterx)

[Imperva](https://scrapfly.io/bypass/incapsula)

[Kasada](https://scrapfly.io/bypass/kasada)

 

 [See full bypass coverage](https://scrapfly.io/bypass) 



 

 ##### Human-Like Behaviors

Emulates genuine human input. Indistinguishable from a real user session.

**Mouse**cursor pathing

**Keys**keymap + OS binding

**Scroll**velocity

 

 



 

 

 ##### End-To-End Geo Coherence

Proxy IP, timezone, locale, and language all agree. Detection systems flag any mismatch across the chain. Scrapium aligns every link automatically: proxy exit country decides timezone, timezone decides browser locale, locale decides languages, voices, text direction, and translation surface.

  **Proxy Exit IP** country, ASN, residential vs datacenter 

 

  **Timezone** IANA TZ matches proxy country, DST-aware 

 

  **Browser Locale** navigator.language, Accept-Language, Intl APIs (date format, currency, number format) 

 

  **Voices + Text Direction** SpeechSynthesis voices, RTL/LTR, translation surface 

 

 

 



 

 ##### Extension Support

Real users run extensions. Headless browsers usually don't, and detection systems use that as a signal. Scrapium covers both sides.

  **Spoof Installed Extensions** appear to carry common extensions (adblockers, password managers) without running them 

 

  **Load Custom Extensions** ship your own extension, manifest v2 or v3, for agentic workflows 

 

 

 



 

 

 ##### Localized DNS + Session Cache

Bots re-resolve DNS, re-handshake TLS, and re-negotiate HTTP/2 on every request. Real Chrome caches aggressively and returns fast on revisit. Scrapium mimics both the speed and the pattern.

Localized DNS resolvers

 

Per-session IP cache

 

TLS session resumption

 

 

 



 

 

 ##### Enriched Chrome DevTools Protocol

Scrapium extends the Chrome DevTools Protocol with extra domains for stealth controls, fingerprint overrides, session resumption, and file downloads. Drop-in compatible with Playwright, Puppeteer, Selenium, and Stagehand. Use the tools you already know, with capabilities genuine Chrome can't offer.

[Playwright](https://scrapfly.io/docs/cloud-browser-api/playwright)

[Puppeteer](https://scrapfly.io/docs/cloud-browser-api/puppeteer)

[Selenium](https://scrapfly.io/docs/cloud-browser-api/selenium)

[Stagehand](https://scrapfly.io/docs/cloud-browser-api/stagehand)

 

 [Read CDP reference](https://scrapfly.io/docs/cloud-browser-api/cdp-reference) 



 

 

 

---

 DEPTH## Down To The Last Bit

No fingerprint value is invented at the JavaScript boundary. Every one of them is the output of a chain that starts in a platform library the browser never wrote. Spoof the top of that chain and every layer underneath still answers honestly.

 

 ##### Five Layers Below The API

A detector reads the top layer. The number it reads was produced four layers down. Scrapium reproduces the chain from the platform math library upward, so the value arriving at JavaScript is the value that machine would really have produced.

  **JavaScript Surface** Math.tanh, measureText, getClientRects, getImageData, readPixels, getChannelData. The only layer a detection script can touch, and the last one to decide anything. 

 

  **Engine Math** V8 ieee754, Blink CSS calc() trigonometry, the GLSL shader ALU. Three separate math paths inside one browser, each resolving to a different backend. 

 

  **Text Rasterizer** FreeType on Linux, DirectWrite on Windows, CoreText on macOS. Decides every glyph advance and every antialiased coverage byte. Rebuilt for all three. 

 

  **Renderer** Mesa on GL, FXC to DXBC on Direct3D, AIR on Metal. Every vendor implements float32 transcendentals in its own silicon and its own compiler. 

 

  **Platform Math Library** glibc, ucrtbase.dll, libsystem\_m. The last bit of every transcendental the browser evaluates, and the layer nothing else can fake for you. 

 

 

**3**platform libms reproduced

**123**GPU shader-math families

**9,405**glyph advances bit-exact

**450,404**libm inputs verified

 

 



 

 

 ##### Platform Math Library

Chrome does not compute `Math.tanh` or CSS `sin()` itself. It calls the operating system's math library, and the three of them disagree in the last bits. Measured against Windows: glibc returns a different value on 2.4% of `tanh` inputs, 3.2% of `sin` and `cos`, 4.2% of `tan`, and 6.5% of `asin`. A Linux container claiming to be Windows leaks that on the first fractional input.

 | OS | Genuine backend | Scrapium |
|---|---|---|
| **Windows** | ucrtbase.dll (UCRT) | Microsoft's own DLL mapped and executed on Linux, on the same FMA path modern Windows selects |
| **macOS** | libsystem\_m | ARM64 code cannot be executed, so 11 routines were transcribed from disassembly with every fused multiply-add kept in position |
| **Linux** | glibc | genuine, the host already is Linux |

Fusion is not a detail. Whether a multiply and an add are fused decides the final bit, so the reproduction has to fuse in exactly the same places the original does. Validated input by input against real machines: `tanh` is bit-identical across 450,404 inputs.

 



 

 ##### Fonts And Glyph Drawing

At integer font sizes FreeType and DirectWrite agree bit for bit. At fractional sizes they diverge, which is why fingerprinting suites measure text at `24.5555px` instead of `24px`. FreeType floors the size to 1/64 of a pixel. DirectWrite snaps it to a 1/100 pixel staircase and then hints every glyph independently, so no single scale factor reproduces it.

 | **DirectWrite** | engine lifted and run on Linux, any face, any size |
|---|---|
| **CoreText** | genuine coverage bitmaps replayed per luminance band |
| **FreeType** | genuine |

macOS antialiases text differently depending on how bright the fill color is, so a glyph has a distinct coverage per brightness band. All four bands are reproduced, so canvas text matches byte for byte across the covered glyph set instead of merely coming close.

**9,405 / 9,405**advances bit-exact

 

 



 

 

 ##### Renderer And Shader Math

Draw a fragment shader that calls `sin`, `pow` and `asin`, read back a single pixel, and you have a signature of the GPU that rendered it. Our machines have no GPU, so an unpatched fork renders in software and returns the software signature while advertising an AMD or Apple renderer string. That contradiction is trivial to flag.

 | Backend | Shader-math signature |
|---|---|
| Software rasterizer (what an unpatched fork leaks) | `6edd405d` |
| AMD Radeon 840M, Direct3D 11 | `5e359d2f` |
| Apple M1 Max, Metal | `683a139e` |
| Intel Iris Xe, Mesa | `61fb3e86` |

Each one was recovered on its own terms. Windows runs Microsoft's real shader compiler and interprets the bytecode it emits. Linux reads Mesa's own compiler output, since Mesa is open source. Apple's GPU is neither, so it was swept function by function on real hardware until all 18 matched bit for bit.

**123**shader-math families

**662**renderer strings mapped

**18 / 18**functions bit-exact on Metal

 

 



 

 ##### Audio, Hyphenation, Canvas Readback

Antibot vendors probe all three of these directly. Each one resolves to a platform library that differs by operating system, so each one is reproduced.

  **Audio DSP** macOS builds oscillator wavetables with Apple's own vector FFT, x86 uses a different one. The samples differ by 1 to 22 float32 ULP, which is a stable macOS tell. 

 

  **Hyphenation** CSS hyphens:auto reads Apple's dictionaries on macOS and Android's everywhere else. Apple hyphenates 21 locales, the other set 52, and they break words in different places. 

 

  **Canvas Readback** Un-premultiplying a canvas is a per-driver transfer function. Blend order and texel normalization are reproduced too, not just the pixels going in. 

 

 

 



 

 

 

  FAQ## Frequently Asked Questions

 

  ### What is Scrapium?

 Scrapium is Scrapfly's proprietary stealth browser, built on Chromium. Chromium is the open-source codebase that Google Chrome itself is built on: same engine, same rendering, same wire format. Chrome adds proprietary Google services on top; Scrapium adds stealth patches and agentic features instead. It patches 4,000+ signals at the C++ engine level (not in JavaScript) across WebGL, Canvas, AudioContext, Navigator, Screen, WebRTC, DRM, font rendering, and sensors. Values are seeded deterministically per profile so every session is internally coherent.

 

   ### Is Scrapium proven at scale?

 Yes. Scrapium runs behind the Scrapfly Web Scraping API at 5B+ scrapes per month against blocked websites. Every Scrapfly customer hitting a target that needs a full browser is running through Scrapium without ever configuring it directly. Production workload, production detection vendors, production pass rates.

 

   ### What agentic features does Scrapium add?

 Scrapium is tuned for agent workflows (Playwright, Puppeteer, Selenium, Stagehand). We patch, fix, and extend Chrome capabilities specifically for automated and AI-driven use: programmable permission handling, popup and dialog control, tab-switching prevention, download handling, session resumption, and an enriched Chrome DevTools Protocol (extra CDP domains that genuine Chrome does not expose). Your agent framework sees a compliant Chrome, plus the hooks agents actually need.

 

   ### Can Scrapium emulate different operating systems?

 Yes. Scrapium runs as an authentic Chrome build for Windows, macOS, and Linux. Windows Chrome renders with Windows fonts, Windows system colors, and the exact Blink build Chrome ships on that platform. The proxy chain guarantees OS-to-exit-peer alignment: a Windows browser always exits through a Windows peer, 100% coherent end to end. Same for macOS and Linux.

 

   ### Do I configure Scrapium separately?

 No. Scrapium is part of the Scrapfly infrastructure and is selected automatically when the Scrapfly protection system determines it is the right tool for a given target. You call the standard Scrapfly scrape API. Browser selection, fingerprint profile assignment, and patch seeding all happen server-side.

 

   ### How does Scrapium stay current with Chrome?

 Our browser-engineering team auto-tracks every Chrome release. When a new Chrome stable ships, Scrapium ships the same patch target into the browser pool within days, maximum 3-day lag from GA, fully automated. No customer config, no version-lag fingerprint signal. Most stealth browsers run two or three versions behind, which is itself a detection signal: real users update Chrome automatically.

 

   ### How does Scrapium mimic browser caching?

 Detection systems time the sequence of DNS resolution, TLS handshake, and HTTP/2 negotiation. Real browsers on a return visit are fast because DNS is cached and TLS session tickets let 0-RTT resume. Most automated browsers re-resolve and re-handshake every request, which is a tell. Scrapium uses localized DNS resolvers geo-aligned to the proxy exit region, caches resolved IPs per session, and replays TLS session tickets when the server allows.

 

  

 

  ---

 // DUO### Alternate Scrapium and Curlium without getting caught.

Best of both worlds on the same target session. Use Curlium (HTTP client, 10-50x faster) when a page doesn't need JavaScript. Switch to Scrapium when it does. Same JA4 hash, same Chrome version, same proxy IP, same Accept-Language. Detection systems never see a fingerprint change mid-session.

- Same JA4 hash. Curlium and Scrapium emit identical TLS fingerprint.
- Same Chrome version. Both auto-tracked, never out of sync.
- Auto-routed per target. Scrapfly picks the right tool, you don't configure it.
 
 

 [ Get Free API Key ](https://scrapfly.io/register) [Read about Curlium](https://scrapfly.io/curlium)