# Auchan France Product Scraper (`bovi/auchan-scraper`) Actor

Collect Auchan.fr product listings and details into Apify dataset records. Get product IDs, titles, URLs, and images. Run with searchTerm or URLs; no buyer API key or login. Pricing: $0.0021 per product result on Free, plus $0.00005 per Actor start.

- **URL**: https://apify.com/bovi/auchan-scraper.md
- **Developed by:** [Vitalii Bondarev](https://apify.com/bovi) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Features:** Limited permissions
- **Stats:** 4 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.10 / 1,000 auchan france product scrapers

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Auchan.fr Product Scraper

Scrape public product listings and product-page details from Auchan.fr search, category, and product pages into Apify dataset records; no buyer key or login is needed. Free-plan pricing is detailed in the Pricing section.

- Extract product IDs, titles, URLs, pack sizes, ratings, review counts, and images for catalog research.
- Enrich listings with brands, category breadcrumbs, EANs, Auchan references, descriptions, galleries, and visible reviews.
- Compare product assortments using product identifiers, EANs, pack sizes, and category data.
- Analyze visible customer feedback with review text, ratings, dates, authors, and verified-purchase flags.
- Run with your Apify account without supplying buyer API keys, cookies, or website login credentials.

### What you get

The Actor reads public Auchan.fr HTML pages. Search and category pages provide listing fields when they are shown; product-page detail mode can add the product-page fields below.

| Field | Type | Included when | Description |
| --- | --- | --- | --- |
| `productId` | string | Listing or product page | Auchan product identifier. |
| `title` | string | Listing or product page | Product name shown by Auchan.fr. |
| `productUrl` | string | Listing or product page | Canonical Auchan.fr product-page URL. |
| `packSize` | string | Listing card or product page | Pack size shown on the source page. |
| `images` | string array | Listing or product page | Product image URLs served by Auchan’s CDN. |
| `brand` | string | Product-page details | Brand shown on the product page. |
| `category` | string | Product-page details | Visible Auchan.fr category breadcrumb. |
| `ean` | string | Product-page details | EAN shown in the product reference section. |
| `reference` | string | Product-page details | Auchan product reference shown next to the EAN. |
| `description` | string | Product-page details | Product description shown on the product page. |
| `averageRating` | number | When shown on the source page | Average customer rating shown by Auchan.fr. |
| `reviewCount` | integer | When shown on the source page | Customer review count shown by Auchan.fr. |
| `reviews` | object array | Visible review cards on a product page | Review entries with `reviewId`, `author`, `publishedDate`, `rating`, `title`, `body`, and `verifiedPurchase` when those values are rendered. |

`fetchDetails` controls whether listing results are opened for product-page enrichment. A direct product URL is parsed as a product page. Missing source values are omitted instead of invented.

> **Note:** The Actor does not output price, promotion, or stock fields.

### Sample output

This shortened record keeps the first `reviews` item and omits the remaining review items. Every value shown is copied from the dataset sample.

```json
{
  "productId": "dfde550c-b56c-4e5b-b838-b0e9c7641337",
  "title": "GALLIA Calisma 1 lait 1er âge en poudre dès la naissance à 6 mois",
  "productUrl": "https://www.auchan.fr/gallia-calisma-1-lait-1er-age-en-poudre-des-la-naissance-a-6-mois/pr-C1457272",
  "packSize": "830g",
  "images": ["https://cdn.auchan.fr/media/P0200000000198APRIMARY_0x0/B2CD/?width=2048&height=2048&fit=pad&format=rw&quality=75"],
  "brand": "GALLIA",
  "category": "Tout pour bébé > Laits, petits-déjeuners de bébé > Laits 1er âge (0-6 mois)",
  "reference": "319633",
  "ean": "3041091725929",
  "averageRating": 4.6,
  "reviewCount": 18,
  "reviews": [{
    "reviewId": "1179340411", "author": "Costa", "publishedDate": "21/01/25", "rating": 5, "title": "Bon", "body": "Bon produit et prix très abordable", "verifiedPurchase": true
  }],
  "description": "GALLIA CALISMA 1 accompagne votre bébé au quotidien, dès la naissance jusqu'à 6 mois, lorsqu'il n'est pas allaité. S'appuyant sur 50 ans de recherche sur le lait maternel, le Laboratoire Gallia a développé cette formule pour accompagner bébé et contribuer à répondre à ses besoins nutritionnels spéciﬁques¹. ¹Conformément à la réglementation des préparations pour nourrissons. Une association unique d'ingrédients et nutritionnellement complet. (Adapté comme seule source de nutrition dès la naissance et au sein d'une alimentation diversifiée dès 6 mois. Conformément à la réglementation des préparations pour nourrissons)"
}
```

### Pricing

This Actor uses pay-per-event billing. Free-plan prices:

| Charge event | Free-plan price | What it covers |
| --- | ---: | --- |
| `apify-actor-start` | $0.00005 per event on the Free plan | Charged when the Actor starts running. |
| `apify-default-dataset-item` | $0.0021 per product result on the Free plan | One scraped result with all fields. |

On the Free plan, 1,000 results cost 1,000 x $0.0021 = $2.10 plus 1 x $0.00005 = $0.00005 for the start event.

On the Free plan, 10,000 results cost 10,000 x $0.0021 = $21.00 plus 1 x $0.00005 = $0.00005 for the start event.

On the Free plan, 2,380 results cost 2,380 x $0.0021 = $4.998 plus 1 x $0.00005 = $0.00005 for the start event. The Free plan includes $5 of monthly credit, so that credit covers about 2,380 results.

Platform usage for this pay-per-event Actor, including compute, Apify Proxy traffic including residential traffic, and storage, is included in the event prices and paid by the Actor developer. No separate platform-usage charge is added to the user's bill for this Actor. The Apify Store listing shows the rate for other plans.

### How to use

1. **Choose** a keyword in `searchTerm`, or supply one or more Auchan.fr product, search, or category URLs in `urls`. When `urls` is supplied, `searchTerm` is ignored.
2. **Set** `maxResults` from 1 to 1000 to limit the number of product records returned.
3. **Enable** `fetchDetails` to open listing results and add fields available on their public product pages, such as brand, category, EAN, description, image gallery, and visible reviews.
4. **Configure** `proxyConfiguration` as needed. The hosted input is prefilled to use Apify Proxy; set `useApifyProxy` to `false` to use the current network connection directly.
5. **Run** the Actor and inspect the resulting Apify dataset. Listing URLs return their product cards, while a direct product URL returns one product-page record when the page can be fetched and parsed.
6. **Repeat** the run through Apify Schedules, using daily as a starting point for recurring listing monitoring.

Example input:

```json
{
  "searchTerm": "lait bio",
  "maxResults": 10,
  "fetchDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

This example uses the hosted Apify Proxy. Use `"useApifyProxy": false` only for a direct connection, for example when you run the Actor from your own network.

Export the dataset as JSON or CSV, or read it through the Apify dataset API.

### Input parameters

| Parameter | What it does | Default |
| --- | --- | --- |
| `searchTerm` | Searches Auchan.fr for a product keyword. Ignored when `urls` is supplied. | `lait` |
| `urls` | Optional array of Auchan.fr product, search, or category URLs. Each URL is fetched as a single page with no pagination: a product URL returns one product, a listing URL returns the product cards on that page. | Not set |
| `maxResults` | Maximum number of product records returned. Accepted range: 1 to 1000. | `50` |
| `fetchDetails` | Opens listing results’ public product pages and adds available product-page fields. | `true` |
| `proxyConfiguration` | Controls the optional proxy configuration. Set `useApifyProxy` to `false` to use the current network connection directly. | `{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}` (also the prefill) |

### Limits and edge cases

| Condition | What you see | What to do |
| --- | --- | --- |
| `maxResults` is greater than 1000 | The Actor caps the value at 1000. | Set a value from 1 to 1000. |
| `maxResults` is zero or negative | The run returns no product records. | Use a positive value. |
| A supplied URL is outside `auchan.fr`, contains credentials, or is not an accepted public Auchan.fr URL | The URL is skipped and a warning is logged. | Supply an `http` or `https` URL on `auchan.fr` or `www.auchan.fr` without embedded credentials. |
| A supplied URL cannot be fetched, returns a non-HTML response, or returns an empty page | In URL mode, that URL is skipped and the run continues to the next supplied URL. | Check the URL and try the request with Apify Proxy enabled. |
| A search page cannot be fetched | Search pagination stops at that point; records already pushed remain in the dataset. | Check the search term and proxy configuration, then run again. |
| A product-detail request fails while enriching a listing result | The listing record is still pushed without the detail fields that could not be fetched. | Run with `fetchDetails` again, or inspect the listing-only record. |
| A search page contains no valid product cards, or no new records are added | Search pagination stops and the dataset can contain fewer records than `maxResults`, including zero records. | Use a different keyword or provide a valid Auchan.fr listing URL. |
| You need more records than one page gives | Only keyword search paginates, up to 50 pages. Each URL in `urls` is fetched as one page with no pagination. | Supply several listing URLs in `urls`, or run several searches with different keywords. |
| Auchan.fr does not visibly render a field | That field is omitted. | Treat omitted values as unavailable from the fetched page. The Actor does not output price, promotion, or stock fields. |

### FAQ

#### How much does it cost to scrape Auchan.fr products?

On the Free plan the price is $0.0021 per product result, plus $0.00005 for the Actor Start event. See the Pricing section for worked totals.

#### Why did my run return no products?

Search mode stops when a fetched page has no valid product cards or when no new records are added. Check the keyword, try a different keyword or an Auchan.fr listing URL in `urls`, and verify that the target page is publicly accessible.

#### Why are some product details missing or is the run incomplete?

Details are included only when Auchan.fr visibly renders them. A failed detail request leaves the listing record in the dataset without those detail fields. You can retry with `fetchDetails` enabled and Apify Proxy selected.

#### Is scraping public Auchan.fr data legal or allowed?

This Actor reads public pages on Auchan.fr without authentication. Whether a particular use is legal and allowed depends on the source terms and applicable law for your use case; review those requirements before running it.

# Actor input Schema

## `searchTerm` (type: `string`):

Search Auchan.fr for a product keyword, for example lait. Ignored when URLs are supplied.

## `urls` (type: `array`):

Optional Auchan.fr product, search, or category pages. Product pages return one product; listing pages return their product cards.

## `maxResults` (type: `integer`):

Maximum number of product records returned across all pages.

## `fetchDetails` (type: `boolean`):

Open each result's public product page to add fields available there, such as brand, category, EAN, description, and image gallery.

## `proxyConfiguration` (type: `object`):

Optional proxy configuration. Prefilled to use Apify Proxy for hosted requests; set useApifyProxy to false or omit the field to use the current network connection.

## Actor input object example

```json
{
  "searchTerm": "lait",
  "maxResults": 50,
  "fetchDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset with the collected Auchan.fr product records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerm": "lait",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("bovi/auchan-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerm": "lait",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("bovi/auchan-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerm": "lait",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call bovi/auchan-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,bovi/auchan-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/jS924xGxjYDh5wvFn/builds/ATjLdM7LPamRwYVpx/openapi.json
