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.

Output agents can act onReal browser renderingMozilla-backed privacy

agent.research · competitor scan

query: “Compare pricing and free tiers across the top 3 analytics platforms”

Synthesized Comparison

PlatformEntry priceFree tier
Northwind$0/moYes
Cobalt$29/seatNo
Meridian$49/moLimited
9 sources cited across 3 vendors

For your agent

Everything your agent needs, in one file

No crawling the docs or piecing it together.

Open /agents.md →

Start here

Get a Key, Then Make the Call

Get an API key and set it as TABSTACK_API_KEY. Nothing else to configure.

Features

  • MCP server: https://tabstack.stlmcp.com
  • CLI: github.com/Mozilla-Ocho/tabstack-cli
  • Authenticate: tabstack auth login
.mcp.json
{
  "mcpServers": {
    "tabstack": {
      "type": "http",
      "url": "https://tabstack.stlmcp.com",
      "headers": { "x-tabstack-api-key": "${TABSTACK_API_KEY}" }
    }
  }
}

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
/extract/json
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"}}}'
200 OK · application/json
{
  "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

StatusError Type
400BadRequest
401Authentication
403PermissionDenied
404NotFound
409Conflict
422UnprocessableEntity
429RateLimit
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.