curl --request GET \
--url https://scraping-api.55-tech.com/browser \
--header 'X-API-Key: <api-key>'import requests
url = "https://scraping-api.55-tech.com/browser"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://scraping-api.55-tech.com/browser', 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://scraping-api.55-tech.com/browser",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-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"
"net/http"
"io"
)
func main() {
url := "https://scraping-api.55-tech.com/browser"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scraping-api.55-tech.com/browser")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scraping-api.55-tech.com/browser")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"meta": {
"status": 200,
"final_url": "https://example.com/",
"http_version": "",
"elapsed_ms": 3200,
"blocked": false,
"headers": {
"content-type": "text/html; charset=utf-8"
},
"agent": {
"id": "scraping-de5"
},
"bytes": 45210
},
"raw": "<!DOCTYPE html><html>...</html>",
"raw_json": null,
"cookies": [
{
"name": "session_id",
"value": "a1b2c3...",
"domain": ".example.com",
"path": "/",
"secure": true,
"httpOnly": true,
"sameSite": "Lax",
"expires": 1735689600
}
],
"screenshot": null,
"js_result": null
}Fetch with JavaScript rendering
Fetch a URL with full JavaScript rendering. Works just like /fetch — all parameters via headers.
Use this instead of /fetch when the target requires JavaScript to load content.
If X-Expect-Selector or X-Expect-Contains is set and the page doesn’t match, the API retries on a different node.
curl --request GET \
--url https://scraping-api.55-tech.com/browser \
--header 'X-API-Key: <api-key>'import requests
url = "https://scraping-api.55-tech.com/browser"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://scraping-api.55-tech.com/browser', 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://scraping-api.55-tech.com/browser",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-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"
"net/http"
"io"
)
func main() {
url := "https://scraping-api.55-tech.com/browser"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scraping-api.55-tech.com/browser")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scraping-api.55-tech.com/browser")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"meta": {
"status": 200,
"final_url": "https://example.com/",
"http_version": "",
"elapsed_ms": 3200,
"blocked": false,
"headers": {
"content-type": "text/html; charset=utf-8"
},
"agent": {
"id": "scraping-de5"
},
"bytes": 45210
},
"raw": "<!DOCTYPE html><html>...</html>",
"raw_json": null,
"cookies": [
{
"name": "session_id",
"value": "a1b2c3...",
"domain": ".example.com",
"path": "/",
"secure": true,
"httpOnly": true,
"sameSite": "Lax",
"expires": 1735689600
}
],
"screenshot": null,
"js_result": null
}Authorizations
API key passed in the X-API-Key header.
Headers
Target URL (no encoding needed). Recommended for URLs with query parameters.
When the page is ready: load (DOMContentLoaded), networkidle (no pending requests), or selector (wait for CSS selector).
load, networkidle, selector CSS selector to wait for (only with X-Wait-Strategy: selector).
Capture a full-page PNG screenshot. Set to 1 or true.
JavaScript to evaluate after the page is ready. Result returned in js_result.
CSS selector that must exist in the rendered page. Retries on a different node if missing.
Substring that must exist in the page body. Retries on a different node if missing.
JSON array of sequential browser actions (navigate, click, type, wait, evaluate, screenshot, sleep, etc.). Executes after page load, before capture.
Route through a proxy (http:// or socks5://).
Comma-separated resource types to block: image, font, stylesheet, media. No default for /browser.
Cookies to inject before navigation (standard format: name=value; name2=value2).
Cookies as JSON array for full control: [{"name":"s","value":"v","domain":".example.com"}].
Target countries as comma-separated ISO codes (e.g. US,DE,AT). Aliases: X-Geo-CC, X-CC, X-Country, X-Geo-Strict.
Route through specific agent(s) by slug (e.g. de1) or comma-separated list for random pick (e.g. de1,at5,us3).
Override request timeout in seconds (default: 30).
Response
Rendered page with metadata, cookies, and optional screenshot.
Show child attributes
Show child attributes
Rendered page body as text (when not JSON).
Parsed JSON body (when response is valid JSON, otherwise null).
All cookies captured during rendering, including httpOnly cookies.
Show child attributes
Show child attributes
Base64-encoded full-page PNG screenshot (null if not requested).
Return value of jsExpression evaluation (null if not provided).