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.
Works with any Chromium-based browser — Google Chrome, Microsoft Edge, Brave, Opera, Arc, and more.
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
- Click the BrowserWorker icon in your browser toolbar and paste the key
- Enter a worker name (e.g., "My PC")
- Click Connect
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" }, // Navigate to the login page
{ "fill": ["input[name=email]", "user@example.com"] }, // Type email into the input
{ "fill": ["input[name=password]", "mypassword"] }, // Type password
{ "click": "button[type=submit]" }, // Click the submit button
{ "waitForElement": ".dashboard" }, // Wait for dashboard to appear
{ "screenshot": "viewport" } // Take a screenshot
]
Example: Extract Data from a Page
[
{ "openNewTab": "https://example.com/products" }, // Navigate to the products page
{ "waitForElement": ".product-card" }, // Wait for product cards to load
{
"extractAll": [ // Extract data from all matching elements
".product-card", // CSS selector to match
{
"title": "h3", // Get text from <h3>
"price": ".price", // Get text from .price element
"link": ["a", "href"] // Get href attribute from <a>
}
]
}
]
What's Next?
- How It Works — Understand the architecture
- API Reference — Full request/response documentation
- Actions — All supported browser actions
- Configuration — Timeouts, error handling, and more