DocsNetwork Interceptionbrowser_add_network_rule

browser_add_network_rule

Browser Add Network Rule

Add a rule to intercept network requests matching a URL pattern. Rules can block requests (e.g., ads, trackers), mock responses with custom data (useful for testing), or redirect to different URLs. Supports glob patterns (*.js, *://api.example.com/*) or regex for flexible matching. Returns a rule_id for later removal.

Usage Example

12345678910111213
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.add_network_rule(
context_id=context_id,
url_pattern="value",
action="allow"
)

Parameters

Required

context_idstringrequired

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

url_patternstringrequired

URL pattern to match requests against. Supports glob patterns (e.g., '*://api.example.com/*', '*.js') or regex if is_regex=true. Glob uses * for any characters, ? for single character

actionenum
allowblockmockredirect
required

What to do with matching requests: 'allow' lets them through (useful with blocking enabled), 'block' drops the request, 'mock' returns a fake response, 'redirect' sends to different URL

Optional

is_regexboolean

Treat url_pattern as a regular expression instead of glob pattern. Default: false (uses glob). Example regex: '^https://api\\.example\\.com/v[0-9]+/'

redirect_urlstring

The URL to redirect matching requests to. Only used when action='redirect'. Example: redirect tracking scripts to empty response

mock_bodystring

Response body to return for mocked requests. Only used when action='mock'. Can be JSON, HTML, or any text content. Example: '{"success": true}'

mock_statusstring

HTTP status code for mocked responses (e.g., 200, 404, 500). Only used when action='mock'. Default: 200

mock_content_typestring

Content-Type header for mocked responses. Only used when action='mock'. Examples: 'application/json', 'text/html', 'text/plain'. Default: 'text/plain'

Response

Returns a JSON object with the operation result.

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