DocsContent Extractionbrowser_extract_site

browser_extract_site

browser_extract_site

Extract content from multiple pages of a website. Crawls links starting from a URL and extracts content in the specified format. Returns a job_id immediately for async progress tracking. Use browser_extract_site_progress to monitor and browser_extract_site_result to get output.

When to use browser_extract_site

Use browser_extract_site when you need to pull clean, structured data out of a rendered page. It is part of Owl Browser's Content Extraction toolset and runs inside a self-hosted, source-level stealth engine, so every call inherits the same undetectable browser fingerprint as the rest of your automation — no separate anti-detect setup required.

Usage Example

123456789101112
import asyncio
from owl_browser import OwlBrowser, RemoteConfig
# Async usage
async with OwlBrowser(config) as browser:
context = await browser.create_context()
context_id = context["context_id"]
await browser.extract_site(
context_id=context_id,
url="https://example.com"
)

Parameters

Required

context_idstringrequired

The unique identifier of the browser context (e.g., 'ctx_000001')

urlstringrequired

Starting URL to begin extraction from

Optional

depthinteger

How many link levels to follow from the starting page. Default: 2. Higher values extract more pages but take longer

max_pagesinteger

Maximum number of pages to extract. Default: 5. Limits total extraction to prevent runaway crawling

follow_externalboolean

Whether to follow links to external domains. Default: false. When false, only links within the same domain are followed

output_formatenum
markdowntextjson

Output format for extracted content: 'markdown' (default), 'text', or 'json'. Markdown preserves structure, text is plain, JSON includes metadata

include_imagesboolean

Include resolved image URLs in output. Default: true

include_metadataboolean

Include page title and description metadata. Default: true

exclude_patternsarray

Array of URL patterns to skip (glob patterns). Example: ["*/login*", "*/admin/*"]

timeout_per_pageinteger

Timeout per page in milliseconds. Default: 10000 (10 seconds)

Response

Returns a JSON object with the operation result.

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

Frequently Asked Questions

What does browser_extract_site do?

Extract content from multiple pages of a website. Crawls links starting from a URL and extracts content in the specified format. Returns a job_id immediately for async progress tracking. Use browser_extract_site_progress to monitor and browser_extract_site_result to get output. It belongs to Owl Browser's Content Extraction category and is available through the REST API, the Python SDK (browser.extract_site()), the Node.js SDK, and the MCP server.

What parameters does browser_extract_site accept?

browser_extract_site accepts 2 required parameters (context_id, url) and 8 optional parameters. All parameters are sent as JSON in a POST request to /api/execute/browser_extract_site.

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

No. browser_extract_site 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_extract_text

Extract visible text content from the page or a specific element. Returns plain text stripped of HTML tags. Optionally target a specific element using CSS selector or natural language description. When the selector matches multiple elements, returns a JSON array of text strings. Optionally apply a regex pattern to filter/extract specific content from the text (applied per-element when multiple matches). Useful for reading page content, extracting article text, getting form values, or extracting specific data like numbers, emails, or prices.

browser_get_html

Extract HTML content with configurable cleaning levels. Optionally target a specific element using a CSS selector to get its innerHTML instead of the full page. When the selector matches multiple elements, returns a JSON array of HTML strings. 'minimal' preserves most structure, 'basic' removes scripts and styles, 'aggressive' strips to essential content. Useful for page analysis, content extraction, and feeding HTML to other processing tools.

browser_get_markdown

Convert the page content to clean Markdown format. Preserves headings, links, images, lists, and basic formatting. Much more readable than HTML for text analysis. Optionally control inclusion of links and images, and limit output length for large pages.

browser_extract_site_progress

Get progress of a site extraction job. Returns pages_completed, pages_total, current_url, and status. Status can be: 'running', 'completed', 'cancelled', or 'error'.

browser_extract_site_result

Get the result of a completed site extraction job. Returns the formatted content based on the output_format specified when starting the job (markdown, text, or json).

browser_extract_site_cancel

Cancel a running site extraction job. Returns success status.

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