Web Page Data Extraction

Read a supported public web page and map its content to requested fields. Returns structured data; blocked pages return an access error.

Pay by wallet (x402) AI-generated web-extract

Example

Input
{
  "url": "https://example.com"
}
Answer
{
  "data": {
    "url": "https://example.com",
    "title": "Example Domain",
    "metadata": {
      "page_type": "informational"
    },
    "main_content": {
      "links": [
        {
          "url": null,
          "text": "Learn more"
        }
      ],
      "headings": [
        "Example Domain",
        "Example Domain"
      ],
      "body_text": "This domain is for use in documentation examples without needing permission. Avoid use in operations."
    }
  },
  "page_title": "Example Domain",
  "source_url": "https://example.com"
}

Inputs

FieldTypeRequiredWhat it is
urlstringYesURL to extract data from
extractstringNoWhat data to extract (natural language)

Output fields

How reliably each field appears in a successful answer.

FieldTypeAppears
dataobjectAlways (present in every successful answer)
page_titlestringAlways (present in every successful answer)

How to call it

The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.

# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
  -H "Authorization: Bearer $STRALE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "capability_slug": "web-extract",
    "inputs": {
      "url": "https://example.com"
    },
    "max_price_cents": 15
  }'

Limitations

  • Some website sources are unsupported

    Trustpilot, Glassdoor, LinkedIn, Google Search, Google Patents, Reddit and the major social platforms (Facebook, Instagram, X) are not supported and return a policy error before the page is read. Repeating the same request does not return content.

  • Login, CAPTCHA and multi-step pages are inaccessible

    Renders pages via headless browser — pages requiring login, CAPTCHA, or multi-step navigation cannot be accessed

    What to do instead: Use an accessible public page containing the information you need.

  • Complex layouts can lose structural context

    AI extraction interprets page content — complex data tables or deeply nested layouts may lose structural context

    What to do instead: Use structured-scrape with CSS selectors when you know the page structure, and review complex tables against the original.

  • Output size cap per call

    Structured output is limited to about 16000 output tokens per call; requests exceeding this limit are refused rather than returned truncated. Requests with large results can exceed this limit, and repeating the same request does not help.

    What to do instead: Narrow the 'extract' instruction, or split the request into multiple calls (e.g. one page or one section at a time)

  • Pages are limited to 16 MiB of HTML

    Pages with more than 16 MiB of HTML are refused with a caller_input error naming the input field. The call is not charged, and the page is not retried through another fetch or rendering route.