Carrefour Belgium Scraper — Grocery Prices
Pricing
from $1.20 / 1,000 result scrapeds
Carrefour Belgium Scraper — Grocery Prices
Scrape products, prices, unit prices, stock status, and images from carrefour.be, Belgium's largest grocery retailer. Search any keyword and export clean structured grocery data.
Pricing
from $1.20 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape grocery products, prices, unit prices, and stock status from carrefour.be, Belgium's largest supermarket retailer. Search any keyword and export clean, structured grocery data.
Why use this actor?
Carrefour is one of the biggest grocery catalogues in Belgium, and its prices, promotions, and stock status are useful for price monitoring, competitor analysis, and market research alongside Colruyt and Delhaize. This actor turns a keyword search into a structured dataset you can drop straight into a spreadsheet, database, or price-comparison pipeline.
How to scrape Carrefour Belgium data
- Enter a search query in French or Dutch (for example
lait/melk,cafe/koffie,pain/brood, orfromage/kaas). The actor uses the French/frstorefront path, which returns the same national catalogue as the Dutch/nlpath. - Set Max Results to how many products you want (each search request returns up to 100 products; the actor paginates automatically).
- Provide a Bright Data API key (see "Anti-bot" below).
- Run the actor. Results stream into the dataset and can be exported as JSON, CSV, Excel, or via the API.
Optionally enable Fetch product details to visit each product page and add a human-readable category and full description. This is slower and more expensive because it makes one extra request per product, and it is not needed for price, unit price, brand, or stock status — those come from the search page directly.
Input
| Field | Type | Required | Description |
|---|---|---|---|
searchQuery | String | No | Search keyword in French (default: lait) |
maxResults | Integer | No | Maximum products to return (default: 100) |
fetchDetails | Boolean | No | Visit each product page for a readable category + description (default: false) |
brightDataApiKey | String | Yes | Bright Data Web Unlocker API key (or set BRIGHT_DATA_API_KEY env var) |
proxyConfiguration | Object | No | Kept for compatibility; fetching is handled by Bright Data |
Output
Each result contains:
| Field | Type | Example |
|---|---|---|
productName | String | "Lait Demi-Écrémé 6 x 1 L" |
brand | String | "Simpl" |
price | Number | 5.10 |
currency | String | "EUR" |
unitPrice | String | "0,85 €/l" |
originalPrice | Number | Only when the site renders a strike-through "was" price |
discount | String | "-15%" (only when on promotion) |
category | String | "Lait demi-écrémé" (human-readable with Fetch product details, otherwise an internal category code) |
productId | String | "04875033" — Carrefour's own internal product/SKU code |
inStock | Boolean | true |
imageUrl | String | Primary product image URL |
productDescription | String | Full description (only with Fetch product details) |
url | String | Full product page URL |
scrapedAt | String | ISO 8601 timestamp |
Example output
{"productName": "Lait Demi-Écrémé 6 x 1 L","brand": "Simpl","price": 5.1,"currency": "EUR","unitPrice": "0,85 €/l","category": "Lait demi-écrémé","productId": "04875033","inStock": true,"imageUrl": "https://cdn.carrefour.eu/420_04875033_T1.webp","url": "https://www.carrefour.be/fr/lait-demi-ecreme-6-x-1-l/04875033.html","scrapedAt": "2026-09-14T19:43:33.319Z"}
Anti-bot: Bright Data Web Unlocker required
Carrefour.be is protected by Cloudflare Bot Management (an IP-reputation block, not a JS-only challenge — plain HTTP requests and a plain headless browser both receive a "Attention Required!" 403 page). To fetch pages reliably, this actor uses the Bright Data Web Unlocker (zone web_unlocker1).
You need a Bright Data account with a Web Unlocker zone. Provide the API key either:
- in the input field Bright Data API Key, or
- as the environment variable
BRIGHT_DATA_API_KEY.
Bright Data bills per request. Because each search request returns up to 100 products in a single request, the anti-bot cost per product is very low when you scrape the listing only (the default). Enabling Fetch product details adds one request per product and increases both time and cost significantly.
Cost estimate
- Listing only (default): roughly one Bright Data request per 100 products, plus Apify compute. Scraping 1,000 products is about 10 page requests — fast and cheap.
- With Fetch product details: one extra request per product (about 1,010 requests for 1,000 products), so runs are much longer and cost more. Only enable it when you need the readable category or full description.
- A run's usage cost only settles after it reports SUCCEEDED — a failed or aborted run may still have consumed proxy requests up to that point, and reading the dataset mid-run will undercount the real cost.
How pagination works
Carrefour Belgium's search uses ?q=<keyword>&start=<offset>&sz=<pageSize> (Salesforce Commerce Cloud's standard offset pagination). The actor requests 100 results per page and keeps going until it reaches your Max Results or runs out of products, deduplicated by Carrefour's internal product ID so the same item is never exported twice.
For long runs with Fetch product details enabled, the actor persists its progress (seen products and page cursor) via Actor.useState. If Apify migrates the run to another host, it resumes where it left off instead of restarting, so you never get duplicate rows or a half-finished catalogue.
Platform notes (for anyone comparing this to our other Carrefour scrapers)
We also run Carrefour France and Carrefour Spain scrapers. All three are genuinely different platforms under one brand, not config swaps of each other:
- carrefour.fr runs a React/Next storefront behind DataDome.
- carrefour.es runs Oracle ATG/Endeca behind Cloudflare Bot Management, with a broken server-side search (this actor resolves keywords against a bundled category-sitemap snapshot instead).
- carrefour.be (this actor) runs Salesforce Commerce Cloud behind Cloudflare Bot Management, with working server-side search.
Because of this, field coverage differs by market. Carrefour Belgium does not publicly expose EAN/GTIN barcodes or customer ratings anywhere on the storefront (verified on both private-label and branded products), so this actor does not return ean, rating, or reviewCount fields — that's a genuine storefront gap, not a scraping limitation.
Limitations
- Prices and stock status are the national Carrefour Belgium catalogue values and may differ from a specific store or Drive/home-delivery slot.
- No EAN/GTIN barcodes or customer ratings — this storefront does not publish them.
categoryreturns an internal code from the search results unless Fetch product details is enabled, which resolves it to the human-readable breadcrumb category.- A Bright Data Web Unlocker key is required; without it the actor cannot fetch pages.
- Data is scraped from the public website and may change without notice.
- Respect the website's terms of service and use responsibly.
Related Scrapers
- Colruyt Scraper — Belgian grocery prices
- Delhaize Scraper — Belgian grocery prices
- Carrefour France Scraper — French grocery prices with EAN barcodes
- Carrefour Spain Scraper — Spanish grocery prices
Need this data on a schedule, or a custom version?
We run this scraper as a managed service for businesses: scheduled runs, deduplication, delta detection, and delivery to your inbox, Google Sheets, or API — maintenance included. We can also build a custom version with your exact fields and filters, or combine multiple sources into one feed.
See studioamba.dev/services or email hello@studioamba.dev for a free data sample. We maintain 300+ European web scrapers and answer within one business day.