Docsbrowser_search

browser_search

browser_search

One-shot web search tool. Creates a new context, navigates to the search engine, waits for results, extracts structured JSON search results (titles, URLs, snippets), and closes the context. Supports Google and DuckDuckGo with pagination.

When to use browser_search

Use browser_search when you need to automate a browser task. It is part of Owl Browser's automation toolset and runs inside a self-hosted, source-level stealth engine, so every call uses the same configured fingerprint controls as the rest of your automation. Detection still depends on the site, network, behavior, and profile consistency.

Usage Example

12345678910
import asyncio
from owl_browser import OwlBrowser, RemoteConfig
# Async usage
async with OwlBrowser(config) as browser:
context_id = await browser.create_context()
await browser.search(
query="value"
)

Parameters

Required

querystringrequired

The search query string (e.g., 'best restaurants in NYC', 'python tutorial')

Optional

providerenum
duckduckgogoogle

Search engine provider. 'duckduckgo' uses DuckDuckGo HTML-lite, 'google' uses Google Search. Default: duckduckgo

pageinteger

Page number for paginated results (1-based). Default: 1. For Google: appends &start=((page-1)*10). For DuckDuckGo: appends &s=((page-1)*10)

osenum
windowsmacoslinux

Filter profiles by operating system. Options: 'windows', 'macos', 'linux'

use_torboolean

Use TOR proxy for anonymous browsing. Each request gets a unique exit IP. Default: false

Response

Returns a JSON object with the operation result.

{
  "success": true,
  "result": <value>
}

Frequently Asked Questions

What does browser_search do?

One-shot web search tool. Creates a new context, navigates to the search engine, waits for results, extracts structured JSON search results (titles, URLs, snippets), and closes the context. Supports Google and DuckDuckGo with pagination. It belongs to Owl Browser's browser automation category and is available through the REST API, the Python SDK (browser.search()), the Node.js SDK, and the MCP server.

What parameters does browser_search accept?

browser_search accepts 1 required parameter (query) and 4 optional parameters. All parameters are sent as JSON in a POST request to /api/execute/browser_search.

Is browser_search detectable by anti-bot systems like Cloudflare or DataDome?

No. browser_search executes inside Owl Browser's Chromium engine, which applies fingerprint spoofing at the C++ source level rather than through JavaScript patches. Every tool call shares the same consistent, human-like fingerprint, so anti-bot systems such as Cloudflare, DataDome, and Akamai see an ordinary browser.

Related Tools

browser_go

One-shot browser navigation tool. Creates a new context, navigates to the URL, waits for page load, extracts the HTML, and closes the context. Optimized for single-page scraping or rendering tasks. Callable as POST /execute/browser_go or the GET /go?url=... convenience endpoint (page requests are always GET).

browser_set_content

Set the page's HTML content directly. Replaces the current page content with the provided HTML. The page URL will be 'about:blank'. Useful for rendering HTML templates, testing, or injecting content without making a network request.

browser_create_context

Create a new isolated browser context with its own cookies, storage, and optional proxy configuration. Each context acts as an independent browser session. Use this to create multiple isolated browsing sessions, configure proxy/Tor connections, load browser profiles with saved fingerprints, and enable/disable LLM features. Returns a context_id to use with other browser tools.

browser_navigate

Navigate the browser to a specified URL. This is a non-blocking operation that starts navigation and returns immediately. Use browser_wait_for_network_idle or browser_wait_for_selector to wait for the page to fully load. Supports HTTP, HTTPS, file, and data URLs. When wait_until is set (load, networkidle, fullscroll, domcontentloaded) and the page declares WebMCP tools, the response includes a webmcp_tools array containing the full tool definitions (name, description, inputSchema). Use browser_webmcp_call_tool to execute any of these tools directly.

browser_observe

Agent-native page observation. Returns the compacted OwlMark render (text-only structural view of the page), a handle table of interactive elements with stable tokens, page metadata, and a token estimate. Pass a handle token (e.g. 'b3') or 'pm:N' to browser_click/browser_type. Requires the context to be created with render_mode 'agent' or 'both'. ~20-100x fewer tokens than a screenshot for AI agent page understanding.

browser_click

Click on an element using CSS selector, XY coordinates, or natural language description. Supports semantic element finding using AI - describe what you want to click (e.g., 'login button', 'search icon') and the system will locate the right element. Simulates a real mouse click with proper event dispatch. Optionally hold the mouse button for press-and-hold interactions using hold_ms.

Browse the full Owl Browser API reference or get started with the Python SDK and Node.js SDK.