
Website Content Crawler
scrape.ly/store/querystone/website-content-crawlerAIDeveloper tools
4 monthly users

Scrape Carrefour France (carrefour.fr) grocery products: prices, unit prices, promotions, availability, EAN barcodes, brands, categories, ratings, images, ingredients and nutrition.
Get Carrefour France (carrefour.fr) grocery products as clean rows: price, price per kg or litre, promotions, availability, EAN barcode, brand, category, rating, Nutri-Score and Eco-Score, plus ingredients, allergens and the nutrition table. Search by keyword, paste category or product links, or look up a basket of barcodes. No login, no Carrefour account, and 20 products usually arrive in about 15 seconds.
lait, pâtes, café en grains), and/or paste carrefour.fr links (category, search or product pages), and/or EAN barcodes.| Field | What it does |
|---|---|
searchQueries | Words to search on carrefour.fr, one per line. |
startUrls | carrefour.fr category (/r/...), search (/s?q=...) or product (/p/...) links. Filters you picked on the site are kept. |
eans | EAN-13, EAN-8 or UPC barcodes to look up. |
maxResults | Products per search or category (default 20, 0 = all). Links to single products and barcodes are not limited. |
includeDetails | Ingredients, allergens, nutrition, storage, manufacturer and rating breakdown (default on). |
minPrice / maxPrice | Price range in euros. |
brands | Only these brands, as written on carrefour.fr (for example LACTEL). |
onlyPromotions / onlyCarrefourBrands / inStockOnly | Promotions only, own label only, orderable products only. |
sortBy | Relevance, price, price per kg/L or rating. |
{
"searchQueries": ["lait", "biscuit chocolat"],
"startUrls": ["https://www.carrefour.fr/r/cremerie/laits"],
"eans": ["3017620422003"],
"maxResults": 50,
"includeDetails": true,
"maxPrice": 5,
"sortBy": "unit-price-asc"
}
One row per product. Main fields:
| Field | Example |
|---|---|
ean, title, brand, packaging, format | 7622300292508, "Biscuits gaufrettes ... MILKA", MILKA, "Le paquet 180 g" |
price, currency, unitPrice, unitPriceUnit | 2.59, EUR, 14.39, KG |
available, purchaseMax | true, 50 |
onPromotion, promotionLabel, promotionPrice, promotionQuantity, promotionStart, promotionEnd | true, "Prenez en 3 = Payez en 2", 5.18 for 3 items |
rating, reviewCount, ratingDistribution | 4.64, 725 |
nutriScore, ecoScore, labels | E, D, ["Organic"] |
category, subcategory, categoryName, categoryPath | "Epicerie sucrée" › "Biscuits" › "Gaufrettes" |
seller, isMarketplace | Carrefour, or the marketplace seller for third-party offers |
url, imageUrl, images | product page and 1500×1500 images |
description, ingredients, allergens, nutrition, storage | with product details on |
manufacturer, manufacturerAddress, manufacturerPhone | the consumer contact printed on the pack |
position, searchQuery, sourceUrl, scrapedAt | where the row came from |
A real row from a test run (trimmed):
{
"ean": "7622300292508",
"title": "Biscuits gaufrettes enrobés au chocolat au lait Choco Suprême MILKA",
"brand": "MILKA",
"packaging": "Le paquet 180 g",
"price": 2.59,
"currency": "EUR",
"unitPrice": 14.39,
"unitPriceUnit": "KG",
"unitPriceLabel": "14.39 € / KG",
"available": true,
"onPromotion": true,
"promotionLabel": "Prenez en 3 = Payez en 2",
"promotionPrice": 5.18,
"promotionInitialPrice": 7.77,
"promotionQuantity": 3,
"promotionEnd": "2026-11-03T23:59:00+0100",
"rating": 4.64,
"reviewCount": 725,
"nutriScore": "E",
"ecoScore": "D",
"categoryPath": ["Epicerie sucrée", "Biscuits", "Gaufrettes"],
"url": "https://www.carrefour.fr/p/biscuits-gaufrettes-enrobes-au-chocolat-au-lait-choco-supreme-milka-7622300292508",
"imageUrl": "https://media.carrefour.fr/media/referential/media/0f493f8e794447ec84a4b9edeaf95416/p_1500x1500/07622300292508_C1C1_s94.jpeg",
"ingredients": "Sucre, farine de BLÉ, beurre de cacao, graisses végétales (palme, coprah en proportions variables), pâte de cacao, LAIT écrémé en poudre, ...",
"allergens": "blé, lait, beurre, soja, oeuf",
"nutrition": {"portions": {"100": {"portionLabel": "100 g", "values": {"valeur énergétique (kcal)": {"quantity": "535 kcal"}, "sucres": {"quantity": "43 g"}, "sel": {"quantity": "0.28 g"}}}}},
"storage": "A conserver à l'abri de la chaleur et de l'humidité.",
"manufacturer": "Mondelez France SAS",
"position": 2,
"searchQuery": "biscuit chocolat",
"scrapedAt": "2026-10-22T02:58:15.451Z"
}
Is it legal to scrape carrefour.fr? The scraper reads public product pages that any visitor can see, without logging in. Check that your use of the data respects Carrefour's terms and the laws that apply to you.
Do I need a login, cookies or a proxy? No. The scraper opens carrefour.fr in a hosted browser in France, passes the site's protection itself and reads the site's own product data. You don't need to configure a proxy.
How many products can I get? Set Max results to 0 for a whole search or category. carrefour.fr serves at most about 10,000 products per search or category and sort order. For bigger listings the scraper reads them by price from both ends and merges the two, and the run's status message shows how many products the site lists. In our test, the "Boissons" aisle (listed as about 11,900) gave about 9,800 distinct products: the rest are counted by the site but never served.
Why is a field empty? Some products simply don't have that information on carrefour.fr (for example, no Nutri-Score on non-food items or no ingredients on fresh produce). Detail fields are only filled when Include product details is on. Allergens are read from the ingredient list, where Carrefour writes them in capitals, so "may contain" traces are included.
Whose prices are these? The prices carrefour.fr shows to a visitor who has not chosen a store (Carrefour's online drive offer). Prices in a specific store can differ.
Can I schedule it or use the API? Yes. Schedule runs to track prices and promotions over time, and start runs or read results through the Scrapely API or integrations.
seller and isMarketplace), but non-food technical specifications are not.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptional🔍 Search terms
Words to search on carrefour.fr, one per line, in French for best results (for example "lait", "pâtes", "café en grains"). Each search returns up to Max results products.
startUrlsarrayOptional🔗 Carrefour links
carrefour.fr links: category pages (https://www.carrefour.fr/r/...), search pages (https://www.carrefour.fr/s?q=...) with any filters you picked on the site, or product pages (https://www.carrefour.fr/p/...). Category and search links return up to Max results products each; product links return that product.
eansarrayOptional🏷️ EAN barcodes
EAN-13, EAN-8 or UPC barcodes to look up, one per line, for example to track a fixed shopping basket. Each barcode returns its product if Carrefour sells it.
maxResultsintegerOptionaldefault 20💯 Max results per search or category
How many products to save for each search term and each category or search link. Use 0 to get every product the site lists. Product links and barcodes are not limited.
includeDetailsbooleanOptionaldefault trueInclude product details
Also read each product's page: description, ingredients, allergens, nutrition table, storage advice, manufacturer contact and the rating breakdown. Turn off for faster price-only runs.
Narrow searches and category pages. Product links and barcodes are always returned.
minPricenumberOptionalMin price (€)
Only products priced at or above this amount, in euros.
maxPricenumberOptionalMax price (€)
Only products priced at or below this amount, in euros.
brandsarrayOptionalBrands
Only these brands, written as on carrefour.fr (for example LACTEL, CANDIA, CARREFOUR BIO). Leave empty for all brands.
onlyPromotionsbooleanOptionaldefault falseOnly products on promotion
Only products with a current promotion or loyalty offer.
onlyCarrefourBrandsbooleanOptionaldefault falseOnly Carrefour own brands
Only Carrefour's own-label products.
inStockOnlybooleanOptionaldefault falseOnly available products
Skip products that cannot be ordered right now.
sortByenumOptionaldefault "relevance"Sort by
Order of the products, applied by carrefour.fr before Max results is counted.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| ean | string | |
| title | string | null | |
| brand | string | null | |
| packaging | string | null | |
| format | string | null | |
| price | number | null | |
| currency | string | null | |
| unitPrice | number | null | |
| unitPriceUnit | string | null | |
| unitPriceLabel | string | null | |
| available | boolean | null | |
| purchaseMin | number | null | |
| purchaseMax | number | null | |
| variableWeight | boolean | null | |
| onPromotion | boolean | null | |
| promotionLabel | string | null | |
| promotionType | string | null | |
| promotionIsLoyalty | boolean | null | |
| promotionPrice | number | null | |
| promotionInitialPrice | number | null | |
| promotionDiscount | number | null | |
| promotionQuantity | number | null | |
| promotionStart | string | null | |
| promotionEnd | string | null | |
| promotions | array | null | |
| rating | number | null | |
| reviewCount | number | null | |
| nutriScore | string | null | |
| ecoScore | string | null | |
| category | string | null | |
| subcategory | string | null | |
| categoryName | string | null | |
| categoryPath | array | null | |
| categoryIds | array | null | |
| categoryUrl | string | null | |
| labels | array | null | |
| isBestSeller | boolean | null | |
| isNew | boolean | null | |
| seller | string | null | |
| isMarketplace | boolean | null | |
| businessType | string | null | |
| cdbase | string | null | |
| offerId | string | null | |
| url | string | null | |
| imageUrl | string | null | |
| images | array | null | |
| description | string | null | |
| regulatedName | string | null | |
| ingredients | string | null | |
| allergens | string | null | |
| nutrition | object | null | |
| consumerBenefits | string | null | |
| storage | string | null | |
| origin | string | null | |
| manufacturer | string | null | |
| manufacturerAddress | string | null | |
| manufacturerPhone | string | null | |
| manufacturerWebsite | string | null | |
| ratingDistribution | object | null | |
| detailsFetched | boolean | null | |
| position | number | null | |
| searchQuery | string | null | |
| sourceUrl | string | null | |
| scrapedAt | string |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Product | One carrefour.fr product saved to the dataset, with prices, promotions, availability and, when product details are on, ingredients and nutrition. | $0.0019 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/carrefour-scraper').call({
"searchQueries": [
"lait"
],
"maxResults": 20
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/carrefour-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/carrefour-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Prices, unit prices, promotions, ingredients and nutrition from a carrefour.fr category page.
Look up fixed products by barcode or link to track their price.
Price range filter with the lowest price first, without product details.
Only products with a current promotion, with label, promo price and dates.
Brand filter on a search.

Scrape Google Maps places for any search term and city, with no code or with one API call. A real run, its output, its log and its exact cost, plus the limits and the legal side.
Read the article
Paste an Amazon search or product URL into a ready-made Actor and get one row per product with price, ASIN, rating and review count. This guide covers the no-code steps, the API, ZIP code pricing, a real run and its cost.
Read the article
Scrape Google search results by query and country and get each results page as JSON: organic results with positions, People Also Ask and related searches. Run it without code or from Python, with a real run, the cost per page and Google's terms.
Read the articleScrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.