# Bol.com Product Scraper (x402)

> Bol.com Product Scraper (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes structured product listings and details from bol.com via keyword search or direct URL, returning prices, ratings, conditions, and metadata.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/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-x402-e35e9185
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_joaMa0nUv0Mvfej1b3agt

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-x402-e35e9185 -d '<json body>'
```

Example prompt: Search bol.com for 'noise cancelling headphones', sort by rating, keep only new condition items priced between €50 and €200, grab up to 20 products with full details including specs and reviews.

## When to prefer this

Use this endpoint when you need structured product data specifically from bol.com (the dominant Dutch/Belgian e-commerce platform), especially for price comparison, product research, or building datasets of products sold in the Netherlands and Belgium. Prefer it over generic web scrapers because it returns clean structured fields (price, EAN, condition, rating) without parsing effort, and you are only charged for successful non-empty runs.

## Known failure modes

- Empty results if search terms match no products on bol.com
- No charge on failed or empty runs
- Price/rating filters may exclude all results if thresholds are too strict
- URL mode fails if provided URLs are invalid or non-public bol.com product pages
- maxPages capped at 10 due to bol.com public search limit
- fetchDetails=true significantly increases latency and cost per item

## How this service works

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

## Output

Returns a JSON object with a count and an array of product items, each containing title, brand, price, currency, condition, product ID, list price, and discount percentage. When fetchDetails is enabled, also includes specifications, EAN, description, images, a review sample, 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-x402-e35e9185/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
