Skip to content
Get started

JSON

POST/extract/json

Fetches a URL and extracts structured data according to a provided JSON schema

Body ParametersExpand Collapse
json_schema: unknown

JSON schema definition that describes the structure of data to extract.

url: string

URL to fetch and extract data from

formaturi
effort: optional "min" or "standard" or "max"

Fetch effort level controlling speed vs. capability tradeoff. "min": fastest, no fallback (1-5s). "standard": balanced with enhanced reliability (default, 3-15s). "max": full browser rendering for JS-heavy sites (15-60s).

Accepts one of the following:
"min"
"standard"
"max"
geo_target: optional object { country }

Optional geotargeting parameters for proxy requests

country: optional string

Country code using ISO 3166-1 alpha-2 standard (2 letters, e.g., "US", "GB", "JP"). See: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

nocache: optional boolean

Bypass cache and force fresh data retrieval

JSON

curl https://api.tabstack.ai/v1/extract/json \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $TABSTACK_API_KEY" \
    -d '{
          "json_schema": {
            "properties": {
              "stories": {
                "items": {
                  "properties": {
                    "author": {
                      "description": "Author username",
                      "type": "string"
                    },
                    "points": {
                      "description": "Story points",
                      "type": "number"
                    },
                    "title": {
                      "description": "Story title",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "url": "https://news.ycombinator.com",
          "effort": "standard"
        }'
{
  "error": "invalid JSON request body"
}
{
  "error": "failed to fetch URL"
}
Returns Examples
{
  "error": "invalid JSON request body"
}
{
  "error": "failed to fetch URL"
}