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
AI Task
import os
from tabstack import Tabstack
client = Tabstack(
api_key=os.environ.get("TABSTACK_API_KEY"), # This is the default and can be omitted
)
for agent in client.agent.automate(
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",
url="https://github.com/trending",
):
print(agent)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: {}
event: start
data: {"task": "Find product details", "url": "https://store.com/product"}
event: browser:navigated
data: {"title": "Product Page", "url": "https://store.com/product"}
event: agent:extracted
data: {"extractedData": "{\"name\": \"Headphones\", \"price\": \"$299.99\"}"}
event: task:completed
data: {"success": true}
event: done
data: {}
{
"error": "maxIterations must be between 1 and 100"
}{
"error": "invalid URL format"
}{
"error": "task is required"
}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: {}
event: start
data: {"task": "Find product details", "url": "https://store.com/product"}
event: browser:navigated
data: {"title": "Product Page", "url": "https://store.com/product"}
event: agent:extracted
data: {"extractedData": "{\"name\": \"Headphones\", \"price\": \"$299.99\"}"}
event: task:completed
data: {"success": true}
event: done
data: {}
{
"error": "maxIterations must be between 1 and 100"
}{
"error": "invalid URL format"
}{
"error": "task is required"
}