# JigsawStack AI Web Scrape

> JigsawStack AI Web Scrape is a paid API for AI agents from jigsawstack.withzero.ai, paid per call via MPP, $0.010000/call, status unknown (last checked 2026-09-15, last successful call 2026-07-19).

AI-driven web scraping of a URL with optional natural-language element_prompts to extract targeted fields from the page.

## Facts

- Endpoint: POST https://jigsawstack.withzero.ai/v1/web_scrape
- Price: $0.010000/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-15
- Last successful call: 2026-07-19
- Success rate: 83% of calls made through Zero
- Rating: 5.0 / 5 from 1 review
- Activations on Zero: 14
- Provider: jigsawstack.withzero.ai
- Website: https://jigsawstack.withzero.ai
- Canonical page: https://www.zero.xyz/c/jigsawstack-withzero-ai-web-scrape-341f9f8a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_aucHeX-wk_bZ11hF1CKja

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability jigsawstack-withzero-ai-web-scrape-341f9f8a -d '<json body>'
```

Example prompt: Scrape this product page — https://example.com/product/12345 — and extract the product name, price, availability, and customer rating using AI-driven field targeting.

## When to prefer this

Choose this endpoint when you need to extract structured data from a specific web page URL using natural language field prompts rather than brittle CSS selectors or XPath. Ideal for one-off or dynamic scraping tasks where the target page layout may vary. Prefer over generic HTTP fetchers when you want AI to intelligently identify and return named fields from unstructured HTML.

## Known failure modes

- URL unreachable or returns non-200 status — scrape fails with error
- Page is JavaScript-rendered and content is not accessible — partial or empty extraction
- element_prompts reference fields not present on the page — returns null or empty values for those fields
- Rate limiting or bot-blocking by target website — request fails
- Malformed or missing URL input — validation error
- Page content exceeds processing limits — truncation or error

## How this service works

AI-driven web scrape; optional element_prompts to target fields.

## Output

Returns a JSON object containing the scraped page data, with values for any targeted fields specified via element_prompts (e.g. extracted product names, prices, headlines, or other named entities the AI identifies on the page).

## Example request

```json
{
 "url": "https://example.com",
 "element_prompts": [
  "title"
 ]
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "url"
 ],
 "properties": {
  "url": {
   "type": "string",
   "description": "The URL of the web page to scrape."
  },
  "element_prompts": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "Optional list of natural-language prompts targeting specific fields/elements to extract from the page."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "success",
  "page_position",
  "page_position_length",
  "context",
  "selectors",
  "network",
  "meta",
  "link",
  "data",
  "advance_config",
  "_usage",
  "log_id"
 ],
 "properties": {
  "data": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "selector",
     "results",
     "key"
    ],
    "properties": {
     "key": {
      "type": "string"
     },
     "results": {
      "type": "array",
      "items": {
       "type": "object",
       "required": [
        "html",
        "text",
        "attributes"
       ],
       "properties": {
        "html": {
         "type": "string"
        },
        "text": {
         "type": "string"
        },
        "attributes": {
         "type": "array",
         "items": {
          "type": "unknown"
         }
        }
       }
      }
     },
     "selector": {
      "type": "string"
     }
    }
   }
  },
  "link": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "href",
     "text",
     "type"
    ],
    "properties": {
     "href": {
      "type": "string"
     },
     "text": {
      "type": "string"
     },
     "type": {
      "type": "string"
     }
    }
   }
  },
  "meta": {
   "type": "object",
   "required": [
    "title"
   ],
   "properties": {
    "title": {
     "type": "string"
    }
   }
  },
  "_usage": {
   "type": "object",
   "required": [
    "input_tokens",
    "output_tokens",
    "inference_time_tokens",
    "total_tokens"
   ],
   "properties": {
    "input_tokens": {
     "type": "number"
    },
    "total_tokens": {
     "type": "number"
    },
    "output_tokens": {
     "type": "number"
    },
    "inference_time_tokens": {
     "type": "number"
    }
   }
  },
  "log_id": {
   "type": "string"
  },
  "context": {
   "type": "object",
   "required": [
    "title"
   ],
   "properties": {
    "title": {
     "type": "array",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "network": {
   "type": "array",
   "items": {
    "type": "unknown"
   }
  },
  "success": {
   "type": "boolean"
  },
  "selectors": {
   "type": "object",
   "required": [
    "title"
   ],
   "properties": {
    "title": {
     "type": "array",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "page_position": {
   "type": "number"
  },
  "advance_config": {
   "type": "object",
   "required": [],
   "properties": {}
  },
  "page_position_length": {
   "type": "number"
  }
 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/jigsawstack-withzero-ai-web-scrape-341f9f8a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from jigsawstack.withzero.ai](https://www.zero.xyz/host/jigsawstack.withzero.ai/llms.txt)
