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
- In the dashboard, copy your Worker API Key
- Open the extension popup and paste the key
- Enter a worker name (e.g., "My PC")
- 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
- JavaScript
- PHP
- Python
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" }
]
}'
const response = await fetch('https://api.browserworker.app/v1/', {
method: 'POST',
headers: {
'Authorization': 'Bearer <YOUR_BEARER_TOKEN>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
actions: [
{ openNewTab: 'https://example.com' },
{ screenshot: 'viewport' },
],
}),
});
const result = await response.json();
console.log(result);
$ch = curl_init('https://api.browserworker.app/v1/');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer <YOUR_BEARER_TOKEN>',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'actions' => [
['openNewTab' => 'https://example.com'],
['screenshot' => 'viewport'],
],
]),
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
print_r($result);
import requests
response = requests.post(
'https://api.browserworker.app/v1/',
headers={'Authorization': 'Bearer <YOUR_BEARER_TOKEN>'},
json={
'actions': [
{'openNewTab': 'https://example.com'},
{'screenshot': 'viewport'},
],
},
)
print(response.json())
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?
- How It Works — Understand the architecture
- API Reference — Full request/response documentation
- Actions — All 37 supported browser actions
- Configuration — Timeouts, error handling, and more