# Bol.com Product Scraper

> Bol.com Product Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Searches and extracts structured product data from bol.com, the largest Dutch-Belgian e-commerce marketplace, with filtering by price, rating, condition, and more

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/bol?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/bol-com-product-scraper-1ab988d7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Ts0yegUGU9s_8AF8BP0gO

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 bol-com-product-scraper-1ab988d7 -d '<json body>'
```

Example prompt: Search bol.com for 'LEGO Technic' sets, sort by price ascending, only show new condition items in stock priced between €20 and €100, fetch full product details including specs and reviews, and return up to 50 results.

## When to prefer this

Choose this endpoint when you need structured, machine-readable product data from bol.com specifically — the dominant e-commerce platform in the Netherlands and Belgium. It is ideal for price monitoring, product research, comparison shopping, or feeding a catalog in the Benelux market. It supports both keyword search and direct URL scraping with rich filtering. The pay-per-call model with no charge for failed or empty runs makes it low-risk for exploratory or automated workflows.

## Known failure modes

- Empty result set if search terms match no products on bol.com (not charged)
- Failed run if bol.com blocks the request or changes its structure (not charged)
- maxPages capped at 10 by bol.com's public pagination limit
- Price or rating filters may exclude all results if thresholds are too strict
- URL mode fails if supplied URLs are invalid, private, or not bol.com product/search pages

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

A JSON object containing a count of matched products and an array of product items, each with fields such as title, brand, price, currency, condition, productId, list_price, and discount_percentage. With fetchDetails enabled, each item also includes EAN, specifications, description, images, a sample of reviews, and alternate seller offers.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "mode": {
   "enum": [
    "search",
    "url"
   ],
   "type": "string",
   "default": "search",
   "description": "Choose keyword search or pasted bol.com URLs."
  },
  "urls": {
   "type": "array",
   "default": [],
   "description": "Public product or search result URLs. Used in URL mode."
  },
  "sortBy": {
   "enum": [
    "relevance",
    "popularity",
    "price_asc",
    "price_desc",
    "rating",
    "newest"
   ],
   "type": "string",
   "default": "relevance",
   "description": "Order search results by relevance, popularity, price, rating, or release date."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Maximum products across all sources. Set 0 for no actor-side item cap."
  },
  "maxPages": {
   "type": "integer",
   "default": 10,
   "minimum": 0,
   "description": "Maximum search pages per phrase, up to the public ten-page cap."
  },
  "maxPrice": {
   "type": "number",
   "minimum": 0,
   "description": "Keep products priced at or below this amount in EUR."
  },
  "minPrice": {
   "type": "number",
   "minimum": 0,
   "description": "Keep products priced at or above this amount in EUR."
  },
  "condition": {
   "enum": [
    "any",
    "new",
    "secondhand",
    "refurbished"
   ],
   "type": "string",
   "default": "any",
   "description": "Keep products whose current best offer has this condition."
  },
  "minRating": {
   "type": "number",
   "maximum": 5,
   "minimum": 0,
   "description": "Keep products with an average rating at or above this value."
  },
  "maxReviews": {
   "type": "integer",
   "default": 10,
   "minimum": 0,
   "description": "Maximum reviews retained from the product page response per item."
  },
  "inStockOnly": {
   "type": "boolean",
   "default": false,
   "description": "Keep only products with a current best offer."
  },
  "searchTerms": {
   "type": "array",
   "default": [],
   "description": "Search phrases, one per entry. Used in search mode."
  },
  "fetchDetails": {
   "type": "boolean",
   "default": false,
   "description": "Visit each product to add specifications, EAN, description, images, review sample, and alternate offers."
  },
  "sponsoredOnly": {
   "type": "boolean",
   "default": false,
   "description": "Keep only marked sponsored results."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "brand": null,
    "price": null,
    "title": null,
    "currency": null,
    "condition": null,
    "productId": null,
    "list_price": null,
    "discount_percentage": null
   }
  ],
  "product": "bol"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/bol-com-product-scraper-1ab988d7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
