Configuration
Control task behavior with global and per-action options.
Global Config
Pass a config object in your request to set defaults for all actions:
{
"actions": [...],
"config": {
"actionTimeout": 5000,
"continueOnError": true
}
}
| Option | Type | Default | Description |
|---|---|---|---|
actionTimeout | number | 10000 | Default timeout in ms for actions that wait for elements |
continueOnError | boolean | true | If true, continue executing remaining actions when one fails |
Task Timeout
The top-level timeout controls how long the server waits for the entire task to complete:
{
"actions": [...],
"timeout": 60000
}
This is clamped to your plan's maximum:
| Plan | Max Timeout |
|---|---|
| Free | 1 minute |
| Basic | 2 minutes |
| Standard | 5 minutes |
| Pro | 15 minutes |
If not specified, defaults to 30000 ms (30 seconds).
Per-Action Options
Override global settings for individual actions using the options object:
{
"click": "#slow-loading-btn",
"options": {
"timeout": 15000,
"continueOnError": true
}
}
Common Options
| Option | Type | Default | Description |
|---|---|---|---|
timeout | number | actionTimeout | Override timeout for this action |
continueOnError | boolean | — | Override error handling for this action |
waitFor | boolean | true | Wait for element to appear |
showClick | boolean | true | Show red pulsing ring when interacting |
iframe | string | string[] | — | Target element inside iframe(s) |
Targeting a Specific Worker
By default, the server auto-selects an available worker. To target a specific one:
{
"actions": [...],
"workerId": "-Om8GAObZSvE8trPMPZF"
}
Iframe Support
Target elements inside iframes using the iframe option:
{
"click": ".inner-button",
"options": { "iframe": "#content-frame" }
}
For nested iframes, pass an array of selectors:
{
"click": ".deep-button",
"options": { "iframe": ["#outer-frame", "#inner-frame"] }
}
Example: Mixed Error Handling
{
"actions": [
{ "openNewTab": "https://example.com" },
{ "click": ".optional-popup-close", "options": { "continueOnError": true, "timeout": 2000 } },
{ "fill": ["input[name=search]", "laptop"] },
{ "click": "#search-btn" },
{ "waitForElement": ".results", "options": { "timeout": 15000 } },
{ "screenshot": "viewport" }
],
"config": {
"continueOnError": false,
"actionTimeout": 10000
},
"timeout": 60000
}
In this example, the popup close is optional (continueOnError: true on that action), but all other actions will stop on failure (continueOnError: false globally).