# Browserless Documentation

> Guides, references, and examples for Browserless

This file lists all documentation pages for AI systems and developers. Use the narrative guides for workflow decisions and the reference docs for exact parameters and schemas. For the full content of every page in a single file, see [llms-full.txt](https://docs.browserless.io/llms-full.txt).


## Start Here

- [API Token Management](https://docs.browserless.io/overview/api-keys): Learn how to view, copy, and rotate your Browserless API token from the dashboard. Includes best practices for API token security and rotation.
- [API Comparison](https://docs.browserless.io/overview/comparison): Compare BrowserQL, BaaS v2, and REST APIs to choose the right Browserless API for your browser automation, web scraping, or bot detection bypass needs.
- [Connection URLs and Endpoints](https://docs.browserless.io/overview/connection-urls): Browserless uses HTTPS for BrowserQL and REST APIs, and WebSocket connections for BaaS sessions. Pick the host that matches your fleet, then choose the path that matches your browser or API.
- [Dashboard Overview](https://docs.browserless.io/overview/dashboard): Navigate the Browserless dashboard to manage your API keys, monitor usage, view sessions, and configure your browser automation infrastructure.
- [Overview](https://docs.browserless.io/overview/intro): Browserless provides managed headless browsers in the cloud. Run Puppeteer, Playwright, or GraphQL queries against real browsers without managing infrastructure.
- [Launch Parameters](https://docs.browserless.io/overview/launch-parameters): Configure how browsers launch and behave with query parameters. This section covers the shared options used across BrowserQL, BaaS v2, and REST APIs.

## BrowserQL

- [JavaScript Evaluation with evaluate](https://docs.browserless.io/browserql/advanced-config/multi-line-javascript): The evaluate mutation allows you to execute JavaScript in the browser's page environment. For multi-line scripts, you must wrap your code in an IIFE (Immediately Invoked Function Expression) using triple quotes:
- [Parsing Libraries](https://docs.browserless.io/browserql/advanced-config/parsing-libraries): BrowserQL retrieves HTML from any page and passes it to parsing libraries like Beautiful Soup, Scrapy, or Cheerio. Use it to handle JavaScript rendering, bot protection, or any interaction required before you can access the HTML you want to parse.
- [BQL Best Practices](https://docs.browserless.io/browserql/best-practices): We recommend you use the following best practices to make the most out of BQL. This guide covers essential patterns that will make your browser automation more reliable and maintainable.
- [Bot Detection](https://docs.browserless.io/browserql/bot-detection/overview): BrowserQL includes built-in tools for bypassing bot detection on protected and heavily monitored pages. This section covers the stealth route, proxies, CAPTCHA solving, and browser fingerprinting.
- [Proxies](https://docs.browserless.io/browserql/bot-detection/proxies): BrowserQL supports built-in residential and datacenter proxies, as well as external third-party proxies. Use built-in proxies for IP rotation, geographic routing, and session stickiness. Use external proxies to route traffic through your own proxy provider.
- [CAPTCHA Solving](https://docs.browserless.io/browserql/bot-detection/solving-captchas): Solve CAPTCHAs automatically with BrowserQL, including reCAPTCHA and custom image-based challenges.
- [Stealth Route](https://docs.browserless.io/browserql/bot-detection/stealth): The stealth route (/stealth/bql) is a hardened endpoint for BrowserQL that applies comprehensive browser fingerprint mitigations and entropy injection. It replaces the default /bql route and requires no additional configuration to activate its protections.
- [Quick Start](https://docs.browserless.io/browserql/getting-started): Follow these steps to run your first BrowserQL query:
- [Launch Parameters](https://docs.browserless.io/browserql/launch-parameters): Launch parameters configure how browsers start and behave in your sessions. You can pass them as individual query parameters or as a single JSON launch parameter in the URL.
- [Cookie Management](https://docs.browserless.io/browserql/session-management/injecting-cookies): Set and retrieve cookies in BrowserQL for authentication, session state, and personalized automation workflows.
- [Persisting State](https://docs.browserless.io/browserql/session-management/persisting-state): The Session REST API creates long-lived browser sessions that maintain cookies, localStorage, and other browser state across multiple BQL query runs. State persists even after you disconnect and reconnect to the same session. Depending on your plan, session data can persist for up to 90 days.
- [Puppeteer & Playwright](https://docs.browserless.io/browserql/session-management/puppeteer-playwright): Connect Puppeteer or Playwright to BrowserQL sessions using the reconnect mutation.
- [Session Reconnect](https://docs.browserless.io/browserql/session-management/reconnect-to-browserless): Reuse an existing browser session across multiple BrowserQL queries without restarting the browser.
- [Session Replay](https://docs.browserless.io/browserql/session-management/session-replay): Session Replay in BrowserQL captures your browser sessions as interactive replays viewable in your Browserless dashboard. Using RRWeb technology, it records DOM mutations, mouse movements, clicks, scrolling, keyboard input, console logs, and network requests. This creates lightweight, high-fidelity recordings that can be played back at any speed. Not to confuse this feature with Screen Recording (record=true), which captures WebM video files, as it's only available for BaaS connections and not BQL.
- [BrowserQL](https://docs.browserless.io/browserql/start): BrowserQL is a GraphQL API for browser automation with built-in stealth capabilities, CAPTCHA solving, and human-like behavior for web scraping at scale.
- [PDF Generation](https://docs.browserless.io/browserql/use-cases/pdfs): Generate PDFs with BrowserQL including custom headers, footers, page numbers, and HTML content rendering.
- [Search Automation](https://docs.browserless.io/browserql/use-cases/performing-searches): Automate search interactions with BrowserQL using click and type mutations, with support for dynamic results, modal handling, and response interception.
- [Data Scraping and Extraction](https://docs.browserless.io/browserql/use-cases/scrape-and-extract-data): Extract data from web pages with BrowserQL using HTML, mapSelector, querySelectorAll, response interception, and JavaScript evaluation.
- [Screenshots](https://docs.browserless.io/browserql/use-cases/screenshots): Capture screenshots with BrowserQL including full-page, element-specific, transparent background, and clipped regions.
- [Form Submission](https://docs.browserless.io/browserql/use-cases/submitting-forms): Automate form submission with BrowserQL using type, click, select, and checkbox mutations, including support for CAPTCHAs, iframes, and shadow DOM.
- [BQL IDE Features](https://docs.browserless.io/browserql/using-the-ide/ide-features): Built-in documentation, history tracking, and code export to multiple languages in the BrowserQL Editor.
- [IDE Session Settings](https://docs.browserless.io/browserql/using-the-ide/session-settings): Configure multiple BrowserQL sessions with different browsers, proxies, viewports, and human-like behavior settings.
- [BQL API Calls](https://docs.browserless.io/browserql/using-the-ide/using-api-calls): BrowserQL allows you to design queries in the IDE and then export them as ready-to-use API calls in multiple programming languages.
- [Conditional Logic in BQL](https://docs.browserless.io/browserql/writing-bql/conditional-logic): if and ifnot are BrowserQL mutations that execute nested operations based on a condition. if runs its body when the condition matches; ifnot runs its body when it does not. Neither can be nested inside the other. Use sequential conditionals with compound selectors for multi-branch logic.
- [Variables and the @export Directive](https://docs.browserless.io/browserql/writing-bql/exporting-variables): The @export directive saves a field's value into a named variable you can reference in later actions of the same query.
- [BQL Language Basics](https://docs.browserless.io/browserql/writing-bql/language-basics): Learning a new language can be intimidating, but mastering BQL doesn't have to be difficult. This guide provides a straightforward overview of how to write BQL with clear examples.
- [Wait Conditions](https://docs.browserless.io/browserql/writing-bql/waiting-for-things): Use these waiters to pause execution until a specific page condition is met:

## Browsers as a Service (BaaS)

- [Advanced Hybrid Automation Configurations](https://docs.browserless.io/baas/advanced-configurations/hybrid-automation-configurations): This page is the comprehensive reference for all Browserless.liveURL options and advanced patterns. It covers bandwidth tuning, viewport control, recording integration, CAPTCHA fallback handling, multi-stage workflows, and error recovery.
- [Playwright Configurations](https://docs.browserless.io/baas/advanced-configurations/playwright-customizations): This page covers advanced Playwright configurations for users already familiar with basic Playwright connections to Browserless. If you haven't set up your basic connection yet, start with our Quick Start guide.
- [Puppeteer Configurations](https://docs.browserless.io/baas/advanced-configurations/puppeteer-customizations): Advanced Puppeteer configurations for CDP monitoring, network tracking, and performance optimization with Browserless.
- [Best Practices](https://docs.browserless.io/baas/best-practices): This page covers essential practices for creating reliable Puppeteer and Playwright scripts with Browserless. Follow these patterns to avoid common pitfalls, improve performance, and keep your automation code maintainable.
- [CAPTCHA Solving](https://docs.browserless.io/baas/bot-detection/captchas): Browserless detects and solves CAPTCHAs programmatically using Chrome DevTools Protocol events and commands. Use stealth routes to prevent CAPTCHAs from appearing in the first place. This page covers what to do when they still appear.
- [Bot Detection Overview](https://docs.browserless.io/baas/bot-detection/overview): Bypass anti-bot systems with stealth techniques, intelligent CAPTCHA solving, and residential proxies for browser automation.
- [Stealth Routes](https://docs.browserless.io/baas/bot-detection/stealth): Stealth routes use path-based semantics and the Chrome DevTools Protocol to provide stronger anti-detection than solutions like puppeteer-stealth. They are the recommended first step for BaaS users: changing your connection URL is all that's required to get started.
- [Site Unblocking](https://docs.browserless.io/baas/bot-detection/unblocking): Site unblocking uses the Unblock API or BrowserQL to bypass bot detection without relying on automation libraries that leave detectable traces. Start with stealth routes first. Use unblocking when stealth routes alone can't bypass a site's defenses.
- [User Agent Masking](https://docs.browserless.io/baas/bot-detection/user-agent-masking): Control your browser's user agent to improve site compatibility and reduce bot detection signals.
- [Connection URL Patterns](https://docs.browserless.io/baas/connection-url-patterns): Reference for all valid WebSocket connection URL paths, protocol modes, and query parameter patterns for connecting to Browserless.
- [Authenticated Profiles](https://docs.browserless.io/baas/features/authenticated-profiles): Capture authentication state from a browser session once and reuse it across many parallel sessions without resharing credentials.
- [Browser Extensions](https://docs.browserless.io/baas/features/browser-extensions): Extension support is only available when using the Chromium browser.
- [File Transfers](https://docs.browserless.io/baas/features/file-transfers): File uploads and downloads require specific handling when the browser runs on a remote server instead of your local machine. This page covers both directions.
- [Proxies](https://docs.browserless.io/baas/features/proxies): Browserless offers two approaches to using proxies with your browser automation:
- [Screen Recording](https://docs.browserless.io/baas/features/screen-recording): Capture browser sessions as WebM video files with CDP-based start/stop controls, audio support, and LiveURL integration.
- [Session Replay](https://docs.browserless.io/baas/features/session-replay): Capture browser sessions as interactive DOM-based replays viewable in your Browserless dashboard.
- [Load Balancers](https://docs.browserless.io/baas/infrastructure/load-balancers): The Cloud Subscription plans and Dedicated plans have load balancing mechanisms built-in. This documentation will provide further information on how they work on each plan.
- [Supported Browsers](https://docs.browserless.io/baas/infrastructure/supported-browsers): Browser support matrix for Chromium, Chrome, Stealth, Firefox, WebKit, and Edge with Puppeteer and Playwright compatibility.
- [Hybrid Automation](https://docs.browserless.io/baas/interactive-browser-sessions/hybrid-automation): Pause an automated script, hand control to a human via a secure live URL, and resume automation once they finish.
- [Live Debugger](https://docs.browserless.io/baas/interactive-browser-sessions/live-debugger): Monitor and debug browser automation sessions in real-time with network inspection, console output, and element inspection.
- [Launch Options](https://docs.browserless.io/baas/launch-options): Configure browser behavior via connection string parameters for Puppeteer, Playwright, and other automation libraries.
- [Beautiful Soup (Python)](https://docs.browserless.io/baas/libraries/beautifulsoup): Beautiful Soup is one of the most popular scraping libraries for Python. It parses HTML strings so you can extract structured data. Use it alongside the /content API or BrowserQL to scrape any website.
- [Go (chromedp)](https://docs.browserless.io/baas/libraries/chromedp/): Browserless supports the chromedp Go library in beta. The usage mirrors a local setup: use the RemoteAllocator to connect to the Browserless API instead of a local browser.
- [PHP](https://docs.browserless.io/baas/libraries/php): Integrate Browserless with PHP using cURL, Guzzle, Laravel SDK, Symfony, or WordPress for browser automation.
- [Pyppeteer (Python) - UNMAINTAINED](https://docs.browserless.io/baas/libraries/pyppeteer): We suggest not using this library anymore as it is now unmaintained, please consider playwright-python as an alternative
- [Scrapy (Python)](https://docs.browserless.io/baas/libraries/scrapy): Use Scrapy alongside the /content API or BrowserQL to scrape data. Implement the start_requests() method to query /content or BrowserQL, and keep your scraping logic the same.
- [Migration Guide](https://docs.browserless.io/baas/migrate): For users on the Shared Fleet
- [Quick Start](https://docs.browserless.io/baas/quick-start): Connect to Browserless using Puppeteer or Playwright via Chrome DevTools Protocol websockets for stable browser automation.
- [Session Management](https://docs.browserless.io/baas/session-management): Understand how browser session persistence works in Browserless and choose the right approach for your use case.
- [Persisting State](https://docs.browserless.io/baas/session-management/persisting-state): The Session API lets you create browser sessions via REST. It returns a set of URLs and a WebSocket endpoint you use to connect and manage the session lifecycle. Data (cookies, localStorage, cache) persists for days, even after the browser process closes and restarts. Each session is backed by an isolated userDataDir, the same Chrome mechanism used for user profiles, provisioned and scoped per-session by Browserless to ensure data isolation across connections on shared fleets.
- [Standard Sessions](https://docs.browserless.io/baas/session-management/standard-sessions): Maintain browser state across connections with Puppeteer. Keep users logged in and preserve data between script runs.
- [Browsers as a Service](https://docs.browserless.io/baas/start): Connect Puppeteer or Playwright to managed headless browsers over WebSocket. Run your existing automation code with no infrastructure management required.
- [Whitelisting IP Addresses](https://docs.browserless.io/baas/troubleshooting/whitelisting-ips): If your target infrastructure restricts inbound traffic by IP address, you need to whitelist the outbound IPs used by Browserless's shared fleet. The IPs listed below are automatically updated from our live infrastructure and may change periodically as we scale or perform maintenance.
- [/config API](https://docs.browserless.io/baas/v1/apis/config): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/content API](https://docs.browserless.io/baas/v1/apis/content): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/download API](https://docs.browserless.io/baas/v1/apis/download): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/function API](https://docs.browserless.io/baas/v1/apis/function): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/kill API](https://docs.browserless.io/baas/v1/apis/kill): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/metrics API](https://docs.browserless.io/baas/v1/apis/metrics): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Browserless API Index](https://docs.browserless.io/baas/v1/apis/overview): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/pdf API](https://docs.browserless.io/baas/v1/apis/pdf): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/pressure API](https://docs.browserless.io/baas/v1/apis/pressure): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/scrape API](https://docs.browserless.io/baas/v1/apis/scrape): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/screencast API](https://docs.browserless.io/baas/v1/apis/screencast): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/screenshot API](https://docs.browserless.io/baas/v1/apis/screenshot): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/sessions API](https://docs.browserless.io/baas/v1/apis/sessions): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/stats API](https://docs.browserless.io/baas/v1/apis/stats): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [/workspace API](https://docs.browserless.io/baas/v1/apis/workspace): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Docker Configuration](https://docs.browserless.io/baas/v1/docker/config): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Extending the Docker Image](https://docs.browserless.io/baas/v1/docker/extending-docker): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Docker Quick Start](https://docs.browserless.io/baas/v1/docker/quickstart): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Docker Webhooks](https://docs.browserless.io/baas/v1/docker/webhooks): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Best Practices](https://docs.browserless.io/baas/v1/hosted-service/best-practices): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Browserless GraphQL API](https://docs.browserless.io/baas/v1/hosted-service/graphql-api): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [How it works](https://docs.browserless.io/baas/v1/hosted-service/how-it-works): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Load Balancers](https://docs.browserless.io/baas/v1/hosted-service/load-balancers): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Proxies](https://docs.browserless.io/baas/v1/hosted-service/proxying): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Browserless Terminology](https://docs.browserless.io/baas/v1/hosted-service/terminology): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Using your API token](https://docs.browserless.io/baas/v1/hosted-service/token): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Versions on the usage based service](https://docs.browserless.io/baas/v1/hosted-service/versions): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Whitelisting the IP addresses of the shared fleet](https://docs.browserless.io/baas/v1/hosted-service/whitelist): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Worker settings](https://docs.browserless.io/baas/v1/hosted-service/worker-settings): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Capybara](https://docs.browserless.io/baas/v1/libraries/capybara): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Go (chromedp)](https://docs.browserless.io/baas/v1/libraries/go-cdp): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Java (Selenium)](https://docs.browserless.io/baas/v1/libraries/java): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [PHP (cURL)](https://docs.browserless.io/baas/v1/libraries/php): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Playwright](https://docs.browserless.io/baas/v1/libraries/playwright): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Python (Playwright)](https://docs.browserless.io/baas/v1/libraries/playwright-python): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Puppeteer](https://docs.browserless.io/baas/v1/libraries/puppeteer): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Pyppeteer (Python) - UNMAINTAINED](https://docs.browserless.io/baas/v1/libraries/pyppeteer): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the maintained BaaS v2 Quick Start, Playwright configurations, or BrowserQL.
- [Scrapy (Python)](https://docs.browserless.io/baas/v1/libraries/scrapy): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Selenium](https://docs.browserless.io/baas/v1/libraries/selenium): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [.NET Selenium (C#)](https://docs.browserless.io/baas/v1/libraries/selenium-dotnet): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Python (Selenium)](https://docs.browserless.io/baas/v1/libraries/selenium-python): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Using /get API](https://docs.browserless.io/baas/v1/options/api-get): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Launch Options](https://docs.browserless.io/baas/v1/options/chrome-flags): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [How to bypass bot detection](https://docs.browserless.io/baas/v1/recipes/bot-detection): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Dealing with file downloads in puppeteer](https://docs.browserless.io/baas/v1/recipes/downloading-files): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Setting a user agent](https://docs.browserless.io/baas/v1/recipes/setting-a-user-agent): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Using a proxy in Puppeteer](https://docs.browserless.io/baas/v1/recipes/using-a-proxy): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Watching your sessions](https://docs.browserless.io/baas/v1/recipes/watch-sessions): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Quick Start](https://docs.browserless.io/baas/v1/start): This documentation is for BaaS v1, which is no longer actively supported. If you are a new user, please refer to the updated documentation for BaaS v2 or BrowserQL.
- [Version Compatibility](https://docs.browserless.io/baas/versions): Browserless workers are updated periodically with new browser and library versions. Matching your client library version to the versions running on our workers is important, especially for Playwright's connect method, which is tightly version-coupled. If your code is unexpectedly crashing, version mismatch is a common cause.

## REST APIs

- [API Playground](https://docs.browserless.io/rest-apis/api-playground): Test REST API endpoints interactively with the API Playground. Build requests, configure parameters, and see responses in real-time.
- [Content API](https://docs.browserless.io/rest-apis/content): Fetch fully rendered HTML from a headless browser, including JavaScript-rendered content. Ideal for client-rendered pages where scripts must run before content is available.
- [Crawl API](https://docs.browserless.io/rest-apis/crawl): Asynchronously crawl a website and scrape every discovered page. Returns structured, LLM-ready data with configurable depth, path filters, and webhook notifications.
- [Download API](https://docs.browserless.io/rest-apis/download): Run custom Puppeteer code and return files that Chrome downloads during execution. Supports ESM imports and JSON payloads with context variables.
- [Export API](https://docs.browserless.io/rest-apis/export): Fetch a URL and stream the result in its native content type including HTML, PDF, images, or zip archives with all linked resources.
- [Function API](https://docs.browserless.io/rest-apis/function): Execute custom Puppeteer code via HTTP requests without installing libraries. Return JSON, PDFs, or any content type from serverless browser functions.
- [REST APIs](https://docs.browserless.io/rest-apis/intro): Browserless REST APIs provide HTTP endpoints for screenshots, PDFs, content scraping, file downloads, and website unblocking without managing browser infrastructure.
- [Launch Parameters and Options](https://docs.browserless.io/rest-apis/launch-parameters): Configure how browsers are launched including headless mode, stealth, proxies, window size, and Chrome flags via query parameters or JSON payloads.
- [Map API](https://docs.browserless.io/rest-apis/map): Discover all URLs on a website. Returns a structured list of pages with optional titles and descriptions.
- [PDF API](https://docs.browserless.io/rest-apis/pdf-api): Generate PDFs from web pages or raw HTML using a headless Chrome-based PDF API. Supports Puppeteer-style options for layout, headers, footers, and backgrounds.
- [Performance API](https://docs.browserless.io/rest-apis/performance): Run Lighthouse audits via API and return metrics for accessibility, best practices, performance, PWA, and SEO scoring.
- [Proxies](https://docs.browserless.io/rest-apis/proxies): Use Browserless built-in residential and datacenter proxies with REST API requests by adding proxy parameters to your query strings.
- [Request Configuration](https://docs.browserless.io/rest-apis/request-configuration): Configure shared options across all REST API endpoints including wait conditions, navigation behavior, resource blocking, and error handling.
- [Scrape API](https://docs.browserless.io/rest-apis/scrape): Extract structured JSON from rendered pages using CSS selectors. Include a URL and elements array to capture content.
- [Screenshot API](https://docs.browserless.io/rest-apis/screenshot-api): Capture full-page or viewport screenshots of any URL in PNG, JPEG, or WebP formats using a headless browser.
- [Search API](https://docs.browserless.io/rest-apis/search): Search the web and optionally scrape each result page. Returns structured, LLM-ready data as markdown, HTML, links, or screenshots.
- [Smart Scrape API](https://docs.browserless.io/rest-apis/smart-scrape): Intelligently scrape any URL using cascading strategies. Automatically escalates from fast HTTP fetching to headless browsers and captcha solving as needed. Returns HTML, markdown, screenshots, PDFs, or extracted links.
- [Timeout Configuration](https://docs.browserless.io/rest-apis/timeouts): Configure timeouts for Browserless REST APIs including navigation, selector, function, and event timeouts.
- [Unblock API](https://docs.browserless.io/rest-apis/unblock): Bypass CAPTCHAs and bot detection, then return content, cookies, screenshots, or a browserWSEndpoint for automation.

## Enterprise and Self-Hosted

- [Production Best Practices](https://docs.browserless.io/enterprise/docker/best-practices): Production best practices for deploying and managing Browserless Enterprise Docker containers at scale.
- [Migrating from Cloud to Self-Hosted](https://docs.browserless.io/enterprise/docker/cloud-to-self-hosted): Move from Browserless Cloud to a self-hosted Enterprise deployment. Covers what changes, what stays the same, and common pitfalls.
- [Docker Configuration Reference](https://docs.browserless.io/enterprise/docker/config): Configure Browserless Docker containers with environment variables for sessions, timeouts, security, and monitoring.
- [Adding Custom Routes](https://docs.browserless.io/enterprise/docker/custom-routes): Extend the Browserless Enterprise image with your own HTTP or WebSocket routes — for example, an unauthenticated healthcheck for Kubernetes probes.
- [Enterprise Deployment Guide](https://docs.browserless.io/enterprise/docker/enterprise-image): Deploy and manage Browserless Enterprise Docker Image with advanced session management, monitoring, and multi-browser support.
- [Extending the Docker Image](https://docs.browserless.io/enterprise/docker/extending): For hosted accounts, contact us to use a third-party module.
- [NGINX Load Balancing](https://docs.browserless.io/enterprise/docker/nginx-load-balancing): NGINX acts as a reverse proxy and load balancer for Browserless Docker containers, providing SSL termination, traffic distribution across multiple instances, and automatic failover through health monitoring.
- [OpenTelemetry Integration](https://docs.browserless.io/enterprise/docker/opentelemetry): Export traces, metrics, and logs from Browserless Enterprise to any OTLP-compatible backend.
- [Enterprise Docker Overview](https://docs.browserless.io/enterprise/docker/overview): The Enterprise Docker image lets you run Browserless on your own infrastructure. You get full control over where your data lives, how your containers scale, and what network policies apply. The image supports the same APIs, WebSocket connections, and browser automation features as all other Browserless deployment options.
- [Docker Webhooks](https://docs.browserless.io/enterprise/docker/webhooks): Configure Docker webhooks to receive HTTP callbacks when sessions are queued, rejected, timed out, or encounter errors.
- [Launch Options](https://docs.browserless.io/enterprise/launch-options): Configure per-session browser behavior via launch parameters on the WebSocket connection URL for Enterprise deployments.
- [Live Debugger](https://docs.browserless.io/enterprise/live-debugger): Debug headless browser scripts with the self-hosted Live Debugger featuring syntax highlighting, screencasts, and DevTools.
- [Built-in Queueing System](https://docs.browserless.io/enterprise/long-queues): Browserless includes a built-in queueing system that manages browser concurrency and request flow. The system prevents your infrastructure from being overwhelmed by too many simultaneous browser instances.
- [Migrate from V1](https://docs.browserless.io/enterprise/migrate-from-v1): This guide covers everything you need to update when migrating an Enterprise deployment from a V1 image to a V2 image. For self-hosted Docker migrations, see also the BaaS Docker migration reference.
- [Open Source Deployment](https://docs.browserless.io/enterprise/open-source): The open-source version of Browserless lets you deploy headless browsers using Docker with full support for Puppeteer, Playwright, and REST APIs.
- [Enterprise Overview](https://docs.browserless.io/enterprise/overview): Browserless Enterprise is a browser automation platform for organizations that need full infrastructure control, network isolation, and dedicated resources beyond what shared cloud plans provide.
- [Fleet Operations](https://docs.browserless.io/enterprise/private-deployment/fleet-operations): Your fleet dashboard exposes three operations for managing your workers: Restart Worker, Force Restart, and Relaunch.
- [Browserless GraphQL API](https://docs.browserless.io/enterprise/private-deployment/graphql-api): The Browserless GraphQL API exposes queries for monitoring fleet health, session activity, and unit consumption on your dedicated fleet.
- [Image Versions and Upgrades](https://docs.browserless.io/enterprise/private-deployment/image-versions): This page covers how to check your current image version, match client library versions, and coordinate upgrades.
- [Load Balancing](https://docs.browserless.io/enterprise/private-deployment/load-balancing): Regional Load Balancers
- [Observability](https://docs.browserless.io/enterprise/private-deployment/observability): This page covers unit consumption tracking, metrics endpoints, fleet health queries, dashboard limitations, and client-side monitoring recommendations for private fleets.
- [Private Deployment Overview](https://docs.browserless.io/enterprise/private-deployment/overview): Private Deployment is a fully managed hosting option where Browserless runs dedicated infrastructure in the cloud on your behalf. Your workers run on isolated VMs, not shared with other customers. You connect through similar Browserless-hosted endpoints and the same APIs as the shared cloud fleet, but with dedicated resources, configurable concurrency, fleet management controls, and premium support.
- [Performance and Capacity](https://docs.browserless.io/enterprise/private-deployment/performance): This page covers capacity planning, health check behavior, burst traffic patterns, and performance best practices for your private fleet.
- [Timeouts](https://docs.browserless.io/enterprise/private-deployment/timeouts): Browser automation involves multiple timeout layers. Understanding which layer causes a given failure makes errors much easier to diagnose and fix.
- [Worker settings](https://docs.browserless.io/enterprise/private-deployment/worker-settings): To open your worker settings, log in to your browserless account, click the Production cluster icon, then click Settings.
- [Terminology](https://docs.browserless.io/enterprise/terminology): Common terms used across the Browserless documentation and main site.
- [Token Roles and Permissions](https://docs.browserless.io/enterprise/token-roles): Enterprise Browserless uses a token-based permission system with four roles. Each token carries a single role that determines what the holder can do.
- [User Data Directory](https://docs.browserless.io/enterprise/user-data-directory): The --user-data-dir flag persists browser data (cookies, localStorage, cache, and login sessions) across multiple browser sessions. Use it to maintain authenticated states and user preferences without re-authenticating each time.
- [/config API](https://docs.browserless.io/enterprise/utility-functions/config): The /config API returns your worker's current configuration. Available on Private Deployment and Enterprise Docker plans only.
- [Utility Functions Overview](https://docs.browserless.io/enterprise/utility-functions/intro): Manage and monitor your private Browserless deployments with utility functions for usage metrics, session info, and configuration details.
- [/json/version API](https://docs.browserless.io/enterprise/utility-functions/json-version): The /json/version API returns version information about the browser and DevTools protocol running on your Browserless instance. This is part of the standard Chrome DevTools Protocol. Available on both Private Deployment and Enterprise Docker plans.
- [/metrics API](https://docs.browserless.io/enterprise/utility-functions/metrics): The metrics API returns an array of session statistics. Data covers a maximum of 1 week.
- [/pressure API](https://docs.browserless.io/enterprise/utility-functions/pressure): The /pressure API returns real-time system load information for your Browserless instance. Available on both Private Deployment and Enterprise Docker plans.
- [/sessions API](https://docs.browserless.io/enterprise/utility-functions/sessions): The /sessions API returns a list of currently running browser sessions. Available on Private Deployment and Enterprise Docker plans only.
- [Watching Sessions](https://docs.browserless.io/enterprise/watching-sessions): The Browserless Docker image and Dedicated hosted plans support real-time session watching for debugging and monitoring.

## MCP

- [Browser Agent](https://docs.browserless.io/mcp/browser-agent): Give your AI assistant a stateful, snapshot-driven browser agent. The browserless_agent MCP tool runs a browser session your model can navigate, inspect, and interact with over multiple turns.
- [Browserless Docs MCP](https://docs.browserless.io/mcp/browserless-docs-mcp): Connect to Browserless documentation directly from your IDE or AI tool using MCP.
- [Setup](https://docs.browserless.io/mcp/browserless-mcp-server/setup): Connect AI assistants to Browserless using the Model Context Protocol (MCP). Scrape, search, map, crawl, audit performance, export, download, and run custom code from Claude Desktop, Cursor, VS Code, Windsurf, and other MCP-compatible clients.
- [MCP](https://docs.browserless.io/mcp/overview): Browserless offers two MCP servers — the Browserless MCP Server for full browser automation and the Browserless Docs MCP for documentation lookups. Learn which one to use.
- [REST API Tools](https://docs.browserless.io/mcp/rest-api-tools): Reference for the Browserless MCP server's REST-API-backed tools — smart scraping, custom Puppeteer functions, downloads, exports, web search, site mapping, Lighthouse audits, and crawling.

## AI Integrations

- [Vercel Agent Browser Integration](https://docs.browserless.io/ai-integrations/agent-browser): Connect agent-browser to Browserless for cloud-powered headless browser automation with stealth, proxies, and scalable sessions.
- [AgentKit Integration](https://docs.browserless.io/ai-integrations/agentkit): Connect AgentKit to Browserless for fault-tolerant AI agents with stealth browsing, CAPTCHA solving, and residential proxies.
- [Anthropic SDK](https://docs.browserless.io/ai-integrations/anthropic): Build Anthropic agents that use the hosted Browserless MCP server — either directly via the Messages API MCP connector or with the heavier Managed Agents stack (Environment + Agent + Session).
- [Browser Use Integration](https://docs.browserless.io/ai-integrations/browser-use/python): Browser Use is a Python library that allows AI agents to control a browser. By integrating Browserless with Browser Use, you can give your AI applications web browsing capabilities without managing browser infrastructure.
- [Claude Agent SDK](https://docs.browserless.io/ai-integrations/claude-agent-sdk): Build autonomous AI agents powered by Claude that browse bot-protected websites with stealth mode, automatic CAPTCHA solving, and residential proxies, all through Browserless cloud browsers.
- [Claude Code + Playwright MCP](https://docs.browserless.io/ai-integrations/claude-code): Control a stealth-enabled, CAPTCHA-solving Browserless browser directly from Claude Code using Microsoft's official Playwright MCP server.
- [Claude Code Plugin](https://docs.browserless.io/ai-integrations/claude-plugin): Give Claude Code direct access to Browserless REST APIs — scrape webpages, take screenshots, generate PDFs, search the web, map site structures, and run custom browser automation, all from natural language.
- [Anthropic Computer Use Integration](https://docs.browserless.io/ai-integrations/computer-use/anthropic-computer-use): Connect Anthropic Computer Use to Browserless for scalable, cloud-hosted AI browser automation with stealth, proxies, and CAPTCHA solving.
- [OpenAI CUA Integration](https://docs.browserless.io/ai-integrations/computer-use/openai-cua): Use OpenAI's Computer Use Agent (CUA) with Browserless for AI-powered browser automation — screenshot-driven actions via Playwright and cloud-hosted stealth browsers.
- [LangChain Integration](https://docs.browserless.io/ai-integrations/langchain): Learn how to integrate Browserless with LangChain for web scraping and content loading. Includes code examples and best practices.
- [Browserless templates for Make.com](https://docs.browserless.io/ai-integrations/make): Browserless templates for Make.com to enable browser automation workflows
- [n8n integration templates](https://docs.browserless.io/ai-integrations/n8n): Connect Browserless to n8n using HTTP Request nodes. Copy templates for screenshots, PDFs, content extraction, BQL, and more.
- [OpenClaw Integration](https://docs.browserless.io/ai-integrations/open-claw): Connect OpenClaw to Browserless for cloud-powered browser automation with stealth, proxies, and CAPTCHA solving.
- [OpenAI SDK](https://docs.browserless.io/ai-integrations/openai): Build OpenAI agents that use the hosted Browserless MCP server — either directly via the Responses API or with the heavier Agents SDK orchestration layer.
- [Stagehand Integration](https://docs.browserless.io/ai-integrations/stagehand): Connect Stagehand to Browserless for cloud-powered AI browser automation with stealth, proxies, and scalable sessions.
- [AI & Agent Integrations](https://docs.browserless.io/ai-integrations/start): Connect Browserless to AI agents, MCP clients, SDKs, frameworks, and no-code tools. Add stealth browsing, CAPTCHA solving, and persistent sessions to any AI workflow.
- [Vercel AI SDK Integration](https://docs.browserless.io/ai-integrations/vercel-ai-sdk): This guide demonstrates a starter AI-powered browser automation application using Browserless, the Vercel AI SDK, and Next.js. The example shows how an agent can control a browser through natural language instructions for tasks like web scraping, form filling, and content extraction.
- [Browserless templates for Zapier](https://docs.browserless.io/ai-integrations/zapier): Browserless templates for Zapier to enable browser automation workflows

## BrowserQL Schema Reference

- [export](https://docs.browserless.io/bql-schema/operations/directives/export): The @export directive allows you to export a field value as a variable
- [include](https://docs.browserless.io/bql-schema/operations/directives/include): Directs the executor to include this field or fragment only when the if argument is true.
- [skip](https://docs.browserless.io/bql-schema/operations/directives/skip): Directs the executor to skip this field or fragment when the if argument is true.
- [authenticate](https://docs.browserless.io/bql-schema/operations/mutations/authenticate): Provides credentials for HTTP authentication (RFC 7235). When set, any HTTP
- [back](https://docs.browserless.io/bql-schema/operations/mutations/back): Goes back in browser history, optionally accepting waitUntil and timeout arguments. Returns null if no back is possible
- [checkbox](https://docs.browserless.io/bql-schema/operations/mutations/checkbox): Sets or un-sets the value of a checkbox on the page
- [click](https://docs.browserless.io/bql-schema/operations/mutations/click): Waits for the element to be visible, scrolls to it, then clicks on it with native events
- [content](https://docs.browserless.io/bql-schema/operations/mutations/content): Sets the given HTML content on the page with an optional waitUntil parameter
- [cookies](https://docs.browserless.io/bql-schema/operations/mutations/cookies): Sets and gets cookies on the page
- [evaluate](https://docs.browserless.io/bql-schema/operations/mutations/evaluate): Evaluates JavaScript client-side, via raw content or a URL to some JavaScript code, in the browser's page environment
- [forward](https://docs.browserless.io/bql-schema/operations/mutations/forward): Goes forward in browser history, optionally accepting waitUntil and timeout arguments. Returns null if no forward is possible
- [goto](https://docs.browserless.io/bql-schema/operations/mutations/goto): Navigates to a URL with an optional waitUntil parameter and timeout parameter
- [hover](https://docs.browserless.io/bql-schema/operations/mutations/hover): Waits for the element to be visible, scrolls to it, then hover on it with native events
- [html](https://docs.browserless.io/bql-schema/operations/mutations/html): Returns the HTML content of the page or selector when specified. This API can also "clean" HTML markup returned by specifying a "clean" argument with numerous options. Features of the "clean" argument include removal of non-text nodes, removal of DOM attributes, as well as removal of excessive whitespace and newlines. Using "clean" can save nearly 1,000 times the payload size. Useful for LLM's and other scenarios
- [if](https://docs.browserless.io/bql-schema/operations/mutations/if): Triggers a nested branch of work when a given condition is true. Does not wait for these items and is a point-in-time check. Use the wait method if you're wanting to await certain behaviors to be present
- [ifnot](https://docs.browserless.io/bql-schema/operations/mutations/ifnot): Triggers a nested branch of work when a given condition is false. This method does not wait for these items and is a point-in-time check. Use the wait method if you're wanting to await certain behaviors to be present
- [javaScriptEnabled](https://docs.browserless.io/bql-schema/operations/mutations/java-script-enabled): Sets and gets JavaScript execution on the page
- [liveURL](https://docs.browserless.io/bql-schema/operations/mutations/live-url): Returns a fully-qualified, user-shareable live-URL for streaming the web-browser to an end-user, optionally interactive.
- [mapSelector](https://docs.browserless.io/bql-schema/operations/mutations/map-selector): Specify a selector that returns multiple nodes in a document (similar to document.querySelectorAll), or JavaScript that returns a NodeList, and this API will respond with details about those DOM nodes. Similar to how "map" works in most functional programming languages and libraries. Useful for mapping over repetitive data in sites and pages like product listings or search results. This will automatically wait for the selector to be present on the page, and is configurable with the "wait" and "timeout" options.
- [pdf](https://docs.browserless.io/bql-schema/operations/mutations/pdf): Generates a PDF of the page with the print CSS media type
- [preferences](https://docs.browserless.io/bql-schema/operations/mutations/preferences): Sets configuration for the entirety of the session, replacing defaults like the 30 second timeout default
- [proxy](https://docs.browserless.io/bql-schema/operations/mutations/proxy): Proxies requests, by a specified set of conditions, through either the Browserless residential proxy or through an external proxy. Only requests that match these conditions are proxied and the rest are sent from the instance's own IP address.
- [querySelector](https://docs.browserless.io/bql-schema/operations/mutations/query-selector): Passes through certain properties of the browsers' own document.querySelector API
- [querySelectorAll](https://docs.browserless.io/bql-schema/operations/mutations/query-selector-all): Passes through certain properties of the browsers' own document.querySelectorAll API
- [reconnect](https://docs.browserless.io/bql-schema/operations/mutations/reconnect): Returns a payload with reconnection information in order to reconnect back to the same browser session
- [reject](https://docs.browserless.io/bql-schema/operations/mutations/reject): Rejects requests by a specified URL pattern, method, or type and operator. You may supply a single pattern, or a list (array) of them. This mutation, by default, will reject any requests that match &#x002A;any&#x002A; pattern, which we call an "or" operator. To reject requests where conditions must all match, specify an "and" operator in the mutation. Note that this only has an effect when the query is executing, so scripts that return quickly will likely see assets loading in the editor as these rejections only happen when mutations are executing.
- [reload](https://docs.browserless.io/bql-schema/operations/mutations/reload): Reloads the given page with an optional waitUntil parameter and timeout parameter
- [request](https://docs.browserless.io/bql-schema/operations/mutations/request): Returns request information made by the Browser with optional filters via arguments. You may filter the returned results by a glob-like URL-pattern, the method of the request or the type of request. Applying an operator to this will then change the behavior by either "and"ing the filters together or "or"ing them. This API will automatically wait for the request to be made if none is immediately found which you can turn off by disabling the "wait" option.
- [response](https://docs.browserless.io/bql-schema/operations/mutations/response): Returns response information, filtered by the provided arguments, made by the browser. You may optionally filter the returned results by a glob-like URL-pattern, the Method of the response or the Type of response. Applying an operator to this will then change the behavior by either "and"ing the filters together, or "or"ing them. This API will automatically wait for the response to be made if none is immediately found which you can turn off by disabling the "wait" option.
- [screenshot](https://docs.browserless.io/bql-schema/operations/mutations/screenshot): Screenshots the page or a specific selector
- [scroll](https://docs.browserless.io/bql-schema/operations/mutations/scroll): Waits for a selector, then scrolls to it on the page or an x,y coordinate in pixels
- [select](https://docs.browserless.io/bql-schema/operations/mutations/select): Selects a value from a dropdown or multiple select element
- [setExtraHTTPHeaders](https://docs.browserless.io/bql-schema/operations/mutations/set-extra-httpheaders): Sets the HTTP headers for the page
- [solve](https://docs.browserless.io/bql-schema/operations/mutations/solve): 🚨 &#x002A;&#x002A;EXPERIMENTAL&#x002A;&#x002A; 🚨
- [solveImageCaptcha](https://docs.browserless.io/bql-schema/operations/mutations/solve-image-captcha): Solves an image captcha using caller-provided selectors. Unlike solve, which auto-detects known captcha types, this mutation works on any site by accepting custom captchaSelector and inputSelector arguments. It detects the captcha image, solves it, and fills the result into the specified input field.
- [stopSessionRecording](https://docs.browserless.io/bql-schema/operations/mutations/stop-session-recording): Stops the current session recording and processes the replay data, similar to closing the context. This mutation will stop RRWeb recording and upload the collected events.
- [switchToWindow](https://docs.browserless.io/bql-schema/operations/mutations/switch-to-window): Switches context to a popup window matching specified criteria
- [text](https://docs.browserless.io/bql-schema/operations/mutations/text): Returns the text content on the given page or by selector when specified
- [title](https://docs.browserless.io/bql-schema/operations/mutations/title): Returns the title of the page that the browser is currently at
- [type](https://docs.browserless.io/bql-schema/operations/mutations/type): Types text into an element by scrolling to it, clicking it, then emitting key events for every character. Include a \n (or \r) in text to send an Enter/Return key press — useful for submitting search boxes or forms without a separate click. BrowserQL has no standalone key-press mutation, so non-Enter keys cannot be simulated; use click for non-keyboard submit interactions (for example, a submit button).
- [url](https://docs.browserless.io/bql-schema/operations/mutations/url): Returns the URL of the page that the browser is currently at
- [userAgent](https://docs.browserless.io/bql-schema/operations/mutations/user-agent): Sets the User-Agent string for the browser session
- [verify](https://docs.browserless.io/bql-schema/operations/mutations/verify): Use the solve mutation instead. This mutation will be removed in a future version.
- [viewport](https://docs.browserless.io/bql-schema/operations/mutations/viewport): Sets the viewport dimensions for the browser session
- [waitForEvent](https://docs.browserless.io/bql-schema/operations/mutations/wait-for-event): Waits for a named event to fire on the page's document or window.
- [waitForFunction](https://docs.browserless.io/bql-schema/operations/mutations/wait-for-function): Waits for a JavaScript predicate, evaluated in the page, to return a truthy value. The predicate may be a statement or a function expression and can be async.
- [waitForNavigation](https://docs.browserless.io/bql-schema/operations/mutations/wait-for-navigation): Waits for a navigation even to fire, useful for clicking an element and waiting for a page load of some
- [waitForRequest](https://docs.browserless.io/bql-schema/operations/mutations/wait-for-request): Waits for the browser to make a particular request
- [waitForResponse](https://docs.browserless.io/bql-schema/operations/mutations/wait-for-response): Waits for a particular network response to be made back to the browser
- [waitForSelector](https://docs.browserless.io/bql-schema/operations/mutations/wait-for-selector): Waits for a given selector to be present in the DOM, with optional visibility
- [waitForTimeout](https://docs.browserless.io/bql-schema/operations/mutations/wait-for-timeout): Wait for a period of time, defined in milliseconds
- [browser](https://docs.browserless.io/bql-schema/operations/queries/browser): The Version of the browser
- [version](https://docs.browserless.io/bql-schema/operations/queries/version): The Version of this server
- [Responses](https://docs.browserless.io/bql-schema/responses): Complete reference for all BrowserQL mutation response types including CaptchaResponse, ClickResponse, HTTPResponse, and other GraphQL return types.
- [BrowserQL Schema](https://docs.browserless.io/bql-schema/schema): This document is a complete technical specification of our full-length GraphQL API, called BrowserQL. This document is designed for developers and engineers that want a precise and low-level understanding of the API structure. For more introductory how-to and getting-started guides, click here.
- [Schemas](https://docs.browserless.io/bql-schema/schemas): Complete reference for BrowserQL input types, enums, and schemas including CookieInput, CaptchaTypes, PDFPageFormat, and other GraphQL type definitions.
- [deprecated](https://docs.browserless.io/bql-schema/types/directives/deprecated): Marks an element of a GraphQL schema as no longer supported.
- [oneOf](https://docs.browserless.io/bql-schema/types/directives/one-of): Indicates exactly one field must be supplied and this field must not be null.
- [specifiedBy](https://docs.browserless.io/bql-schema/types/directives/specified-by): Exposes a URL that specifies the behavior of this scalar.
- [AttributeMode](https://docs.browserless.io/bql-schema/types/enums/attribute-mode): Controls how the attributes field is interpreted in cleaning operations
- [CaptchaTypes](https://docs.browserless.io/bql-schema/types/enums/captcha-types): The different types of captchas that can be solved
- [CookieSameSite](https://docs.browserless.io/bql-schema/types/enums/cookie-same-site): The values a cookie's SameSite attribute can hold
- [CountryType](https://docs.browserless.io/bql-schema/types/enums/country-type): The two-letter ISO code for the specified country
- [LiveURLStreamType](https://docs.browserless.io/bql-schema/types/enums/live-urlstream-type): The binary-type of the stream
- [Method](https://docs.browserless.io/bql-schema/types/enums/method): The various HTTP-based methods to wait for
- [OperatorTypes](https://docs.browserless.io/bql-schema/types/enums/operator-types): Logical operators for APIs that have conditions
- [PDFPageFormat](https://docs.browserless.io/bql-schema/types/enums/pdfpage-format): The values a pdf's Size attribute can hold
- [ProxyNetwork](https://docs.browserless.io/bql-schema/types/enums/proxy-network): The Browserless proxy network to route matching requests through.
- [ResourceType](https://docs.browserless.io/bql-schema/types/enums/resource-type): The type of resource for a given network or HTTP request
- [ScreenshotType](https://docs.browserless.io/bql-schema/types/enums/screenshot-type): The different types of screenshot formats
- [VerifyTypes](https://docs.browserless.io/bql-schema/types/enums/verify-types): The different types of verification methods that can be bypassed
- [WaitUntilGoto](https://docs.browserless.io/bql-schema/types/enums/wait-until-goto): Options for when to consider the page has loaded and proceed with further execution
- [WaitUntilHistory](https://docs.browserless.io/bql-schema/types/enums/wait-until-history): The different stages of the browser's loading process
- [CleanInput](https://docs.browserless.io/bql-schema/types/inputs/clean-input): Options for cleaning up the DOM prior to exporting its content. Many options are available, and this query can destructively remove non-text DOM nodes, DOM attributes, and gratuitous whitespace characters. Since these operations are destructive in their nature it's recommended to run them at the very end of your query in order to preserve page functionality
- [CookieInput](https://docs.browserless.io/bql-schema/types/inputs/cookie-input): The cookie to be sent to the page
- [HeaderInput](https://docs.browserless.io/bql-schema/types/inputs/header-input): A HTTP header input type
- [RequestInput](https://docs.browserless.io/bql-schema/types/inputs/request-input): The specific request to perform a conditional action on
- [ResponseInput](https://docs.browserless.io/bql-schema/types/inputs/response-input): The specific response to perform a conditional action on
- [ScreenshotClip](https://docs.browserless.io/bql-schema/types/inputs/screenshot-clip): The clipping to be applied to the screenshot
- [Attribute](https://docs.browserless.io/bql-schema/types/objects/attribute): No description
- [CaptchaResponse](https://docs.browserless.io/bql-schema/types/objects/captcha-response): Response returned after a captcha has been solved
- [ClickResponse](https://docs.browserless.io/bql-schema/types/objects/click-response): Response returned after having clicked on an element
- [CookieResponse](https://docs.browserless.io/bql-schema/types/objects/cookie-response): The response returned after setting or getting cookies
- [DefaultResponse](https://docs.browserless.io/bql-schema/types/objects/default-response): Default response for all methods
- [EvaluateResponse](https://docs.browserless.io/bql-schema/types/objects/evaluate-response): Response returned after evaluating a script
- [Headers](https://docs.browserless.io/bql-schema/types/objects/headers): An object representing the header's name and underlying value
- [HoverResponse](https://docs.browserless.io/bql-schema/types/objects/hover-response): Response returned after having hovered over an element
- [HTMLResponse](https://docs.browserless.io/bql-schema/types/objects/htmlresponse): HTML content of a page
- [HTTPHeaders](https://docs.browserless.io/bql-schema/types/objects/httpheaders): An object representing the header's name and underlying value
- [HTTPHeadersResponse](https://docs.browserless.io/bql-schema/types/objects/httpheaders-response): The response returned after setting HTTP headers
- [HTTPResponse](https://docs.browserless.io/bql-schema/types/objects/httpresponse): Response returned after a navigation event
- [JavaScriptResponse](https://docs.browserless.io/bql-schema/types/objects/java-script-response): The response returned after enabling or disabling JavaScript on the page
- [LiveURLResponse](https://docs.browserless.io/bql-schema/types/objects/live-urlresponse): The response from the Live-URL query
- [MapSelectorResponse](https://docs.browserless.io/bql-schema/types/objects/map-selector-response): Response returned from a Map Selector
- [Mutation](https://docs.browserless.io/bql-schema/types/objects/mutation): This document is a complete technical specification of every mutation in the BrowserQL API. To get you started, the ones you'll use most will probably include:
- [PDFResponse](https://docs.browserless.io/bql-schema/types/objects/pdfresponse): The response returned after generating a PDF
- [ProxyResponse](https://docs.browserless.io/bql-schema/types/objects/proxy-response): Response returned after setting up the proxy patterns
- [QuerySelectorResponse](https://docs.browserless.io/bql-schema/types/objects/query-selector-response): The response returned after querying the page for a selector
- [ReconnectionResponse](https://docs.browserless.io/bql-schema/types/objects/reconnection-response): The response received after attempting to reconnect a BrowserQL session
- [RejectResponse](https://docs.browserless.io/bql-schema/types/objects/reject-response): The response parameters for the reject mutation
- [RequestResponse](https://docs.browserless.io/bql-schema/types/objects/request-response): Response returned from the request API
- [ResponseResponse](https://docs.browserless.io/bql-schema/types/objects/response-response): Response returned from the response API
- [ScreenshotResponse](https://docs.browserless.io/bql-schema/types/objects/screenshot-response): The response returned after generating a Screenshot
- [ScrollResponse](https://docs.browserless.io/bql-schema/types/objects/scroll-response): Response returned after having scrolling inside the page
- [SelectResponse](https://docs.browserless.io/bql-schema/types/objects/select-response): The response returned after selecting a value from a dropdown or multiple select element
- [StandardCookie](https://docs.browserless.io/bql-schema/types/objects/standard-cookie): A standard cookie
- [StopSessionRecordingResponse](https://docs.browserless.io/bql-schema/types/objects/stop-session-recording-response): The response received after stopping session recording
- [SwitchWindowResponse](https://docs.browserless.io/bql-schema/types/objects/switch-window-response): Response from window switching operation
- [TextResponse](https://docs.browserless.io/bql-schema/types/objects/text-response): Text content of a page
- [TitleResponse](https://docs.browserless.io/bql-schema/types/objects/title-response): Response returned after the page's title has been set or get
- [TypeResponse](https://docs.browserless.io/bql-schema/types/objects/type-response): Response returned after having typed into an element
- [URLResponse](https://docs.browserless.io/bql-schema/types/objects/urlresponse): Response returned after the URL of the page has been set or get
- [UserAgentResponse](https://docs.browserless.io/bql-schema/types/objects/user-agent-response): The response returned after setting the User-Agent
- [VerifyResponse](https://docs.browserless.io/bql-schema/types/objects/verify-response): Response returned after a verification method has been bypassed
- [ViewportResponse](https://docs.browserless.io/bql-schema/types/objects/viewport-response): Response returned after setting the viewport
- [WaitForEvent](https://docs.browserless.io/bql-schema/types/objects/wait-for-event): Response returned after having waited for an event to fire on the page
- [WaitForFunction](https://docs.browserless.io/bql-schema/types/objects/wait-for-function): Response returned after having waited for a JavaScript predicate to become truthy
- [WaitForRequest](https://docs.browserless.io/bql-schema/types/objects/wait-for-request): Response returned after a particular network request has been sent
- [WaitForResponse](https://docs.browserless.io/bql-schema/types/objects/wait-for-response): Response returned after a particular network response has been received
- [WaitForSelector](https://docs.browserless.io/bql-schema/types/objects/wait-for-selector): Response returned after a particular selector has been found in the DOM
- [WaitForTimeout](https://docs.browserless.io/bql-schema/types/objects/wait-for-timeout): Response returned after having waited for a selector to appear in the DOM
- [Boolean](https://docs.browserless.io/bql-schema/types/scalars/boolean): The Boolean scalar type represents true or false.
- [Float](https://docs.browserless.io/bql-schema/types/scalars/float): The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
- [FloatOrString](https://docs.browserless.io/bql-schema/types/scalars/float-or-string): Holds the value of a either a float or a string
- [Int](https://docs.browserless.io/bql-schema/types/scalars/int): The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
- [String](https://docs.browserless.io/bql-schema/types/scalars/string): The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
- [StringOrArray](https://docs.browserless.io/bql-schema/types/scalars/string-or-array): Holds the value of a either a string or an array of strings

## OpenAPI Reference

- [OpenAPI Reference](https://docs.browserless.io/open-api): complete REST API reference (Swagger)

## External Resources

- [Browserless Account Dashboard](https://browserless.io/account/)
- [GitHub](https://github.com/browserless/browserless): source code and community contributions
- [Status](https://status.browserless.io/): real-time service status
- [Blog](https://www.browserless.io/blog/): technical articles and tutorials
- [Pricing](https://browserless.io/pricing): plans and feature comparison

