AI Task
POST/automate
Execute AI-powered browser automation tasks using natural language with optional geotargeting. This endpoint always streams responses using Server-Sent Events (SSE).
Streaming Response:
- All responses are streamed using Server-Sent Events (
text/event-stream) - Real-time progress updates and results as they're generated
Geotargeting:
- Optionally specify a country code for geotargeted browsing
Use Cases:
- Web scraping and data extraction
- Form filling and interaction
- Navigation and information gathering
- Multi-step web workflows
- Content analysis from web pages
Body Parameters
task: string
The task description in natural language
data: optional unknown
JSON data to provide context for form filling or complex tasks
guardrails: optional string
Safety constraints for execution
maxIterations: optional number
Maximum task iterations
maximum100
minimum1
maxValidationAttempts: optional number
Maximum validation attempts
maximum10
minimum1
url: optional string
Starting URL for the task
formaturi
Returns
AI Task
curl https://api.tabstack.ai/v1/automate \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $TABSTACK_API_KEY" \
-d "{
\"task\": \"Find the top 3 trending repositories and extract their names, descriptions, and star counts\",
\"guardrails\": \"browse and extract only, don't interact with repositories\",
\"maxIterations\": 50,
\"maxValidationAttempts\": 3,
\"url\": \"https://github.com/trending\"
}"event: start
data: {"task": "Find the top 3 trending repositories", "url": "https://github.com/trending"}
event: agent:processing
data: {"operation": "Creating task plan", "hasScreenshot": false}
event: browser:navigated
data: {"title": "Trending - GitHub", "url": "https://github.com/trending"}
event: agent:extracted
data: {"extractedData": "[{\"name\": \"awesome-ai\", \"stars\": \"45.2k\"}]"}
event: task:completed
data: {"success": true, "finalAnswer": "Top 3 trending repos extracted"}
event: complete
data: {"success": true}
event: done
data: {}
{
"error": "maxIterations must be between 1 and 100"
}Returns Examples
event: start
data: {"task": "Find the top 3 trending repositories", "url": "https://github.com/trending"}
event: agent:processing
data: {"operation": "Creating task plan", "hasScreenshot": false}
event: browser:navigated
data: {"title": "Trending - GitHub", "url": "https://github.com/trending"}
event: agent:extracted
data: {"extractedData": "[{\"name\": \"awesome-ai\", \"stars\": \"45.2k\"}]"}
event: task:completed
data: {"success": true, "finalAnswer": "Top 3 trending repos extracted"}
event: complete
data: {"success": true}
event: done
data: {}
{
"error": "maxIterations must be between 1 and 100"
}