Skip to main content
Use browser_curl when an agent needs an HTTP request to behave like it came from an existing browser session. The request goes through the browser’s Chrome network stack, so it can use the session’s cookies, proxy, network context, and origin behavior. This is useful after a browser has logged in to a site and the agent needs a JSON endpoint, a redirect target, or a binary asset without writing Playwright code for the request.
For documentation lookup or general web search, use search_docs or your agent’s normal search tool instead.
  1. Use manage_browsers or manage_browser_pools to get a browser with the right cookies, proxy, and profile.
  2. Call browser_curl with the returned session_id.
  3. Use response_encoding: "base64" when the response might be binary.
  4. Use execute_playwright_code instead when you need page JavaScript, DOM state, or user-visible navigation.

Parameters

ParameterDescription
session_idBrowser session ID. Required.
urlTarget http or https URL. Required.
methodHTTP method: GET, HEAD, POST, PUT, PATCH, DELETE, or OPTIONS. Defaults to GET.
headersCustom headers merged with browser defaults.
bodyRequest body for POST, PUT, or PATCH requests.
response_encodingResponse body encoding: utf8 or base64. Use base64 for binary content.
timeout_msRequest timeout in milliseconds. Must be 1 or greater.

Read an authenticated endpoint

{
  "session_id": "browser_2vDb5kRmZ4nP8xQ1cA7",
  "url": "https://app.example.com/api/account",
  "method": "GET",
  "headers": {
    "Accept": "application/json"
  },
  "timeout_ms": 10000
}

Post with browser cookies

{
  "session_id": "browser_2vDb5kRmZ4nP8xQ1cA7",
  "url": "https://app.example.com/api/tasks",
  "method": "POST",
  "headers": {
    "Content-Type": "application/json"
  },
  "body": "{\"title\":\"Run nightly checkout audit\"}",
  "response_encoding": "utf8"
}