Skip to main content

Get Started

BrowserWorker lets you remotely automate real browsers via API using Chrome Extensions. Send HTTP requests to control browsers — click buttons, fill forms, upload files, take screenshots, and more.

How It Works

┌─────────────────┐    POST /v1/     ┌──────────────────┐
│ Your App │ ───────────────► │ │
│ │ ◄─────────────── │ API Server │
│ n8n / cURL / │ JSON Response │ │
│ Python / PHP │ └────────┬─────────┘
└─────────────────┘ │

Real-time messaging

┌────────┴─────────┐
│ Chrome Extension │
│ │
│ • Click buttons │
│ • Fill forms │
│ • Screenshots │
│ • Upload files │
│ • Extract data │
│ • ... │
└──────────────────┘

Quick Start

1. Create an Account

Sign up at browserworker.app

2. Install the Chrome Extension

Install the BrowserWorker extension from the Chrome Web Store.

3. Connect a Worker

  1. In the dashboard, copy your Worker API Key
  2. Open the extension popup and paste the key
  3. Enter a worker name (e.g., "My PC")
  4. Click Register

Your worker should now appear as online in the dashboard.

4. Get Your Bearer Token

In the dashboard, find your Bearer Token under the API section. This is used to authenticate API requests.

5. Send Your First Request

curl -X POST https://api.browserworker.app/v1/ \
-H "Authorization: Bearer <YOUR_BEARER_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"actions": [
{ "openNewTab": "https://example.com" },
{ "screenshot": "viewport" }
]
}'

Response

{
"success": true,
"taskId": "task_abc123_1711234567",
"workerId": "-Om8E6V_dV3w8mb27ikb",
"workerName": "My PC",
"data": {
"success": true,
"url": "https://files.browserworker.app/screenshots/..."
},
"duration": 3200
}

Example: Fill a Form and Submit

[
{ "openNewTab": "https://example.com/login" },
{ "fill": ["input[name=email]", "user@example.com"] },
{ "fill": ["input[name=password]", "mypassword"] },
{ "click": "button[type=submit]" },
{ "waitForElement": ".dashboard" },
{ "screenshot": "viewport" }
],

Example: Extract Data from a Page

[
{ "openNewTab": "https://example.com/products" },
{ "waitForElement": ".product-card" },
{
"extractAll": [
".product-card",
{
"title": "h3",
"price": ".price",
"link": ["a", "href"]
}
]
}
]

What's Next?