Fetch lets you grab the content of any URL through Browserbase’s infrastructure as a lightweight complement to browser sessions. Use it for quick page retrievals where you don’t need interactivity, or ask Browserbase to turn the response into markdown or structured JSON for downstream agents and pipelines. Requests are routed through Browserbase with a real browser User-Agent by default, and you can optionally configure custom headers, proxies, redirects, and SSL behavior.Documentation Index
Fetch the complete documentation index at: https://docs.browserbase.com/llms.txt
Use this file to discover all available pages before exploring further.
Fetch doesn’t execute JavaScript and has a 5 MB content limit. Fetch also can’t convert PDF responses to markdown or structured JSON. For pages that require JavaScript rendering or are larger than 5 MB, use a browser session instead.
Request
Send a request with a URL and optional configuration:- Node.js
- Python
- cURL
SDK
Request parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | required | The URL to fetch. |
allowRedirects | boolean | false | Whether to follow HTTP redirects. |
allowInsecureSsl | boolean | false | Whether to bypass TLS certificate verification. Set to true for sites with self-signed or expired certificates. |
proxies | boolean | false | Route the request through Browserbase’s proxy network. |
format | "raw" | "markdown" | "json" | "raw" | Output format for content. Use raw for the upstream response body, markdown for a markdown version of the page, or json for structured extraction. |
schema | object | none | JSON Schema describing the structure you want returned in content. Only valid when format is json. |
Fetch vs. Fetch Extract
Fetch without aformat flag returns the page content directly, which makes it the cheapest option. This is normal Fetch.
When you set format: "markdown" or format: "json", Browserbase converts the page before returning it. This is Fetch Extract. That conversion makes Fetch Extract more expensive than normal Fetch, and Browserbase prices it separately in the pricing table.
Output formats
Use the same endpoint and SDK methods when you want cleaner output for LLMs or downstream systems.SDK support for
format: "markdown" and format: "json" is available in the Node SDK starting in @browserbasehq/sdk v2.12.0 and in the Python SDK starting in browserbase v1.11.0.Markdown output
format: "markdown" returns the fetched page content as markdown in the content field.
- Node.js
- Python
- cURL
SDK
Structured JSON output
format: "json" requires a schema. Browserbase returns the extracted result as structured JSON in the content field.
- Node.js
- Python
- cURL
SDK
Using proxies
If a site is blocking your request or returning a403 status code, enable Browserbase’s proxy network by setting proxies: true:
- Node.js
- Python
- cURL
SDK
Enabling proxies may increase response time. If speed is critical and the target site doesn’t require a proxy, leave this disabled.
Response
A successful response includes the page content along with metadata:content:
raw: the upstream response bodymarkdown: markdown generated from the fetched pagejson: a structured JSON object matching the schema you requested
Response fields
| Field | Type | Description |
|---|---|---|
statusCode | number | The HTTP status code returned by the target URL. |
headers | object | The HTTP response headers from the target URL. |
content | string | object | The page content. Raw and markdown responses return strings. JSON extraction returns a structured object matching your schema. Binary content is returned as a Base64-encoded string when encoding is base64. |
contentType | string | The MIME type of the response (e.g. text/html; charset=utf-8). |
encoding | string | Either utf-8 for text content or base64 for binary content. |
Error handling
Fetch returns structured errors when something goes wrong.Content too large (502)
Content too large (502)
If the response body exceeds 5 MB, you’ll receive a 502 error:To handle this, catch the error and fall back to a browser session:
- Node.js
- Python
SDK
Gateway Timeout (504)
Gateway Timeout (504)
The target page must respond within 60 seconds. If it takes longer, you’ll receive a timeout error:If you consistently hit this timeout, consider using a browser session instead — browser sessions support long-running page loads and JavaScript-heavy content.
SSL Error (502)
SSL Error (502)
If the target site has a TLS certificate issue (self-signed, expired, etc.), you’ll see an SSL error:To resolve this, set
allowInsecureSsl to true in your request:Limits
- Content size: 5 MB maximum. Responses exceeding this limit return a 502 error. See Content Too Large for how to detect and fall back to a browser session.
- Timeout: 60 seconds. Pages that take longer to respond will return a 504 error.
- No JavaScript execution: Fetch never renders the page in a browser. For pages that require JavaScript rendering, use a browser session.
- No PDF conversion: Fetch can’t convert PDF responses to markdown or structured JSON. For PDF content, use a browser session.
API reference
Fetch a page
Full API reference for the POST /v1/fetch endpoint.