POST
Load a URL in a real browser and capture the document and data-level network traffic it makes — useful for reverse-engineering a page’s underlying API calls. Static assets (images, fonts, stylesheets, media, scripts) are still loaded and counted in the byte/request totals, but are omitted from network_calls since they’re noise for traffic inspection. This endpoint always renders in a browser and always captures network traffic — it does not accept js_render, output, only_main_content, prompt, or schema (unlike POST /scrape).

Request parameters (JSON body)

Required

  • url (string): Absolute HTTP or HTTPS URL to inspect.

Optional

  • method (string, default: GET): Only GET is supported.
  • body: Rejected — must be null.
  • geolocation (string): 2-letter ISO country code for proxy and browser selection.
  • session_id (string): Reuse cookies and headers across requests.
  • tag (string or array of strings): Echoed back in the response.
  • actions (array): Browser actions executed after page load, same shape as POST /scrape.
  • timeout (integer, 1000–60000).
  • wait_selector (string): CSS selector to wait for before returning.
  • wait_ms (integer, 0–60000): Extra browser settle wait.
  • override_parameter (object): headers, proxy, network_idle, load_dom, disable_resources.

Responses

  • 200: request_id, session_id, url, final_url, status, success, winning_attempt, tag, and attempts — one entry per strategy attempt, each with the usual diagnostics (strategy, elapsed_ms, http_status, byte/request counters) plus network_calls: every captured document/XHR/Fetch/WebSocket/EventSource request, with headers, request/response bodies (bounded), redirect chain, and failure reason when applicable.
  • 422: Invalid URL, method, body, action, proxy, or wait option.
  • 429: Session busy or concurrency limit reached.
  • 500: Unexpected internal error.
  • 502: Request safety failure.
  • 503: Browser or requested proxy provider is not configured.
  • 504: Browser capture exceeded the public request timeout budget.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Request body for browser network capture. Always renders in a browser and always captures network traffic — js_render, output, only_main_content, prompt, and schema are not accepted here.

url
string
required

Absolute HTTP or HTTPS URL to inspect.

method
string
default:GET

Browser navigation method. Only GET is supported.

body
any

Request body. Browser validation rejects non-null bodies.

geolocation
string | null

Two-letter ISO country code used for proxy and browser selection.

session_id
string | null

Session id used to reuse cookies and headers.

tag

Caller-defined label(s) echoed back in the response.

actions
ActionModel · object[]

Browser actions executed after page load.

timeout
integer | null
Required range: 1000 <= x <= 60000
wait_selector
string | null

CSS selector to wait for before returning.

wait_ms
integer | null

Extra browser settle wait in milliseconds.

Required range: 0 <= x <= 60000
override_parameter
BrowserNetworkOverrideParameter · object | null

Browser-only controls accepted by POST /browser/network.

Response

Document and data network calls plus diagnostics for every browser attempt; static assets are counted in the byte totals but omitted from network_calls

Network-only response envelope for one browser navigation.

session_id
string
required
url
string
required
final_url
string
required
status
integer
required
success
boolean
required
tag
string[]
required
attempts
AttemptModel · object[]
required

One entry per strategy attempt. Byte/request counters cover every browser request; network_calls only surfaces document and data traffic (static assets are counted in the totals but omitted from the list).

request_id
string | null
winning_attempt
integer | null

1-based index of the attempt that produced the response, when successful.