Fetch a Page
Fetch a page and return its content, headers, and metadata.
curl --request POST \
--url https://api.browserbase.com/v1/fetch \
--header 'Content-Type: application/json' \
--header 'X-BB-API-Key: <api-key>' \
--data '
{
"url": "<string>",
"allowRedirects": false,
"allowInsecureSsl": false,
"proxies": false,
"format": "raw",
"schema": {}
}
'import requests
url = "https://api.browserbase.com/v1/fetch"
payload = {
"url": "<string>",
"allowRedirects": False,
"allowInsecureSsl": False,
"proxies": False,
"format": "raw",
"schema": {}
}
headers = {
"X-BB-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-BB-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: '<string>',
allowRedirects: false,
allowInsecureSsl: false,
proxies: false,
format: 'raw',
schema: {}
})
};
fetch('https://api.browserbase.com/v1/fetch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.browserbase.com/v1/fetch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>',
'allowRedirects' => false,
'allowInsecureSsl' => false,
'proxies' => false,
'format' => 'raw',
'schema' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-BB-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.browserbase.com/v1/fetch"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"allowRedirects\": false,\n \"allowInsecureSsl\": false,\n \"proxies\": false,\n \"format\": \"raw\",\n \"schema\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-BB-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.browserbase.com/v1/fetch")
.header("X-BB-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"allowRedirects\": false,\n \"allowInsecureSsl\": false,\n \"proxies\": false,\n \"format\": \"raw\",\n \"schema\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.browserbase.com/v1/fetch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-BB-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"allowRedirects\": false,\n \"allowInsecureSsl\": false,\n \"proxies\": false,\n \"format\": \"raw\",\n \"schema\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"statusCode": 123,
"headers": {},
"content": "<string>",
"contentType": "<string>",
"encoding": "<string>"
}{
"statusCode": 123,
"error": "<string>",
"message": "<string>",
"id": "<string>"
}"<unknown>""<unknown>"{
"statusCode": 123,
"error": "<string>",
"message": "<string>",
"id": "<string>"
}{
"statusCode": 123,
"error": "<string>",
"message": "<string>",
"id": "<string>"
}{
"statusCode": 123,
"error": "<string>",
"message": "<string>",
"id": "<string>"
}{
"statusCode": 123,
"error": "<string>",
"message": "<string>",
"id": "<string>"
}Authorizations
Your Browserbase API Key.
Body
The URL to fetch
Whether to follow HTTP redirects
Whether to bypass TLS certificate verification
Whether to enable proxy support for the request
Output format for the response content. raw (default) returns the response body unchanged; json returns structured data (requires schema); markdown returns the page as markdown.
raw JSON Schema describing the desired structure of the response. Only used when format is json.
Show child attributes
Show child attributes
Response
The request has succeeded.
Unique identifier for the fetch request
HTTP status code of the fetched response
Response headers as key-value pairs
Show child attributes
Show child attributes
The response body content. A string for raw and markdown formats; a structured object for json format (the schema-extracted result).
The MIME type of the response
The character encoding of the response
Was this page helpful?
curl --request POST \
--url https://api.browserbase.com/v1/fetch \
--header 'Content-Type: application/json' \
--header 'X-BB-API-Key: <api-key>' \
--data '
{
"url": "<string>",
"allowRedirects": false,
"allowInsecureSsl": false,
"proxies": false,
"format": "raw",
"schema": {}
}
'import requests
url = "https://api.browserbase.com/v1/fetch"
payload = {
"url": "<string>",
"allowRedirects": False,
"allowInsecureSsl": False,
"proxies": False,
"format": "raw",
"schema": {}
}
headers = {
"X-BB-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-BB-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: '<string>',
allowRedirects: false,
allowInsecureSsl: false,
proxies: false,
format: 'raw',
schema: {}
})
};
fetch('https://api.browserbase.com/v1/fetch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.browserbase.com/v1/fetch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>',
'allowRedirects' => false,
'allowInsecureSsl' => false,
'proxies' => false,
'format' => 'raw',
'schema' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-BB-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.browserbase.com/v1/fetch"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"allowRedirects\": false,\n \"allowInsecureSsl\": false,\n \"proxies\": false,\n \"format\": \"raw\",\n \"schema\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-BB-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.browserbase.com/v1/fetch")
.header("X-BB-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"allowRedirects\": false,\n \"allowInsecureSsl\": false,\n \"proxies\": false,\n \"format\": \"raw\",\n \"schema\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.browserbase.com/v1/fetch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-BB-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"allowRedirects\": false,\n \"allowInsecureSsl\": false,\n \"proxies\": false,\n \"format\": \"raw\",\n \"schema\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"statusCode": 123,
"headers": {},
"content": "<string>",
"contentType": "<string>",
"encoding": "<string>"
}{
"statusCode": 123,
"error": "<string>",
"message": "<string>",
"id": "<string>"
}"<unknown>""<unknown>"{
"statusCode": 123,
"error": "<string>",
"message": "<string>",
"id": "<string>"
}{
"statusCode": 123,
"error": "<string>",
"message": "<string>",
"id": "<string>"
}{
"statusCode": 123,
"error": "<string>",
"message": "<string>",
"id": "<string>"
}{
"statusCode": 123,
"error": "<string>",
"message": "<string>",
"id": "<string>"
}