For agents · /agents
Give your agent finished output from the live web in a single API call.
Your agent reads any page as structured data or clean Markdown, gets cited answers researched across live sources, and acts on sites that need navigation or forms.
agent.research · competitor scan
Synthesized Comparison
For your agent
Everything your agent needs, in one file
No crawling the docs or piecing it together.
Start here
Get a Key, Then Make the Call
Every surface uses one API key. Set it as TABSTACK_API_KEY from the console, or let the CLI provision one for you (below). For an agent, the hosted MCP endpoint is the fastest way in.
Features
- ✓Hosted MCP server:
https://tabstack.stlmcp.com - ✓Also available: TypeScript & Python SDKs
- ✓Prefer the terminal? Use the CLI below
{
"mcpServers": {
"tabstack": {
"type": "http",
"url": "https://tabstack.stlmcp.com",
"headers": { "x-tabstack-api-key": "${TABSTACK_API_KEY}" }
}
}
}Command line
Prefer the Terminal? Use the CLI
One command installs it, and tabstack auth login signs you in through your browser and provisions your API key in the same step. No separate signup, no key to copy by hand.
Features
- ✓Sign in + key in one step:
tabstack auth login - ✓Every endpoint from the terminal or a script
# Install (macOS / Linux)
curl -fsSL https://tabstack.ai/install.sh | sh
# Sign in with your browser — creates your account and provisions an API key in one step
tabstack auth login
# Extract structured JSON from any URL
tabstack extract json https://example.com \
--schema '{"type":"object","properties":{"title":{"type":"string"}}}'Five endpoints
Five endpoints cover every job your agent has on the web
Read a page, transform its content, research across live sources, or act on a site. Each is one call that returns finished output.
tabstack extract json \
https://store.example.com/products/aurora-trail-jacket \
--schema '{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"},"in_stock":{"type":"boolean"}}}'{
"name": "Aurora Trail Running Jacket",
"price": 148,
"currency": "USD",
"in_stock": true,
"sizes": [
{ "size": "S", "in_stock": true },
{ "size": "M", "in_stock": false },
{ "size": "L", "in_stock": true }
]
}When to Use Which
- Extract. Use /extract/json when the page has a known structure and you want it as JSON, or /extract/markdown to read a page as clean Markdown.
- Generate. Use /generate/json to transform and summarize page content into a new shape, not just lift what is already there.
- Research. Use /research for a cited answer synthesized across multiple live sources.
- Automate. Use /automate for an interactive multi-step browser task: navigation, clicks, and forms on pages you do not control.
Effort, Caching, Geotargeting
effort: min (fastest), standard (default), max (full browser rendering). On extract/json, extract/markdown, and generate/json.nocache: set true to bypass the cache and force fresh retrieval.geo_target: an ISO 3166-1 alpha-2 country code. On extract/json, extract/markdown, generate/json, and automate. Not on research.
Streaming Model
/automate and /research always stream over Server-Sent Events. Iterate the stream and switch on the event type.
- automate terminates task:validated then task:completed then complete then done. Read the final answer from task:completed.
- research emits phase progress, then one complete event with the cited report. There is no done event for research.
Errors and Retries
| Status | Error Type |
|---|---|
| 400 | BadRequest |
| 401 | Authentication |
| 403 | PermissionDenied |
| 404 | NotFound |
| 409 | Conflict |
| 422 | UnprocessableEntity |
| 429 | RateLimit |
| 500+ | InternalServer |
The SDK retries twice with exponential backoff on 408, 409, 429, and 500+. Everything else throws a typed error you catch.
Point your agent at Tabstack.
Finished output from the live web in a single API call. Get a key and make your first call in minutes. Free to start.