Bonprix Product & Availability Scraper
Pricing
from $3.00 / 1,000 1,000 bonprix products extracteds
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
Maintained by CommunityActor 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
inStockstatus, 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
- Enter one or more Bonprix search queries and a global result limit.
- The Actor requests SSR search pages sequentially with
CheerioCrawler. - It validates the response, embedded model, pagination, URLs, and every output row.
- It deduplicates globally by
articleId, stages all rows, and commits only after every required listing request succeeds. - 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-lockfilepnpm testpnpm test:coveragepnpm lintpnpm format:checkpnpm typecheckpnpm buildapify 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}}'