Browser curl lets you run HTTP requests through Kernel browsers, automatically attaching the browser’s cookie jar, transport fingerprint, stealth and proxy settings, and other defaults that browsers send. This allows you to efficiently fetch resources from websites while getting the benefits of real browsers, including bot anti-detection and session cookie state.Documentation Index
Fetch the complete documentation index at: https://tbd-6fc993ce-hypeship-document-pool-profile-update-behavior.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Why use browser curl instead of fetch()
When you call fetch() or httpx, you’re on a different TLS stack, IP, cookie store, and header profile than the browsers your agents (or automations) are using. Browser curl runs requests directly through a Kernel browser’s networking stack.
What curl requests inherit from Kernel browsers
- Cookies and storage policy — Same cookie jar as the profile, including Chromium inclusion rules,
Set-Cookiepersistence, session cookies, encryption,SameSite, partitioning, and content settings. ResponseSet-Cookieheaders update that same profile. - Transport fingerprint — BoringSSL TLS, ALPN, HTTP/2, Alt-Svc, connection reuse, Happy Eyeballs, certificate verification, CT/HSTS policy.
- Network configuration — Proxy and PAC settings, DNS and Secure DNS, SSL and cert policy, cache, HTTP server properties, network quality signals.
- Default client behavior — Chromium user agent,
Accept-Language, brotli/zstd support, and typical fetch metadata behavior. - Chromium request lifecycle — Browser-managed redirects, decompression, HTTP authentication and client certificate eligibility, and cache behavior.
Streaming browser requests
Streaming requests go through the browser’s Chromium network stack, and the SDK mirrors platform-native HTTP ergonomics. You can stream or read the body incrementally, which avoids buffering the full payload in the browser for large responses.Buffered browser curl
Buffered browser curl calls the HTTP API and returns a single JSON envelope:status, headers, body, and duration_ms. Use it when the response is small enough to hold in memory and you want one structured object back—typical APIs, HTML snippets, and JSON payloads.
Buffered curl loads the entire response body into the browser process before it returns to you. Requesting a very large payload can exhaust memory and cause OOMs. For big downloads or unknown sizes, use streaming browser requests instead.
Concurrency limits
Browser curl concurrency is constrained by Chromium’s internal networking limits:- HTTP/1.x (direct) — About 6 sockets per host group and up to 256 active sockets per pool.
- Proxied chains — On the order of tens of sockets per proxy chain (Chromium clamps configured values into a bounded range).
- HTTP stream pool — Similar per-group and per-pool behavior to HTTP/1.x direct connections.
- HTTP/2 — Roughly 100 concurrent streams per session initially, updated from the server’s
SETTINGS_MAX_CONCURRENT_STREAMS, with an upper cap in Chromium (on the order of 256).