Bonprix Product & Availability Scraper avatar

Bonprix Product & Availability Scraper

Pricing

from $3.00 / 1,000 1,000 bonprix products extracteds

Go to Apify Store
Bonprix Product & Availability Scraper

Bonprix Product & Availability Scraper

Extract Bonprix.de color/article variants with prices, discounts, colors, images, and per-size availability from SSR listings.

Pricing

from $3.00 / 1,000 1,000 bonprix products extracteds

Rating

0.0

(0)

Developer

TrueNorth

TrueNorth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 months ago

Last modified

Categories

Share

Extract current Bonprix.de product data from server-rendered (SSR) search listings. Each Dataset row represents one color/article variant with prices, discounts, colors, images, and size availability. No browser or product-detail request is used. This Bonprix scraper produces structured retail records for export and analysis.

What this Actor extracts

  • Article, product, master-style, and color identifiers
  • Product title, style name, brand, color name, and color hex value
  • Current price, original price when supplied, discount percentage, and currency
  • Product URL and normalized product images
  • Every listed size with source-provided boolean availability
  • Derived inStock status, search query, page number, and observation timestamp

Data comes from strict JSON.parse extraction of Bonprix's server-rendered window.modelContainer listing state. One product tile can contain several style/color variants, and the Actor emits each unique article/color variant.

How it works

  1. Enter one or more Bonprix search queries and a global result limit.
  2. The Actor requests SSR search pages sequentially with CheerioCrawler.
  3. It validates the response, embedded model, pagination, URLs, and every output row.
  4. It deduplicates globally by articleId, stages all rows, and commits only after every required listing request succeeds.
  5. Export the Dataset as JSON, CSV, Excel, or through the Apify API.

Input

Public input contains only:

  • searchQueries: 1–20 search terms, processed in supplied order.
  • maxItems: global cap from 1 to 10,000; default 100.
  • proxyConfiguration: Apify proxy configuration.
{
"searchQueries": ["kleid", "sommerkleid"],
"maxItems": 100,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": []
}
}

Queries receive Unicode Normalization Form C (NFC) and whitespace normalization. Case-insensitive duplicates use first-wins behavior. Unknown input keys fail before network access.

Output sample

Verified against tests/fixtures/search-kleid.html:

{
"articleId": "926761",
"productId": "3610946897",
"masterStyleId": "2372508000",
"title": "Kleid und Bolero aus reiner Baumwolle (2-tlg.Set)",
"brand": "bonprix",
"styleName": null,
"url": "https://www.bonprix.de/produkt/kleid-und-bolero-aus-reiner-baumwolle-2-tlg-set-aschrosa-natur-gebluemt-926761/",
"currentPrice": 29.99,
"oldPrice": null,
"discountPercent": 0,
"currency": "EUR",
"colorId": "3610931920",
"colorName": "aschrosa/natur geblümt",
"colorHex": "#cca2ab",
"images": [
"https://image01.bonprix.de/assets/584x817/1753319189/25084593-ZI5dFZrd.webp"
],
"sizes": [
{
"id": "3610931959",
"name": "92",
"available": true
}
],
"inStock": true,
"searchQuery": "kleid",
"pageNumber": 1,
"scrapedAt": "2026-07-24T12:00:00.000Z"
}

maxItems counts unique validated rows only. Reaching the cap mid-page does not overshoot. All sizes remain nested in server order, including unavailable sizes.

Use cases

  • Current Bonprix price and discount research
  • Fashion assortment and color analysis
  • Size-availability snapshots
  • Product-data exports for BI, catalog matching, and AI pipelines
  • Independently scheduled comparisons performed outside this Actor

Reliability and limitations

HTTP 403/429 responses, challenge content, unexpected redirects, malformed or duplicate model assignments, schema drift, unsafe URLs, unsupported response limitations, and ambiguous empty pages fail explicitly. Empty success requires a valid search model, consistent pagination, and an explicit Bonprix empty-result marker.

Scope is SSR search-listing extraction only:

  • No PDP enrichment or product-detail requests (PDP means product detail page)
  • No EAN (European Article Number) extraction
  • No descriptions, reviews, ratings, or review counts
  • No exact stock quantities; only source-provided per-size boolean availability
  • No delivery estimates or cart/session data
  • No price history, change tracking, or alerts
  • No browser bypass or anti-bot bypass claim; detected blocks fail explicitly

Availability reflects listing observation time and does not reserve inventory.

Development

pnpm install --frozen-lockfile
pnpm test
pnpm test:coverage
pnpm lint
pnpm format:check
pnpm typecheck
pnpm build
apify validate-schema

Private fixture verification is absent from public input and rejected when Actor.isAtHome() is true:

BONPRIX_LOCAL_FIXTURE_MODE=1 \
apify run --purge \
--input '{"searchQueries":["kleid"],"maxItems":5,"proxyConfiguration":{"useApifyProxy":false}}'