@mseep/hyperbrowser-mcp
Version:
Hyperbrowser Model Context Protocol Server
243 lines • 435 kB
JSON
[
{
"pathname": "/",
"data": {
"markdown": "Welcome to Hyperbrowser \\| Hyperbrowser\n\n\n\nWelcome to Hyperbrowser, the Internet for AI. Hyperbrowser is the next-generation platform empowering AI agents and enabling effortless, scalable browser automation. Built specifically for AI developers, it eliminates the headaches of local infrastructure and performance bottlenecks, allowing you to focus entirely on building your solutions, rather getting gummed up on browser problems.\n\nWhether you're training AI agents to navigate the web, collecting data for model fine-tuning, testing applications, or simply scraping data, Hyperbrowser lets you launch and manage browser sessions with ease—no complicated setup required. Our platform provides streamlined solutions for all your web scraping needs, from single-page extraction to comprehensive site crawling.\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/\\#why-developers-choose-hyperbrowser) Why Developers Choose Hyperbrowser:\n\n- **Instant Scalability** \\- Deploy hundreds of AI agent browser sessions in seconds without infrastructure complexity\n\n- **Powerful APIs** \\- Purpose-built APIs for managing sessions, training environments, scraping/crawling sites, and enhancing AI capabilities\n\n- **Production-Ready AI Infrastructure** \\- Enterprise-grade reliability and security built specifically for AI workloads\n\n- **Advanced Anti-Bot Protection Bypass** \\- Built-in stealth mode, ad blocking, automatic CAPTCHA solving, and rotating proxies for uninterrupted AI operation\n\n- **AI-First Design** \\- Native support for multiple AI frameworks including LangChain, LlamaIndex, MCP, and more\n\n\n## [Direct link to heading](https://www.docs.hyperbrowser.ai/\\#quick-example) Quick Example\n\nStart automating in just a few lines of code\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport { Hyperbrowser } from \"@hyperbrowser/sdk\";\nimport { connect } from \"puppeteer-core\";\n\nconst client = new Hyperbrowser({\n apiKey: process.env.HYPERBROWSER_API_KEY,\n});\n\nconst session = await client.sessions.create();\n\n// Use the session to automate browser actions\nconst browser = await connect({\n browserWSEndpoint: session.wsEndpoint,\n defaultViewport: null,\n});\n\n// Use the browser to automate browser actions\nconst page = await browser.newPage();\nawait page.goto(\"https://example.com\");\n\nawait browser.close();\n\n// Once done, you can stop the session\nawait client.sessions.stop(session.id);\n```\n\n## [Direct link to heading](https://www.docs.hyperbrowser.ai/\\#jump-right-in) Jump right in\n\n[📖\\\\\n\\\\\n**Scraping**\\\\\n\\\\\nScrape a site and get its contents in markdown](https://www.docs.hyperbrowser.ai/get-started/quickstart/scraping) [👨💻\\\\\n\\\\\n**Puppeteer**\\\\\n\\\\\nConnect to a browser session with Puppeteer](https://www.docs.hyperbrowser.ai/get-started/quickstart/puppeteer) [🕷️\\\\\n\\\\\n**Crawling**\\\\\n\\\\\nCrawl an entire site and all its linked pages](https://www.docs.hyperbrowser.ai/get-started/quickstart/crawling) [🗼\\\\\n\\\\\nStructured Extraction\\\\\n\\\\\nPerform extraction into a json schema](https://www.docs.hyperbrowser.ai/web-scraping/extract)\n\n[NextWhat are Headless browsers ?](https://www.docs.hyperbrowser.ai/what-are-headless-browsers)\n\nLast updated 7 days ago",
"metadata": {
"url": "https://docs.hyperbrowser.ai/",
"title": "Welcome to Hyperbrowser | Hyperbrowser",
"robots": "index, follow",
"og:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/kzTlst3tKo255yz4YpDi",
"og:title": "Welcome to Hyperbrowser | Hyperbrowser",
"viewport": "width=device-width, initial-scale=1",
"generator": "GitBook (f80c3a7)",
"link:icon": "https://docs.hyperbrowser.ai/~gitbook/image?url=https%3A%2F%2F4086371784-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Forganizations%252F-MjSP1cG6WWBpRLZETsb%252Fsites%252Fsite_47QD9%252Ficon%252FdJ3PfxcwhL57mzu3TQ7n%252Fhb-svg%25201%2520%281%29.png%3Falt%3Dmedia%26token%3D73062494-e327-43d6-bb23-c3511710e2aa&width=48&height=48&sign=71de792b&sv=2",
"sourceURL": "https://www.docs.hyperbrowser.ai",
"color-scheme": "dark",
"link:preload": "https://static.gitbook.com/_next/static/chunks/webpack-3669b6c2f2acdd0a.js",
"twitter:card": "summary_large_image",
"twitter:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/kzTlst3tKo255yz4YpDi",
"twitter:title": "Welcome to Hyperbrowser | Hyperbrowser",
"link:canonical": "https://docs.hyperbrowser.ai/",
"link:preconnect": "https://static.gitbook.com/",
"link:stylesheet": "https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css"
},
"html": null,
"url": "https://www.docs.hyperbrowser.ai",
"status": "completed",
"error": null
},
"summary": "Hyperbrowser documentation provides an introduction to web scraping and automation using the Hyperbrowser tool."
},
{
"pathname": "/what-are-headless-browsers",
"data": {
"markdown": "What are Headless browsers ? \\| Hyperbrowser\n\nIn the world of AI development, you'd most likely have come across the the term \"headless browser\" in tutorials and documentation. While it may sound technical and intimidating, the concept is straightforward and has been changing how AI interacts with the web.\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#the-basics) The Basics\n\nA headless browser can be defined as a web browser without a graphical user interface—or \"head.\" Similar to Google Chrome or Firefox, but without any windows, buttons, or visual elements for human interaction.\n\nInstead of being controlled through clicking, scrolling, and typing manually, a headless browser is operated entirely through code. All standard browser functions are still performed:\n\n- Web pages are loaded\n\n- JavaScript is executed\n\n- Cookies and sessions are handled\n\n- Content is rendered\n\n- Forms are processed\n\n\nThe key distinction is that these actions occur invisibly, behind the scenes, directed by code rather than human intervention.\n\nSome advanced headless browsers may also render all the graphics that a normal browser does!\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#how-headless-browsers-function) How Headless Browsers Function\n\nWhen a headless browser is utilized, what would normally be done by a human in a regular browser is automated:\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\n// Example using Puppeteer with Hyperbrowser\nimport { Hyperbrowser } from \"@hyperbrowser/sdk\";\nimport { connect } from \"puppeteer-core\";\n\n// A session is created\nconst client = new Hyperbrowser({\n apiKey: process.env.HYPERBROWSER_API_KEY,\n});\nconst session = await client.sessions.create();\n\n// Connection to the browser is established\nconst browser = await connect({\n browserWSEndpoint: session.wsEndpoint,\n defaultViewport: null,\n});\n\n// Navigation to a website is performed\nconst page = await browser.newPage();\nawait page.goto(\"https://www.search-example.com\");\n\n// Elements are found and interactions are executed\nawait page.type(\"textarea\", \"AI development\");\nawait page.click(\"button#Search\");\n\n// Results are awaited and data is extracted\nawait page.waitForSelector(\".results\");\nconst data = await page.evaluate(() => {\n return Array.from(document.querySelectorAll(\".result-item\"))\n .map(item => item.textContent);\n});\n\n// Resources are released\nawait browser.close();\nawait client.sessions.stop(session.id);\n```\n\nIn this example, the following actions are programmatically executed:\n\n1. A browser is opened\n\n2. A website is navigated to\n\n3. Text is entered into a search box\n\n4. A button is clicked\n\n5. Results are waited for\n\n6. Data is extracted from those results\n\n\nAll of these processes are completed without a browser window being displayed.\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#advantages-of-headless-browsers-over-regular-browsers) Advantages of Headless Browsers Over Regular Browsers\n\nThe advantages of headless browsers over traditional browsers become apparent when implementation is considered:\n\n#### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#resource-efficiency) Resource Efficiency\n\nMemory and CPU consumption are significantly reduced with headless browsers since visual rendering is not required. This efficiency allows for many more instances to be run simultaneously.\n\n#### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#speed) Speed\n\nTasks can be executed much faster without the overhead of rendering visual elements for human consumption.\n\n#### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#scalability) Scalability\n\nWhen hundreds of web pages need to be processed simultaneously, headless browsers can be scaled up much more effectively than their headed counterparts.\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#challenges-in-headless-browser-implementation) Challenges in Headless Browser Implementation\n\nSeveral challenges may be encountered when headless browsers are implemented independently:\n\n#### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#infrastructure-complexity) Infrastructure Complexity\n\nSignificant technical expertise and infrastructure are required to manage browser instances, especially at scale.\n\n#### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#anti-bot-detection) Anti-Bot Detection\n\nAutomated browsing is often detected and blocked by many websites, which creates difficulties in data gathering or functionality testing.\n\n#### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#performance-limitations) Performance Limitations\n\nAvailable resources are quickly consumed when multiple browser instances are run locally, which limits operational capacity.\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/what-are-headless-browsers\\#cloud-based-solutions-such-as-hyperbrowser) Cloud-Based Solutions Such as Hyperbrowser\n\nServices like Hyperbrowser are designed to address these challenges. Instead of local setup and limitations being struggled with, Hyperbrowser provides:\n\n- **Instant Scalability**: Hundreds of browser sessions can be initiated without infrastructure complications\n\n- **Built-in Anti-Bot Countermeasures**: Automation can be kept running smoothly with features like stealth mode and CAPTCHA solving\n\n- **Simple Integration**: Familiar tools like Puppeteer and Playwright are supported\n\n- **API-First Design**: Sessions can be managed and data can be extracted with easy-to-use APIs\n\n\n[PreviousWelcome to Hyperbrowser](https://www.docs.hyperbrowser.ai/) [NextQuickstart](https://www.docs.hyperbrowser.ai/get-started/quickstart)\n\nLast updated 8 days ago",
"metadata": {
"url": "https://docs.hyperbrowser.ai/what-are-headless-browsers",
"title": "What are Headless browsers ? | Hyperbrowser",
"robots": "index, follow",
"og:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/0vtWGIlGE4NbAu59RGTs",
"og:title": "What are Headless browsers ? | Hyperbrowser",
"viewport": "width=device-width, initial-scale=1",
"generator": "GitBook (fc00b51)",
"link:icon": "https://docs.hyperbrowser.ai/~gitbook/image?url=https%3A%2F%2F4086371784-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Forganizations%252F-MjSP1cG6WWBpRLZETsb%252Fsites%252Fsite_47QD9%252Ficon%252FdJ3PfxcwhL57mzu3TQ7n%252Fhb-svg%25201%2520%281%29.png%3Falt%3Dmedia%26token%3D73062494-e327-43d6-bb23-c3511710e2aa&width=48&height=48&sign=71de792b&sv=2",
"sourceURL": "https://www.docs.hyperbrowser.ai/what-are-headless-browsers",
"description": "And more importantly, why should I care ?",
"color-scheme": "dark",
"link:preload": "https://static.gitbook.com/_next/static/chunks/webpack-3669b6c2f2acdd0a.js",
"twitter:card": "summary_large_image",
"twitter:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/0vtWGIlGE4NbAu59RGTs",
"twitter:title": "What are Headless browsers ? | Hyperbrowser",
"link:canonical": "https://docs.hyperbrowser.ai/what-are-headless-browsers",
"og:description": "And more importantly, why should I care ?",
"link:preconnect": "https://static.gitbook.com/",
"link:stylesheet": "https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css",
"twitter:description": "And more importantly, why should I care ?"
},
"html": null,
"url": "https://www.docs.hyperbrowser.ai/what-are-headless-browsers",
"status": "completed",
"error": null
},
"summary": "The page explains headless browsers and their role in Hyperbrowser for web scraping and automation tasks."
},
{
"pathname": "/get-started/quickstart/scraping",
"data": {
"markdown": "Scraping \\| Hyperbrowser\n\n1\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/scraping\\#install-hyperbrowser) Install Hyperbrowser\n\nNodePython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nnpm install @hyperbrowser/sdk\n```\n\nor\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nyarn add @hyperbrowser/sdk\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\npip install hyperbrowser\n```\n\nor\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nuv add hyperbrowse\n```\n\n2\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/scraping\\#setup-your-environment) Setup your Environment\n\nTo use Hyperbrowser with your code, you will need an API Key. You can get one easily from the [dashboard](https://app.hyperbrowser.ai/settings?tab=api_key). Once you have your API Key, add it to your `.env` file as `HYPERBROWSER_API_KEY` .\n\n3\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/scraping\\#scrape-a-site) Scrape a Site\n\nNext, you can scrape any site by simply setting up the Hyperbrowser client and providing the site's url.\n\nNodePython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport { Hyperbrowser } from \"@hyperbrowser/sdk\";\nimport { config } from \"dotenv\";\n\nconfig();\n\nconst client = new Hyperbrowser({\n apiKey: process.env.HYPERBROWSER_API_KEY,\n});\n\nconst main = async () => {\n const scrapeResult = await client.scrape.startAndWait({\n url: \"https://example.com\",\n });\n console.log(\"Scrape result:\", scrapeResult);\n};\n\nmain();\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport os\nfrom dotenv import load_dotenv\nfrom hyperbrowser import AsyncHyperbrowser as Hyperbrowser\nfrom hyperbrowser.models.scrape import StartScrapeJobParams\n\n# Load environment variables from .env file\nload_dotenv()\n\n# Initialize Hyperbrowser client\nclient = Hyperbrowser(api_key=os.getenv(\"HYPERBROWSER_API_KEY\"))\n\nasync def main():\n # Start scraping and wait for completion\n scrape_result = await client.scrape.start_and_wait(\n StartScrapeJobParams(url=\"https://example.com\")\n )\n print(\"Scrape result:\", scrape_result)\n\nif __name__ == \"__main__\":\n import asyncio\n\n asyncio.run(main())\n```\n\n4\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/scraping\\#view-session-in-dashboard) View Session in Dashboard\n\nYou can view all your sessions in the [dashboard](https://app.hyperbrowser.ai/) and see their recordings or other key metrics like logs.\n\nMore information about sessions, including user profiles, web recordings, live view, and more can be found in the [Sessions Overview](https://www.docs.hyperbrowser.ai/sessions/overview)\n\n[PreviousQuickstart](https://www.docs.hyperbrowser.ai/get-started/quickstart) [NextCrawling](https://www.docs.hyperbrowser.ai/get-started/quickstart/crawling)\n\nLast updated 8 days ago",
"metadata": {
"url": "https://docs.hyperbrowser.ai/get-started/quickstart/scraping",
"title": "Scraping | Hyperbrowser",
"robots": "index, follow",
"og:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/IIcaSJSVwXpK0SQVg5vz",
"og:title": "Scraping | Hyperbrowser",
"viewport": "width=device-width, initial-scale=1",
"generator": "GitBook (fc00b51)",
"link:icon": "https://docs.hyperbrowser.ai/~gitbook/image?url=https%3A%2F%2F4086371784-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Forganizations%252F-MjSP1cG6WWBpRLZETsb%252Fsites%252Fsite_47QD9%252Ficon%252FdJ3PfxcwhL57mzu3TQ7n%252Fhb-svg%25201%2520%281%29.png%3Falt%3Dmedia%26token%3D73062494-e327-43d6-bb23-c3511710e2aa&width=48&height=48&sign=71de792b&sv=2",
"sourceURL": "https://www.docs.hyperbrowser.ai/get-started/quickstart/scraping",
"description": "Scrape any site and get it's data.",
"color-scheme": "dark",
"link:preload": "https://static.gitbook.com/_next/static/chunks/webpack-3669b6c2f2acdd0a.js",
"twitter:card": "summary_large_image",
"twitter:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/IIcaSJSVwXpK0SQVg5vz",
"twitter:title": "Scraping | Hyperbrowser",
"link:canonical": "https://docs.hyperbrowser.ai/get-started/quickstart/scraping",
"og:description": "Scrape any site and get it's data.",
"link:preconnect": "https://static.gitbook.com/",
"link:stylesheet": "https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css",
"twitter:description": "Scrape any site and get it's data."
},
"html": null,
"url": "https://www.docs.hyperbrowser.ai/get-started/quickstart/scraping",
"status": "completed",
"error": null
},
"summary": "The \"Scraping\" page in Hyperbrowser details how to extract data from websites using the tool's functionalities."
},
{
"pathname": "/get-started/quickstart/crawling",
"data": {
"markdown": "Crawling \\| Hyperbrowser\n\n1\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/crawling\\#install-hyperbrowser) Install Hyperbrowser\n\nNodePython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nnpm install @hyperbrowser/sdk\n```\n\nor\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nyarn add @hyperbrowser/sdk\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\npip install hyperbrowser\n```\n\nor\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nuv add hyperbrowser\n```\n\n2\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/crawling\\#setup-your-environment) Setup your Environment\n\nTo use Hyperbrowser with your code, you will need an API Key. You can get one easily from the [dashboard](https://app.hyperbrowser.ai/settings?tab=api_key). Once you have your API Key, add it to your `.env` file as `HYPERBROWSER_API_KEY` .\n\n3\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/crawling\\#crawl-a-site) Crawl a Site\n\nNext, you can crawl any site by simply setting up the Hyperbrowser client and providing the site's url.\n\nNodePython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport { Hyperbrowser } from \"@hyperbrowser/sdk\";\nimport { config } from \"dotenv\";\n\nconfig();\n\nconst client = new Hyperbrowser({\n apiKey: process.env.HYPERBROWSER_API_KEY,\n});\n\nconst main = async () => {\n const crawlResult = await client.crawl.startAndWait({\n url: \"https://hyperbrowser.ai\",\n });\n console.log(\"Crawl result:\", crawlResult);\n};\n\nmain();\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport os\nfrom dotenv import load_dotenv\nfrom hyperbrowser import AsyncHyperbrowser as Hyperbrowser\nfrom hyperbrowser.models.crawl import StartCrawlJobParams\n\n# Load environment variables from .env file\nload_dotenv()\n\n# Initialize Hyperbrowser client\nclient = Hyperbrowser(api_key=os.getenv(\"HYPERBROWSER_API_KEY\"))\n\nasync def main():\n # Start crawling and wait for completion\n crawl_result = await client.crawl.start_and_wait(\n StartCrawlJobParams(url=\"https://hyperbrowser.ai\")\n )\n print(\"Crawl result:\")\n print(crawl_result.model_dump_json(indent=2))\n\nif __name__ == \"__main__\":\n import asyncio\n\n asyncio.run(main())\n```\n\n4\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/crawling\\#view-session-in-dashboard) View Session in Dashboard\n\nYou can view all your sessions in the [dashboard](https://app.hyperbrowser.ai/) and see their recordings or other key metrics like logs.\n\n[PreviousScraping](https://www.docs.hyperbrowser.ai/get-started/quickstart/scraping) [NextPuppeteer](https://www.docs.hyperbrowser.ai/get-started/quickstart/puppeteer)\n\nLast updated 8 days ago",
"metadata": {
"url": "https://docs.hyperbrowser.ai/get-started/quickstart/crawling",
"title": "Crawling | Hyperbrowser",
"robots": "index, follow",
"og:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/igycZQMZI66cnXvNxbMh",
"og:title": "Crawling | Hyperbrowser",
"viewport": "width=device-width, initial-scale=1",
"generator": "GitBook (fc00b51)",
"link:icon": "https://docs.hyperbrowser.ai/~gitbook/image?url=https%3A%2F%2F4086371784-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Forganizations%252F-MjSP1cG6WWBpRLZETsb%252Fsites%252Fsite_47QD9%252Ficon%252FdJ3PfxcwhL57mzu3TQ7n%252Fhb-svg%25201%2520%281%29.png%3Falt%3Dmedia%26token%3D73062494-e327-43d6-bb23-c3511710e2aa&width=48&height=48&sign=71de792b&sv=2",
"sourceURL": "https://www.docs.hyperbrowser.ai/get-started/quickstart/crawling",
"description": "Crawl a site and all it's links.",
"color-scheme": "dark",
"link:preload": "https://static.gitbook.com/_next/static/chunks/webpack-3669b6c2f2acdd0a.js",
"twitter:card": "summary_large_image",
"twitter:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/igycZQMZI66cnXvNxbMh",
"twitter:title": "Crawling | Hyperbrowser",
"link:canonical": "https://docs.hyperbrowser.ai/get-started/quickstart/crawling",
"og:description": "Crawl a site and all it's links.",
"link:preconnect": "https://static.gitbook.com/",
"link:stylesheet": "https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css",
"twitter:description": "Crawl a site and all it's links."
},
"html": null,
"url": "https://www.docs.hyperbrowser.ai/get-started/quickstart/crawling",
"status": "completed",
"error": null
},
"summary": "The \"Crawling\" page of Hyperbrowser covers the tool's web scraping capabilities and how to implement them."
},
{
"pathname": "/get-started/quickstart",
"data": {
"markdown": "Quickstart \\| Hyperbrowser\n\n\n\nWelcome to Hyperbrowser, the Internet for AI. Get started in minutes with our browser automation, scraping, and crawling tools.\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart\\#get-started-in-three-simple-steps) Get Started in Three Simple Steps\n\n1. **Create an Account**: Sign up at the [dashboard](https://app.hyperbrowser.ai/signup)\n\n2. **Get Your API Key**: Find it in your [account settings](https://app.hyperbrowser.ai/settings?tab=api_key)\n\n3. **Write your first scrape**\n\n\nNodeJSPython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport { Hyperbrowser } from \"@hyperbrowser/sdk\";\n\nconst client = new Hyperbrowser({\n apiKey: process.env.HYPERBROWSER_API_KEY,\n});\n\nconst scrapeResult = await client.scrape.startAndWait({\n url: \"https://example.com\",\n});\nconsole.log(scrapeResult.content);\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nfrom hyperbrowser import AsyncHyperbrowser\nfrom hyperbrowser.models.scrape import StartScrapeJobParams\n\nclient = AsyncHyperbrowser(api_key=os.getenv(\"HYPERBROWSER_API_KEY\"))\n\nscrape_result = await client.scrape.start_and_wait(\n StartScrapeJobParams(url=\"https://example.com\")\n)\nprint(scrape_result.content)\n```\n\nCongratulations, you've scraped your first web page ! Welcome to the world of AI agents, and browser automations\n\nCheck out our in-depth SDK references for [Node](https://www.docs.hyperbrowser.ai/reference/sdks/node) and [Python](https://www.docs.hyperbrowser.ai/reference/sdks/python).\n\n[PreviousWhat are Headless browsers ?](https://www.docs.hyperbrowser.ai/what-are-headless-browsers) [NextScraping](https://www.docs.hyperbrowser.ai/get-started/quickstart/scraping)\n\nLast updated 8 days ago",
"metadata": {
"url": "https://docs.hyperbrowser.ai/get-started/quickstart",
"title": "Quickstart | Hyperbrowser",
"robots": "index, follow",
"og:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/CyH2xJQs9yWJ1S8BYNav",
"og:title": "Quickstart | Hyperbrowser",
"viewport": "width=device-width, initial-scale=1",
"generator": "GitBook (fc00b51)",
"link:icon": "https://docs.hyperbrowser.ai/~gitbook/image?url=https%3A%2F%2F4086371784-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Forganizations%252F-MjSP1cG6WWBpRLZETsb%252Fsites%252Fsite_47QD9%252Ficon%252FdJ3PfxcwhL57mzu3TQ7n%252Fhb-svg%25201%2520%281%29.png%3Falt%3Dmedia%26token%3D73062494-e327-43d6-bb23-c3511710e2aa&width=48&height=48&sign=71de792b&sv=2",
"sourceURL": "https://www.docs.hyperbrowser.ai/get-started/quickstart",
"description": "Get setup with Hyperbrowser in minutes.",
"color-scheme": "dark",
"link:preload": "https://static.gitbook.com/_next/static/chunks/webpack-3669b6c2f2acdd0a.js",
"twitter:card": "summary_large_image",
"twitter:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/CyH2xJQs9yWJ1S8BYNav",
"twitter:title": "Quickstart | Hyperbrowser",
"link:canonical": "https://docs.hyperbrowser.ai/get-started/quickstart",
"og:description": "Get setup with Hyperbrowser in minutes.",
"link:preconnect": "https://static.gitbook.com/",
"link:stylesheet": "https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css",
"twitter:description": "Get setup with Hyperbrowser in minutes."
},
"html": null,
"url": "https://www.docs.hyperbrowser.ai/get-started/quickstart",
"status": "completed",
"error": null
},
"summary": "Quickstart guide for Hyperbrowser provides initial setup and functionality instructions for effective web scraping and automation."
},
{
"pathname": "/get-started/quickstart/puppeteer",
"data": {
"markdown": "Puppeteer \\| Hyperbrowser\n\n1\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/puppeteer\\#install-puppeteer-and-hyperbrowser) Install Puppeteer and Hyperbrowser\n\nNodePython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nnpm install puppeteer-core @hyperbrowser/sdk\n```\n\nor\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nyarn add puppeteer-core @hyperbrowser/sdk\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\npip install pyppeteer hyperbrowser\n```\n\nor\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nuv add pyppeteer hyperbrowser\n```\n\n2\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/puppeteer\\#setup-your-environment) Setup your Environment\n\nTo use Hyperbrowser with your code, you will need an API Key. You can get one easily from the [dashboard](https://app.hyperbrowser.ai/settings?tab=api_key). Once you have your API Key, add it to your `.env` file as `HYPERBROWSER_API_KEY` .\n\n3\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/puppeteer\\#setup-browser-session) Setup Browser Session\n\nNext, you can easily startup a browser session using puppeteer and your Hyperbrowser API Key.\n\nNodePython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport { connect } from \"puppeteer-core\";\nimport { config } from \"dotenv\";\n\nconfig();\n\nconst main = async () => {\n const browser = await connect({\n browserWSEndpoint: `wss://connect.hyperbrowser.ai?apiKey=${process.env.HYPERBROWSER_API_KEY}`,\n });\n\n const [page] = await browser.pages();\n\n // Navigate to a website\n console.log(\"Navigating to Hacker News...\");\n await page.goto(\"https://news.ycombinator.com/\");\n const pageTitle = await page.title();\n console.log(\"Page 1:\", pageTitle);\n await page.evaluate(() => {\n console.log(\"Page 1:\", document.title);\n });\n\n await page.goto(\"https://example.com\");\n console.log(\"Page 2:\", await page.title());\n await page.evaluate(() => {\n console.log(\"Page 2:\", document.title);\n });\n\n await page.goto(\"https://apple.com\");\n console.log(\"Page 3:\", await page.title());\n await page.evaluate(() => {\n console.log(\"Page 3:\", document.title);\n });\n\n await page.goto(\"https://google.com\");\n console.log(\"Page 4:\", await page.title());\n await page.evaluate(() => {\n console.log(\"Page 4:\", document.title);\n });\n\n // Clean up\n await browser.close();\n};\n\nmain();\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport asyncio\nfrom pyppeteer import connect\nimport os\nfrom dotenv import load_dotenv\n\n# Load environment variables from .env file\nload_dotenv()\n\nasync def main():\n # Connect to the browser using the API key from environment variables\n browser = await connect(\n browserWSEndpoint=f\"wss://connect.hyperbrowser.ai?apiKey={os.getenv('HYPERBROWSER_API_KEY')}\"\n )\n\n pages = await browser.pages()\n page = pages[0]\n\n # Navigate to a website\n print(\"Navigating to Hacker News...\")\n await page.goto(\"https://news.ycombinator.com/\")\n page_title = await page.title()\n print(\"Page title:\", page_title)\n await page.evaluate(\"() => { console.log('Page 1:', document.title); }\")\n\n await page.goto(\"https://example.com\")\n page_title = await page.title()\n print(\"Page title:\", page_title)\n await page.evaluate(\"() => { console.log('Page 2:', document.title); }\")\n\n await page.goto(\"https://apple.com\")\n page_title = await page.title()\n print(\"Page title:\", page_title)\n await page.evaluate(\"() => { console.log('Page 3:', document.title); }\")\n\n await page.goto(\"https://google.com\")\n page_title = await page.title()\n print(\"Page title:\", page_title)\n await page.evaluate(\"() => { console.log('Page 4:', document.title); }\")\n\n # Clean up\n await browser.close()\n\n# Run the async main function\nif __name__ == \"__main__\":\n asyncio.run(main())\n```\n\n4\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/puppeteer\\#view-session-in-dashboard) View Session in Dashboard\n\nYou can view all your sessions in the [dashboard](https://app.hyperbrowser.ai/) and see their recordings or other key metrics like logs.\n\n[PreviousCrawling](https://www.docs.hyperbrowser.ai/get-started/quickstart/crawling) [NextPlaywright](https://www.docs.hyperbrowser.ai/get-started/quickstart/playwright)\n\nLast updated 8 days ago",
"metadata": {
"url": "https://docs.hyperbrowser.ai/get-started/quickstart/puppeteer",
"title": "Puppeteer | Hyperbrowser",
"robots": "index, follow",
"og:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/GWpUH7WQoSoNn5xG3QO6",
"og:title": "Puppeteer | Hyperbrowser",
"viewport": "width=device-width, initial-scale=1",
"generator": "GitBook (f80c3a7)",
"link:icon": "https://docs.hyperbrowser.ai/~gitbook/image?url=https%3A%2F%2F4086371784-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Forganizations%252F-MjSP1cG6WWBpRLZETsb%252Fsites%252Fsite_47QD9%252Ficon%252FdJ3PfxcwhL57mzu3TQ7n%252Fhb-svg%25201%2520%281%29.png%3Falt%3Dmedia%26token%3D73062494-e327-43d6-bb23-c3511710e2aa&width=48&height=48&sign=71de792b&sv=2",
"sourceURL": "https://www.docs.hyperbrowser.ai/get-started/quickstart/puppeteer",
"description": "Setup a browser session with Puppeteer.",
"color-scheme": "dark",
"link:preload": "https://static.gitbook.com/_next/static/chunks/webpack-3669b6c2f2acdd0a.js",
"twitter:card": "summary_large_image",
"twitter:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/GWpUH7WQoSoNn5xG3QO6",
"twitter:title": "Puppeteer | Hyperbrowser",
"link:canonical": "https://docs.hyperbrowser.ai/get-started/quickstart/puppeteer",
"og:description": "Setup a browser session with Puppeteer.",
"link:preconnect": "https://static.gitbook.com/",
"link:stylesheet": "https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css",
"twitter:description": "Setup a browser session with Puppeteer."
},
"html": null,
"url": "https://www.docs.hyperbrowser.ai/get-started/quickstart/puppeteer",
"status": "completed",
"error": null
},
"summary": "Puppeteer integration with Hyperbrowser enables web scraping and automation through headless browser control."
},
{
"pathname": "/get-started/quickstart/playwright",
"data": {
"markdown": "Playwright \\| Hyperbrowser\n\n1\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/playwright\\#install-playwright-and-hyperbrowser) Install Playwright and Hyperbrowser\n\nNodePython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nnpm install playwright-core @hyperbrowser/sdk\n```\n\nor\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nyarn add playwright-core @hyperbrowser/sdk\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\npip install playwright hyperbrowser\n```\n\nor\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nuv add playwright hyperbrowser\n```\n\n2\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/playwright\\#setup-your-environment) Setup your Environment\n\nTo use Hyperbrowser with your code, you will need an API Key. You can get one easily from the [dashboard](https://app.hyperbrowser.ai/settings?tab=api_key). Once you have your API Key, add it to your `.env` file as `HYPERBROWSER_API_KEY` .\n\n3\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/playwright\\#setup-browser-session) Setup Browser Session\n\nNext, you can easily startup a browser session using playwright and your Hyperbrowser API Key.\n\nNodePython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport { chromium } from \"playwright-core\";\nimport { config } from \"dotenv\";\n\nconfig();\n\nconst main = async () => {\n // Connect to browser using Playwright\n const browser = await chromium.connectOverCDP(\n `wss://connect.hyperbrowser.ai?apiKey=${process.env.HYPERBROWSER_API_KEY}`\n );\n\n // Create a new context and page\n const defaultContext = browser.contexts()[0];\n const page = defaultContext.pages()[0];\n\n // Navigate to a website\n console.log(\"Navigating to Hacker News...\");\n await page.goto(\"https://news.ycombinator.com/\");\n const pageTitle = await page.title();\n console.log(\"Page 1:\", pageTitle);\n await page.evaluate(() => {\n console.log(\"Page 1:\", document.title);\n });\n\n await page.goto(\"https://example.com\");\n console.log(\"Page 2:\", await page.title());\n await page.evaluate(() => {\n console.log(\"Page 2:\", document.title);\n });\n\n await page.goto(\"https://apple.com\");\n console.log(\"Page 3:\", await page.title());\n await page.evaluate(() => {\n console.log(\"Page 3:\", document.title);\n });\n\n await page.goto(\"https://google.com\");\n console.log(\"Page 4:\", await page.title());\n await page.evaluate(() => {\n console.log(\"Page 4:\", document.title);\n });\n\n // Clean up\n await defaultContext.close();\n await browser.close();\n};\n\nmain();\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport os\nfrom playwright.sync_api import sync_playwright\nfrom dotenv import load_dotenv\n\n# Load environment variables from .env file\nload_dotenv()\n\ndef main():\n with sync_playwright() as p:\n # Connect to browser using Playwright\n browser = p.chromium.connect_over_cdp(\n f\"wss://connect.hyperbrowser.ai?apiKey={os.getenv('HYPERBROWSER_API_KEY')}\"\n )\n\n # Get the default context and page\n default_context = browser.contexts[0]\n page = default_context.pages[0]\n\n # Navigate to various websites\n print(\"Navigating to Hacker News...\")\n page.goto(\"https://news.ycombinator.com/\")\n page_title = page.title()\n print(\"Page 1:\", page_title)\n page.evaluate(\"() => { console.log('Page 1:', document.title); }\")\n\n page.goto(\"https://example.com\")\n print(\"Page 2:\", page.title())\n page.evaluate(\"() => { console.log('Page 2:', document.title); }\")\n\n page.goto(\"https://apple.com\")\n print(\"Page 3:\", page.title())\n page.evaluate(\"() => { console.log('Page 3:', document.title); }\")\n\n page.goto(\"https://google.com\")\n print(\"Page 4:\", page.title())\n page.evaluate(\"() => { console.log('Page 4:', document.title); }\")\n\n # Clean up\n default_context.close()\n browser.close()\n\nif __name__ == \"__main__\":\n main()\n```\n\n4\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/playwright\\#view-session-in-dashboard) View Session in Dashboard\n\nYou can view all your sessions in the [dashboard](https://app.hyperbrowser.ai/) and see their recordings or other key metrics like logs.\n\n[PreviousPuppeteer](https://www.docs.hyperbrowser.ai/get-started/quickstart/puppeteer) [NextSelenium](https://www.docs.hyperbrowser.ai/get-started/quickstart/selenium)\n\nLast updated 8 days ago",
"metadata": {
"url": "https://docs.hyperbrowser.ai/get-started/quickstart/playwright",
"title": "Playwright | Hyperbrowser",
"robots": "index, follow",
"og:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/LmAydj7A6NczbKuRAunj",
"og:title": "Playwright | Hyperbrowser",
"viewport": "width=device-width, initial-scale=1",
"generator": "GitBook (fc00b51)",
"link:icon": "https://docs.hyperbrowser.ai/~gitbook/image?url=https%3A%2F%2F4086371784-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Forganizations%252F-MjSP1cG6WWBpRLZETsb%252Fsites%252Fsite_47QD9%252Ficon%252FdJ3PfxcwhL57mzu3TQ7n%252Fhb-svg%25201%2520%281%29.png%3Falt%3Dmedia%26token%3D73062494-e327-43d6-bb23-c3511710e2aa&width=48&height=48&sign=71de792b&sv=2",
"sourceURL": "https://www.docs.hyperbrowser.ai/get-started/quickstart/playwright",
"description": "Setup a browser session with Playwright.",
"color-scheme": "dark",
"link:preload": "https://static.gitbook.com/_next/static/chunks/webpack-3669b6c2f2acdd0a.js",
"twitter:card": "summary_large_image",
"twitter:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/LmAydj7A6NczbKuRAunj",
"twitter:title": "Playwright | Hyperbrowser",
"link:canonical": "https://docs.hyperbrowser.ai/get-started/quickstart/playwright",
"og:description": "Setup a browser session with Playwright.",
"link:preconnect": "https://static.gitbook.com/",
"link:stylesheet": "https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css",
"twitter:description": "Setup a browser session with Playwright."
},
"html": null,
"url": "https://www.docs.hyperbrowser.ai/get-started/quickstart/playwright",
"status": "completed",
"error": null
},
"summary": "The page discusses using Playwright with Hyperbrowser for web scraping and automation tasks."
},
{
"pathname": "/get-started/quickstart/selenium",
"data": {
"markdown": "Selenium \\| Hyperbrowser\n\n1\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/selenium\\#install-selenium-and-hyperbrowser) Install Selenium and Hyperbrowser\n\nNodePython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nnpm install selenium-webdriver @hyperbrowser/sdk\n```\n\nor\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nyarn add selenium-webdriver @hyperbrowser/sdk\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\npip install selenium hyperbrowser\n```\n\nor\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nuv add selenium hyperbrowser\n```\n\n2\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/selenium\\#setup-your-environment) Setup your Environment\n\nTo use Hyperbrowser with your code, you will need an API Key. You can get one easily from the [dashboard](https://app.hyperbrowser.ai/settings?tab=api_key). Once you have your API Key, add it to your `.env` file as `HYPERBROWSER_API_KEY` .\n\n3\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/selenium\\#setup-browser-session) Setup Browser Session\n\nNext, you can easily startup a browser session using selenium and your Hyperbrowser API Key.\n\nNodePython\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport dotenv from 'dotenv';\nimport https from 'https';\nimport { Builder, WebDriver } from 'selenium-webdriver';\nimport { Options } from 'selenium-webdriver/chrome';\nimport { Hyperbrowser } from '@hyperbrowser/sdk';\n\n// Load environment variables from .env file\ndotenv.config();\n\nconst client = new Hyperbrowser({ apiKey: process.env.HYPERBROWSER_API_KEY as string });\n\nasync function main() {\n const session = await client.sessions.create();\n\n const customHttpsAgent = new https.Agent({});\n (customHttpsAgent as any).addRequest = (req: any, options: any) => {\n req.setHeader('x-hyperbrowser-token', session.token);\n (https.Agent.prototype as any).addRequest.call(customHttpsAgent, req, options);\n };\n\n const driver: WebDriver = await new Builder()\n .forBrowser('chrome')\n .usingHttpAgent(customHttpsAgent)\n .usingServer('https://connect.hyperbrowser.ai/webdriver')\n .setChromeOptions(new Options())\n .build();\n\n try {\n // Navigate to a URL\n await driver.get(\"https://www.google.com\");\n console.log(\"Navigated to Google\");\n\n // Search\n const searchBox = await driver.findElement({ name: \"q\" });\n await searchBox.sendKeys(\"Selenium WebDriver\");\n await searchBox.submit();\n console.log(\"Performed search\");\n\n // Screenshot\n await driver.takeScreenshot().then(data => {\n require('fs').writeFileSync('search_results.png', data, 'base64');\n });\n console.log(\"Screenshot saved\");\n } finally {\n await driver.quit();\n }\n}\n\nif (require.main === module) {\n main().catch(console.error);\n}\n```\n\nCopy\n\n```inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]\nimport os\nfrom dotenv import load_dotenv\n\nfrom selenium import webdriver\nfrom selenium.webdriver.remote.remote_connection import RemoteConnection\nfrom selenium.webdriver.chrome.options import Options\nfrom hyperbrowser import Hyperbrowser\n\n# Load environment variables from .env file\nload_dotenv()\n\nclient = Hyperbrowser(api_key=os.getenv(\"HYPERBROWSER_API_KEY\"))\n\nclass CustomRC(RemoteConnection):\n _signing_key = None\n\n def __init__(self, server: str, token: str):\n super().__init__(server)\n self._token = token\n\n def get_remote_connection_headers(self, parsed_url, keep_alive=False):\n headers = super().get_remote_connection_headers(parsed_url, keep_alive)\n headers.update({'x-hyperbrowser-token': self._token})\n return headers\n\ndef main():\n session = client.sessions.create()\n custom_conn = CustomRC(\"https://connect.hyperbrowser.ai/webdriver\", session.token)\n driver = webdriver.Remote(custom_conn, options=Options())\n\n # Navigate to a URL\n driver.get(\"https://www.google.com\")\n print(\"Navigated to Google\")\n\n # Search\n search_box = driver.find_element(\"name\", \"q\")\n search_box.send_keys(\"Selenium WebDriver\")\n search_box.submit()\n print(\"Performed search\")\n\n # Screenshot\n driver.save_screenshot(\"search_results.png\")\n print(\"Screenshot saved\")\n\nif __name__ == \"__main__\":\n main()\n```\n\n4\n\n### [Direct link to heading](https://www.docs.hyperbrowser.ai/get-started/quickstart/selenium\\#view-session-in-dashboard) View Session in Dashboard\n\nYou can view all your sessions in the [dashboard](https://app.hyperbrowser.ai/) and see their recordings or other key metrics like logs.\n\n[PreviousPlaywright](https://www.docs.hyperbrowser.ai/get-started/quickstart/playwright) [NextOverview](https://www.docs.hyperbrowser.ai/sessions/overview)\n\nLast updated 8 days ago",
"metadata": {
"url": "https://docs.hyperbrowser.ai/get-started/quickstart/selenium",
"title": "Selenium | Hyperbrowser",
"robots": "index, follow",
"og:image": "https://docs.hyperbrowser.ai/~gitbook/ogimage/kb89O3th8srHD87rPAE9",
"og:title": "Selenium | Hyperbrowser",
"viewport": "width=device-width, initial-scale=1",
"generator": "GitBook (fc00b51)",
"link:icon": "https://docs.hyperbrowser.ai/~gitbook/image?url=https%3A%2F%2F4086371784-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Forganizations%252F-MjSP1cG6WWBpRLZETsb%252Fsites%252Fsite_47QD9%252Ficon%252FdJ3PfxcwhL57mzu3TQ7n%252Fhb-svg%25201%2520%281%29.png%3Falt%3Dmedia%26token%3D73062494-e327-43d6-bb23-c3511710e2aa&width=48&height=48&sign=71de792b&sv=2",
"sourceURL": "https://www.docs.hyperbrowser.ai/get-started/quickst