Auchan.fr Scraper - Grocery, Prices, Promos & Reviews
Pricing
from $1.00 / 1,000 product results
Auchan.fr Scraper - Grocery, Prices, Promos & Reviews
Scrape Auchan.fr products: grocery, drinks, household and general merchandise. Real price scoped to your drive/delivery point, genuine was-price and discount % when on offer, unit price, brand, shopper ratings and reviews. Search by keyword or paste product/search/category links.
Pricing
from $1.00 / 1,000 product results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Auchan France Scraper
Pull product data from Auchan.fr -- the French hypermarket/grocery chain's full storefront: food, drinks, household goods and general merchandise. Search by keyword with brand and "on offer" filters, or paste product/search/category links directly. Every record includes the current price scoped to your chosen drive/click&collect/delivery point, a genuine strike-through was-price and discount % whenever a product is genuinely on offer, unit price, stock/availability, images, and Auchan's own native shopper rating and review feed.
Why This Scraper?
- Real, store-scoped prices. Auchan.fr only shows prices once a drive/click&collect point or delivery address is chosen, exactly like the site's own "Choisir vos courses" flow -- this scraper reproduces that with a postal code you provide, so prices and stock match what a real shopper at that address would see.
- Was-price captured only when it's real. Auchan runs genuine promotions with a real prior price -- this scraper reads the site's own strike-through price element per item and only ever sets a was-price/discount when it's genuinely present and higher than the current price. Full-price items get
null, never a fabricated markdown. - Loyalty cashback kept separate from a real discount. Auchan's "Avantages Waaoh" badge is a loyalty rewards-points percentage, not a price cut -- it is surfaced under its own
loyaltyCashbackPercentfield so it can never be mistaken for a genuine promotion. - Real shopper reviews, not a third-party vendor. Ratings and reviews come from Auchan's own on-site review widget (overall rating, star-by-star breakdown, per-review author/date/rating/title/body), included on request.
- Unit pricing included. The site's own €/kg or €/L unit price is read directly, never guessed from a pack size.
- Two ways in. Keyword search with brand/offer filters and sort, or paste any product, search, or category link.
- Optional export to your apps. Send results into Notion, Linear, Airtable, or any Apify MCP connector alongside the dataset.
- Resume and recurring updates. Turn on Incremental mode to get only NEW, UPDATED, and REAPPEARED products on every scheduled run, or resume one specific interrupted crawl with
resumeFromRunId.
A note on store scope and product detail
Auchan.fr's whole catalogue is scoped to a chosen store/delivery point -- this scraper resolves one from the postal code/city you provide (postalCode) the same way the site's own picker does, before any search or product fetch. If a postal code can't be resolved to a real address, identity fields (title, brand, images, rating) still populate but price/stock may come back empty rather than fabricated. The product card already carries price, was-price, unit price, rating and one image; the genuinely additive per-product fetch is the detail page's full category breadcrumb, EAN, complete image gallery and native review feed -- turned on with fetchDetails (always on for a pasted product URL).
Data You Get
| Field | Example value |
|---|---|
| productId / title | 1e83a750-95a1-463d-a817-89b67188b8d1, AUCHAN Lait demi-écrémé UHT |
| brand / category / categoryPath | AUCHAN, Laits, boissons végétales, oeufs, ["Produits laitiers, oeufs, fromages", "Laits, boissons végétales, oeufs", "Lait demi-écrémé"] |
| productUrl / images | https://www.auchan.fr/auchan-lait-demi-ecreme-uht/pr-C1177774, full-resolution image list |
| price / currency | 6.42, EUR |
| wasPrice / discountAmount / discountPercent | 12.15, 3.65, 30.0 (only when genuinely on offer) |
| isOnSpecial / loyaltyCashbackPercent | true, 10.0 (Waaoh loyalty cashback, kept separate from a real discount) |
| packSize / unitPrice / unitOfMeasure | "6x1L", 1.07, "€/L" |
| availability / deliveryPromise / stock | "InStock", "Dans mon drive", 78 |
| averageRating / reviewCount | 4.6, 256 |
| ean | 3428274060013 |
| reviews | null by default, full feed with fetchDetails: true |
Sample shape: values above are illustrative placeholders, not from a live product.
How to Use
1. Keyword search (default):
{"mode": "search","postalCode": "75001","searchTerm": "lait","maxItems": 20}
2. Offers only, biggest discount first, home delivery instead of drive:
{"mode": "search","postalCode": "69001","deliveryMode": "shipping","specialsOnly": true,"sortBy": "BIGGEST_DISCOUNT","maxItems": 50}
3. One brand, with full detail and reviews:
{"mode": "search","postalCode": "75001","searchTerm": "lait","brand": "LACTEL","fetchDetails": true,"maxItems": 20}
4. Paste product / search / category links directly:
{"mode": "url","postalCode": "75001","urls": ["https://www.auchan.fr/lactel-lait-demi-ecreme-bio-uht/pr-C1177205","https://www.auchan.fr/oeufs-produits-laitiers/cremerie-oeufs-laits/ca-n0101"],"maxItems": 50}
Input Parameters
| Parameter | Type | Description |
|---|---|---|
mode | string | search or url. |
postalCode | string | French postal code or city used to resolve a drive/click&collect/delivery point, exactly like the site's own picker. Applies to every mode. |
deliveryMode | string | drive (drive/click&collect, default) or shipping (home delivery). |
searchTerm | string | Keyword against Auchan's own search index (search mode only). |
brand | string | Exact brand name to keep, as shown on the site (search mode only); best-effort match against the site's own brand facet. |
specialsOnly | boolean | Keep only products on a genuine current promotion (search mode only). |
sortBy | string | RELEVANCE, PRICE_ASC, PRICE_DESC, UNIT_PRICE_ASC, UNIT_PRICE_DESC, BIGGEST_DISCOUNT, BESTSELLERS, TOP_RATED, BRAND_ASC, or BRAND_DESC (search mode only). |
urls | array | Product, search, or category listing URLs to scrape (url mode only). |
fetchDetails | boolean | Fetch the full breadcrumb/EAN/image gallery and native review feed. Always on for a pasted product URL. |
maxPages | integer | Cap on search result pages fetched; empty = unlimited. |
maxItems | integer | Cap on total products returned; 0 = unlimited. |
resumeFromRunId | string | Continue one specific previous run/dataset: products already collected there are skipped, so this run only appends new products. For recurring daily monitoring of the same search, use Incremental mode instead -- see "Resume and recurring updates" below. |
incrementalMode | boolean | Daily/recurring monitoring of this same search. First run returns everything as NEW; later runs return only NEW/UPDATED/REAPPEARED by default. See "Resume and recurring updates" below. |
stateKey | string | Optional name for a monitoring campaign, so its incremental state stays stable or is deliberately shared. Auto-derived from postal code, delivery mode, search/URL and filter settings when left empty. |
emitUnchanged | boolean | Incremental mode only. Also return products unchanged since the last run, marked UNCHANGED. Adds and bills extra rows you already have. |
emitExpired | boolean | Incremental mode only. Also return products from a previous run no longer found, marked EXPIRED, once a run has fully scanned the search (not capped, not a resume). Adds and bills extra synthetic rows. |
proxy | object | Apify Proxy configuration used to route requests. The default works out of the box. |
mcpConnectors | array | Optional MCP connectors to export results into (Notion, Linear, Airtable, Apify). |
notionParentPageUrl | string | Notion connector only: page under which item pages are created. |
maxNotifyListings | integer | Cap on items exported to each connector per run. Does not affect the dataset. |
Output Example
{"productId": "1e83a750-95a1-463d-a817-89b67188b8d1","title": "AUCHAN Lait demi-écrémé UHT","brand": "AUCHAN","packSize": "6x1L","productUrl": "https://www.auchan.fr/auchan-lait-demi-ecreme-uht/pr-C1177774","price": 6.42,"currency": "EUR","unitPrice": 1.07,"unitOfMeasure": "€/L","wasPrice": null,"discountAmount": null,"discountPercent": null,"isOnSpecial": false,"loyaltyCashbackPercent": 10.0,"availability": "InStock","deliveryPromise": "Dans mon drive","deliveryChannel": "PICK_UP","stock": 78,"averageRating": 4.6,"reviewCount": 256,"images": ["https://cdn.auchan.fr/media/sample/PRIMARY_0x0/B2CD/"],"categoryPath": ["Produits laitiers, oeufs, fromages", "Laits, boissons végétales, oeufs"],"category": "Laits, boissons végétales, oeufs","ean": "3428274060013","reviews": {"averageRating": 4.4,"reviewCount": 39,"ratingBreakdown": { "5": 25, "4": 10, "3": 1, "2": 0, "1": 3 },"items": [{ "reviewId": "1216547230", "author": "Sample Shopper", "date": "03/04/26", "rating": 5.0, "title": "Excellent rapport qualité prix", "body": "Sample review text.", "verifiedPurchase": true }]}}
Sample shape: values above are illustrative placeholders, not from a live product.
Incremental mode only. When incrementalMode is on, every returned record also carries:
| Field | Description |
|---|---|
changeType | NEW | UPDATED | UNCHANGED | REAPPEARED | EXPIRED |
changedFields | Top-level fields that changed since last seen; non-empty only for UPDATED |
firstSeenAt | When this product was first observed by this monitoring campaign |
lastSeenAt | When this product was last observed |
Resume and recurring updates
There are two different things here -- pick the one that matches what you're doing:
| Need | Use |
|---|---|
| A crawl stopped and should continue | resumeFromRunId |
| Run the same search every day and receive only changes | incrementalMode |
| Keep separate daily campaigns for similar searches | distinct stateKey values |
| Run a normal full snapshot | leave both off |
Resume (resumeFromRunId) continues one specific interrupted or previous large crawl: paste a run ID or dataset ID and this run skips products already collected there, returning only the remaining new products.
Incremental mode (incrementalMode) is for a schedule (for example, daily): the actor remembers the previous run of the same search by itself, so you never paste a run ID. The first run returns everything as NEW. Later runs return only NEW, UPDATED, and REAPPEARED products by default -- duplicates and unchanged products are suppressed (and not charged). Turn on emitUnchanged or emitExpired only when you also want those rows returned (and billed for). State is isolated per postal code, delivery mode, search/URL and detail-mode setup automatically -- Auchan scopes the price itself to the postal code/delivery point, so two different drive points are always tracked separately; set stateKey to name or deliberately share a monitoring campaign.
Scheduled-run example -- same search, run daily:
Day 1 (first run ever for this search):
{ "mode": "search", "postalCode": "75001", "searchTerm": "lait", "incrementalMode": true }
→ every product comes back with "changeType": "NEW".
Day 2 (the schedule fires again, identical input):
{ "mode": "search", "postalCode": "75001", "searchTerm": "lait", "incrementalMode": true }
→ products whose price/promotion/stock/etc. changed come back as "changeType": "UPDATED" with changedFields listing what changed, brand-new products come back as "changeType": "NEW", products that vanished and came back come back as "changeType": "REAPPEARED" -- and products that are still there, unchanged, are not returned at all (suppressed, not charged) unless emitUnchanged is on.
A note on was-price and loyalty cashback
wasPrice/discountAmount/discountPercent/isOnSpecial are only ever set when Auchan's own strike-through price element is genuinely present and higher than the current price -- most full-price items simply carry no was-price, reported honestly rather than invented. This is a completely separate signal from loyaltyCashbackPercent, which reflects Auchan's "Avantages Waaoh" loyalty rewards-points percentage on a purchase -- it never affects the price you pay at checkout and is never folded into the discount fields.
One quirk worth knowing: when sorting by price (PRICE_ASC/PRICE_DESC), Auchan ranks a genuinely discounted item by its reference/list price (wasPrice), not the discounted price you'll actually pay -- so the returned order can look slightly out of sequence against price alone for an on-offer item. This is the site's own ranking behavior, not a scraper defect.
Send results into your apps (MCP connectors)
Optionally pipe results into the apps you already use through Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in the mcpConnectors field. Each connector receives a condensed, human-readable summary per product (title plus key fields), while the complete record always stays in the Apify dataset. For Notion, set notionParentPageUrl to the page the item pages should be created under, and use maxNotifyListings to cap how many items are exported per connector per run. Supported connectors: Notion, Linear, Airtable, and Apify. Leave the field empty to skip; it never changes the dataset output.