# Cdiscount Scraper \[From $3/1k💰] | Prices & Reviews | Sellers (`ahmed_jasarevic/cdiscount-scraper`) Actor

Cdiscount scraper for French e-commerce data: extract product prices, was-prices, sellers, ratings, specs, and customer reviews from Cdiscount.com for price monitoring, market research, and dropshipping research.

- **URL**: https://apify.com/ahmed\_jasarevic/cdiscount-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.97 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Cdiscount Scraper — Products, Prices, Sellers & Reviews

Extract **Cdiscount.com product data** — prices, was-prices, sellers, ratings, specs, and customer reviews — from France's #2 e-commerce marketplace, for **French e-commerce price monitoring**, **market research**, and **dropshipping research**.

The actor queries Cdiscount's internal mobile JSON API (discovered via traffic interception), so each result page is a single ~300–700 ms HTTP request instead of a rendered browser — typically **10–20x faster** than DOM-based scraping and usable without proxies.

### Main Use Cases

- **Cdiscount price monitoring** — track current prices and was-prices over time to detect promotions and price changes.
- **French e-commerce market research** — analyze product availability, seller distribution, and rating signals across the French market.
- **Competitive analysis** — compare Cdiscount offers against Amazon.fr, Fnac, and other French marketplaces for the same products.
- **Dropshipping research France** — discover products, sellers, and price gaps for French-market opportunities.
- **Marketplace seller benchmarking** — collect seller names, IDs, ratings, and sales counts to understand marketplace dynamics.
- **Review mining & sentiment analysis** — pull customer reviews (scores, per-criterion ratings, review text) to understand product perception.

### How It Works

1. Enter a **search keyword** (e.g. `iphone 16`, `aspirateur robot`) or paste **Cdiscount search URLs** (`/search/{dept}/{keyword}.html`).
2. The actor calls Cdiscount's mobile **BFF API** (`bffmobilesite.cdiscount.com`) — the same JSON endpoints the website's own mobile app uses — for search results, sponsored carousel offers, and (optionally) product reviews.
3. Clean structured JSON lands in an **Apify dataset**: product, price, seller, rating, spec, and media fields. Turn on **Include Product Reviews** to collect full customer reviews into a separate `reviews` dataset.
4. Export as **JSON, CSV, Excel, or XML**, or chain it into an automated pipeline via the Apify API, scheduling, webhooks, and no-code integrations.

### Monitor Cdiscount Prices to Detect Promotions & Price Changes

Every product row includes the current `price` **and** the strikethrough `wasPrice` (when Cdiscount publishes one), plus `freeShipping` status and `condition`. Run this actor on a schedule (daily or weekly) with consistent inputs to build a **Cdiscount price history** — spot price drops, promotion cycles (e.g. French Days), and restocking events before competitors do.

### Extract Cdiscount Product Data Without the Official Seller API

Cdiscount's official Marketplace API exists, but it is a **seller-side API**: you need a registered seller account and it is built to manage product sheets, offers, orders, and fulfillment — not to give you public catalog, pricing, or review data for research. This actor accesses the **publicly available data Cdiscount shows any visitor**, through the same JSON API the site's own app uses, with **no login, no seller account, and no proxies required** by default.

### Build a Cdiscount Product Database for Price Comparison & AI Training

Collect `productUrl`, `productCode`, `offerId`, `brand`, `specs`, `variants`, `ean`, and category paths at scale to build structured product catalogs. The clean, documented output schema makes the data easy to load into BigQuery, Google Sheets, Airtable, or your own database for price-comparison engines, product matching, or training datasets.

### Collect Cdiscount Customer Reviews for Product & Sentiment Analysis

Enable **Include Product Reviews** to fetch each product's customer reviews from Cdiscount's product-reviews API: review title and text, star score, per-criterion ratings (`Rapport qualité/prix`, `Performances`, …), helpfulness votes, author name, and review dates — paginated up to 250 reviews per product, sorted by most helpful or most recent. Reviews are stored in a separate `reviews` dataset, linked to products via `productId`.

### Configure the Cdiscount Scraper Input

All fields come from the actor's input schema. `startUrls` takes priority over `keyword` when both are set.

| Field | Type | Required | Default | Notes |
|-------|------|----------|---------|-------|
| `startUrls` | Array | No | — | Cdiscount search URLs (`/search/{dept}/{keyword}.html`). Takes priority over `keyword`. |
| `keyword` | String | No | `smartphone` | Search keyword used to build a search URL when `startUrls` is empty. |
| `maxItems` | Integer | No | `20` | Maximum number of products to collect. |
| `maxPages` | Integer | No | `5` | Maximum number of search result pages to process. |
| `includeSponsored` | Boolean | No | `true` | Include sponsored/advertising listings (via the sponsored carousel API). |
| `numberOfSponsoredOffers` | Integer | No | `9` | How many sponsored offers to fetch per search page (1–20). |
| `cookies` | String | No | — | Optional full `Cookie` header from an active `www.cdiscount.com` session, if the API ever blocks your IP. |
| `includeReviews` | Boolean | No | `false` | Scrape customer reviews for each collected product into a separate `reviews` dataset. |
| `maxReviewsPerProduct` | Integer | No | `25` | Maximum reviews to collect per product (25 per API request, up to 250). |
| `reviewOrderBy` | Integer | No | `2` | Review sort: `1` = most helpful, `2` = most recent. |

#### Example Input

```json
{
  "keyword": "iphone 16",
  "maxItems": 50,
  "maxPages": 5,
  "includeSponsored": true,
  "numberOfSponsoredOffers": 9,
  "includeReviews": true,
  "maxReviewsPerProduct": 50,
  "reviewOrderBy": 2
}
```

### Cdiscount Product & Review Output Fields

Each product dataset item contains:

```json
{
  "productUrl": "https://www.cdiscount.com/telephonie/telephone-mobile/apple-iphone-16e-128gb-black/f-14404-ip16e128black.html",
  "productCode": "ip16e128black",
  "offerId": "4198300313",
  "productName": "APPLE iPhone 16e 128GB Black",
  "price": 649,
  "wasPrice": null,
  "currency": "EUR",
  "averageRating": 4.62,
  "ratingCount": 73,
  "sellerName": "CDISCOUNT",
  "sellerId": 0,
  "sellerRating": 0,
  "sellerSalesCount": null,
  "imageUrl": "https://www.cdiscount.com/pdt2/a/c/k/1/300x300/ip16e128black/rw/apple-iphone-16e-128gb-black.jpg",
  "imageUrls": ["..."],
  "brand": null,
  "brandId": 2826,
  "ean": null,
  "categoryBreadcrumbs": "07/0703/070302/07030201",
  "categoryId": 1000010609,
  "departmentId": 14404,
  "specs": { "Taille de la diagonale": "6,1\"", "Résolution du capteur": "48 Mpx" },
  "variants": [],
  "inStock": true,
  "isSponsored": false,
  "condition": "NEW",
  "freeShipping": "Livraison gratuite",
  "fetchedAt": "2026-09-14T10:54:47.489Z",
  "searchWord": "iphone 16",
  "page": 1
}
```

#### Products dataset fields

| Field | Type | Description |
|-------|------|-------------|
| `productUrl` | String | Absolute URL to the product page |
| `productCode` | String | Cdiscount product identifier from the URL |
| `offerId` | String | Marketplace offer identifier |
| `productName` | String | Product title |
| `price` | Number | Current price in EUR |
| `wasPrice` | Number | Reference/strikethrough price when available |
| `currency` | String | Currency code (EUR) |
| `averageRating` | Number | Average customer rating when available |
| `ratingCount` | Number | Number of ratings when available |
| `sellerName` | String | Marketplace seller name |
| `sellerId` | Number | Seller identifier |
| `sellerRating` | Number | Seller rating when available |
| `sellerSalesCount` | Number | Seller sales count when available |
| `imageUrl` | String | Main product image URL |
| `imageUrls` | Array | All product image URLs |
| `brand` | String | Product brand when available |
| `brandId` | Number | Brand identifier when available |
| `ean` | String | EAN/barcode when available |
| `categoryBreadcrumbs` | String | Category path (e.g. `07/0703/070302`) |
| `categoryId` | Number | Category identifier when available |
| `departmentId` | Number | Cdiscount department identifier |
| `specs` | Object | Technical specifications (key-value) |
| `variants` | Array | Product variants (color/size/capacity) |
| `inStock` | Boolean | Availability flag |
| `isSponsored` | Boolean | Whether the listing is sponsored |
| `condition` | String | Product condition (NEW / used / refurbished) |
| `freeShipping` | String | Shipping benefit text when available |
| `fetchedAt` | String | ISO timestamp of extraction |
| `searchWord` | String | Search term used |
| `page` | Number | Result page number |

#### Reviews dataset fields (when `includeReviews` is enabled)

| Field | Type | Description |
|-------|------|-------------|
| `productId` | String | Cdiscount product code this review belongs to (matches `productCode`) |
| `reviewId` | Number | Unique review identifier |
| `title` | String | Review title |
| `content` | String | Full review text |
| `score` | Number | Star rating (1–5) |
| `nickName` | String | Reviewer display name |
| `customerNumber` | String | Anonymized customer identifier |
| `submissionTime` | String | ISO timestamp of review submission |
| `publishDate` | String | Formatted publication date (`DD/MM/YYYY`) |
| `productUseDate` | String | Date the reviewer started using the product |
| `positiveReviews` / `negativeReviews` | Number | Helpfulness votes |
| `isHelpfulReview` / `isInfluencer` / `isOrigineReview` / `isSponsored` / `isTestCommunityMember` / `isTesterReview` | Boolean | Review source/verification flags |
| `originType` | String | Review origin (`Native`, external, etc.) |
| `criterions` | Object | Per-criterion ratings (e.g. `Rapport qualité/prix`, `Performances`) |
| `averageOverallRating` | Number | Product average rating (from product summary) |
| `totalReviewCount` | Number | Total reviews for the product |
| `fetchedAt` | String | ISO timestamp of extraction |

### Compare Cdiscount Data with Other French Marketplaces

This actor is designed to pair with Amazon.fr, Fnac, Darty, eBay, and LeBonCoin scrapers for **cross-marketplace price comparison**. Because every row carries `productCode`, `offerId`, `ean`, `brand`, and `condition`, you can match the same physical product across marketplaces by EAN or brand+specs — a common pattern for French price-comparison engines and repricing tools.

### How Much Does It Cost to Scrape Cdiscount?

Pay-per-result pricing: each product stored in the dataset costs approximately **$0.003** (~$3 per 1,000 products), plus a tiny actor-start fee of $0.00005 (one event per GB of memory per run). A typical run of 20 products costs a few cents. Free-tier users get a capped preview of 10 items per run.

Because results come from a JSON API rather than a rendered browser, you also save compute: each search page is a single ~300–700 ms request. Enabling reviews adds one small HTTP request per page of 25 reviews, and review events are billed only on runs where **Include Product Reviews** is enabled and only for the reviews actually stored, up to the run's spending limit.

### Run Cdiscount Data Pipelines with Integrations & Automation

- **API access** — run the actor from any codebase via the Apify API (JS/Python clients, REST, or the Apify MCP server for AI agents).
- **Scheduling** — use Apify schedules for recurring daily price snapshots or weekly market reviews (recurring runs also make the actor show up more in Apify Store recommendations).
- **Webhooks** — trigger downstream workflows when a run succeeds.
- **No-code** — push results to Google Sheets, Airtable, or BigQuery, or connect via Zapier/Make.

Recommended schedules: **daily** for price monitoring and promotion tracking; **weekly** for market-share and seller benchmarking; **monthly** for review/sentiment snapshots.

### Related Actors for French E-commerce Data

- [Cdiscount Product Scraper](https://apify.com/shahidirfan/cdiscount-product-scraper) — the most-used Cdiscount actor on Apify; keyword/URL-based product + price research. *(Competitor — linked because it anchors the Cdiscount topic cluster.)*
- [Cdiscount Scraper: Products, Marketplace Sellers & Reviews](https://apify.com/abotapi/cdiscount-scraper) — the most feature-complete Cdiscount actor; add filters, sorting, and detail enrichment. *(Competitor — linked for the same cluster signal.)*
- [Cdiscount Product Details Scraper](https://apify.com/ecomscrape/cdiscount-product-page-details-scraper) — product-detail-page enrichment (full descriptions, deep specs) to complement listing-level data.
- [Cdiscount Listings Scraper](https://apify.com/piotrv1001/cdiscount-listings-scraper) — category-listing extraction for name/price/stock/rating on category pages.
- [LeBonCoin Scraper](https://apify.com/studio-amba/leboncoin-scraper) — France's #1 classifieds marketplace, for a second French-market data signal (used goods, local pricing).

### Competitive Positioning

Verified against the current Cdiscount actor landscape on the Apify Store (11 Cdiscount actors as of this writing):

| Capability | Typical Cdiscount actors | This actor |
|------------|--------------------------|------------|
| Extraction backend | Rendered browser via residential proxies / Bright Data CDP (e.g. several actors require `proxyConfiguration` or a CDP endpoint) | Cookie-free Cdiscount mobile BFF JSON API; **no proxy needed** by default; Playwright cookie-bootstrap built in as fallback |
| Customer review text | Mostly listing-level (name, price, rating count) | Full review dataset: review text, star score, per-criterion ratings, dates, helpfulness votes |
| Page latency | Seconds (browser rendering) | ~300–700 ms per page via JSON API |
| Pricing | $1–$7.3 per 1,000 products (range observed: saswave $0.8, shahidirfan $1.49, kawsar $7.32) | ~$3 per 1,000 products, mid-range, pay-per-result |

### Cdiscount Scraping FAQ

#### Why use this actor instead of the official Cdiscount API?

The official [Cdiscount Marketplace API](https://marketplace.cdiscount.com/en/api) is a **seller-side API**: you must register as a marketplace seller, and it exists to manage product sheets, offers, orders, and fulfillment — it does not provide public catalog, pricing, rating, or review data for research or monitoring. This actor reads the **publicly available product, price, seller, and review data** on Cdiscount.com through the site's own mobile JSON endpoints, with no seller account and no login.

#### What are the alternatives to this actor?

On Apify: [Cdiscount Product Scraper](https://apify.com/shahidirfan/cdiscount-product-scraper), [Cdiscount Scraper: Products, Marketplace Sellers & Reviews](https://apify.com/abotapi/cdiscount-scraper), and several other Cdiscount scrapers — most rely on browser rendering and proxies and many do not extract full customer review text. For **French e-commerce data beyond Cdiscount**, pair this actor with Amazon.fr or Fnac scrapers for cross-marketplace price comparison. Commercial Cdiscount data APIs (e.g. scraping-as-a-service providers) exist but typically start at hundreds of dollars per month; this actor is pay-per-result on the Apify platform.

#### How do I scrape Cdiscount with just a keyword?

Enter a keyword and leave `startUrls` empty — the actor builds the search URL automatically.

#### Can I scrape Cdiscount prices over time to build a price history?

Yes. Schedule the actor daily or weekly with the same keyword/URLs. Each row includes `price`, `wasPrice`, `inStock`, and `fetchedAt`, so you can diff runs to detect price drops, promotions, and stock changes.

#### Does the Cdiscount scraper support pagination?

Yes — the actor follows API pagination up to `maxPages` or until `maxItems` is reached.

#### Can I scrape Cdiscount product reviews?

Yes. Enable **Include Product Reviews** and set **Max Reviews per Product** (up to 250). Reviews land in a separate `reviews` dataset, each item linked to its product via `productId`.

#### Is a proxy required? Does Cdiscount block scraping?

No proxy is required by default: the BFF API responds to cookie-free requests with the correct headers. If a datacenter IP is blocked (HTTP 403/429), the actor automatically launches a browser once to bootstrap cookies (or you can paste a `Cookie` header in the `cookies` input).

#### How many sellers are on Cdiscount, and can I benchmark them?

Cdiscount runs a marketplace with **14,000+ third-party sellers**. This actor returns `sellerName`, `sellerId`, `sellerRating`, and `sellerSalesCount` per product, so you can benchmark sellers and see who holds listings in a category.

#### What is the difference between Cdiscount and Amazon in France?

Amazon.fr is the largest French marketplace (~22% market share); Cdiscount is France's #2 (~10%) and the largest French-owned marketplace, with ~20–23M monthly visitors, strong categories in home, appliances, and high-tech, and its own Prime-equivalent program (Cdiscount à Volonté, ~10M subscribers). Cross-marketplace price comparison between the two is one of the most common use cases for this actor.

#### Can I scrape Cdiscount in French (suivi des prix, extraction de données)?

Oui — l'actor fonctionne nativement avec des mots-clés français et renvoie les données en JSON structuré (EUR, descriptions et avis en français). Une recherche comme « aspirateur robot » ou « iPhone 16 » fonctionne directement.

#### Is it legal to scrape Cdiscount?

You are responsible for complying with Cdiscount's terms of service, applicable laws, and data usage requirements. Use this actor for legitimate data collection from publicly available pages. See the Legal & Compliance Disclaimer below.

### For AI Agents & LLM Apps

**Purpose:** returns structured product offers from Cdiscount.com search results (price, seller, rating, specs, availability in EUR) and, optionally, full customer reviews, via Cdiscount's public mobile JSON API. Callable via the Apify MCP server or the Apify REST API like any actor.

**Minimal input that produces a valid run:**

```json
{
  "keyword": "smartphone",
  "maxItems": 5
}
```

**Variant inputs:**

- URL-driven search (takes priority over `keyword`): `{ "startUrls": [{ "url": "https://www.cdiscount.com/search/10/smartphone.html" }], "maxItems": 20 }`
- Product + reviews mode: `{ "keyword": "iphone 16", "includeReviews": true, "maxReviewsPerProduct": 50, "maxItems": 10 }`

**Output field list (products dataset):** `productUrl, productCode, offerId, productName, price, wasPrice, currency, averageRating, ratingCount, sellerName, sellerId, sellerRating, sellerSalesCount, imageUrl, imageUrls, brand, brandId, ean, categoryBreadcrumbs, categoryId, departmentId, specs, variants, inStock, isSponsored, condition, freeShipping, fetchedAt, searchWord, page`

**Output field list (reviews dataset, when `includeReviews: true`):** `productId, reviewId, title, content, score, nickName, customerNumber, submissionTime, publishDate, productUseDate, positiveReviews, negativeReviews, isHelpfulReview, isInfluencer, isOrigineReview, isSponsored, isTestCommunityMember, isTesterReview, originType, criterions, averageOverallRating, totalReviewCount, fetchedAt`

**Behaviors an agent should know:**

- `startUrls` **takes priority over** `keyword` when both are provided; `keyword` is only used to build a search URL when `startUrls` is empty.
- If neither is set, the actor defaults to keyword `smartphone`.
- `maxItems`/`maxPages` are the cost levers: `maxItems` caps collected products (and therefore billed product results). Reviews cost **extra per-review events** and are only billed when `includeReviews: true`, only for stored reviews, up to the run's spending limit.
- Reviews land in a **separate `reviews` dataset** (storage alias) when the run can resolve it; for some API/CLI-triggered runs they fall back into the default dataset alongside products — check the output schema's storage templates rather than assuming one location.
- Optional fields are `null` when Cdiscount does not publish them; the search API returns listing data only (no product-detail pages).
- The actor is **pay-per-result**: ~$0.003 per stored product, $0.00005 actor-start (1 event per GB), plus per-review events when `includeReviews` is enabled.

### Legal & Compliance Disclaimer

- This actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by Cdiscount** or the Casino Group.
- The actor accesses **only publicly available Cdiscount.com data** through the site's own public mobile JSON endpoints — it performs **no login bypass, no CAPTCHA solving, and no access to non-public or seller-backend data**. The built-in fallback launches a browser only to obtain the same cookies a normal visitor receives.
- Users are responsible for complying with **Cdiscount's Terms of Service** and applicable data-protection laws. Output may contain personal data (e.g. reviewer nicknames); EU/French users should treat it under **GDPR** principles.
- Customer review data and seller names should not be used for unsolicited commercial outreach in violation of applicable law (e.g. **CAN-SPAM**, **GDPR**).
- This disclaimer is not legal advice.

### SEO Keywords

cdiscount scraper, scrape cdiscount prices, cdiscount price monitoring, cdiscount price tracker, cdiscount api, cdiscount data extraction, cdiscount marketplace data, cdiscount product data, cdiscount seller data, scrape cdiscount reviews, cdiscount market research, cdiscount price comparison, cdiscount vs amazon france, french e-commerce data, french marketplace scraper, cdiscount dropshipping, cdiscount product database, cdiscount deals, suivi des prix cdiscount, extraction de données cdiscount, prix cdiscount, cdiscount product availability, french e-commerce price intelligence, cdiscount offers, cdiscount à volonté price data

# Actor input Schema

## `startUrls` (type: `array`):

Cdiscount search, category, or product page URLs. Supports /search/10/keyword.html, /path/l-{id}.html, and /path/f-{id}-{code}.html URLs. If empty, uses keyword to build search URL.

## `keyword` (type: `string`):

Search keyword to build a Cdiscount search URL. Used only if startUrls is empty.

## `maxItems` (type: `integer`):

Maximum number of products to collect.

## `maxPages` (type: `integer`):

Maximum number of search/category result pages to process.

## `includeSponsored` (type: `boolean`):

Include sponsored/advertising product listings (via the BFF sponsored carousel API).

## `numberOfSponsoredOffers` (type: `integer`):

How many sponsored offers to fetch per search page (1-20). Only used when Include Sponsored is enabled.

## `cookies` (type: `string`):

Paste a full browser Cookie header from an active www.cdiscount.com session. Speeds up runs and helps if the BFF API blocks datacenter IPs. Leave empty to let the Actor try cookie-free requests and bootstrap cookies in a browser if blocked.

## `includeReviews` (type: `boolean`):

After collecting products, fetch customer reviews for each product via the BFF product-reviews API and store them in a separate 'reviews' dataset.

## `maxReviewsPerProduct` (type: `integer`):

Maximum number of reviews to fetch per product (paginated, up to 25 per request).

## `reviewOrderBy` (type: `integer`):

Review sorting: 1 = most helpful, 2 = most recent. Only used when Include Product Reviews is enabled.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.cdiscount.com/search/10/smartphone.html"
    }
  ],
  "keyword": "smartphone",
  "maxItems": 20,
  "maxPages": 5,
  "includeSponsored": true,
  "numberOfSponsoredOffers": 9,
  "includeReviews": false,
  "maxReviewsPerProduct": 25,
  "reviewOrderBy": 2
}
```

# Actor output Schema

## `products` (type: `string`):

Scraped product offers from Cdiscount.com.

## `reviews` (type: `string`):

Customer reviews (only populated when includeReviews is enabled).

# 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 = {
    "startUrls": [
        {
            "url": "https://www.cdiscount.com/search/10/smartphone.html"
        }
    ],
    "keyword": "smartphone",
    "maxItems": 20,
    "maxPages": 5,
    "numberOfSponsoredOffers": 9,
    "maxReviewsPerProduct": 25,
    "reviewOrderBy": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/cdiscount-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 = {
    "startUrls": [{ "url": "https://www.cdiscount.com/search/10/smartphone.html" }],
    "keyword": "smartphone",
    "maxItems": 20,
    "maxPages": 5,
    "numberOfSponsoredOffers": 9,
    "maxReviewsPerProduct": 25,
    "reviewOrderBy": 2,
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/cdiscount-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 '{
  "startUrls": [
    {
      "url": "https://www.cdiscount.com/search/10/smartphone.html"
    }
  ],
  "keyword": "smartphone",
  "maxItems": 20,
  "maxPages": 5,
  "numberOfSponsoredOffers": 9,
  "maxReviewsPerProduct": 25,
  "reviewOrderBy": 2
}' |
apify call ahmed_jasarevic/cdiscount-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/cdiscount-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/JIl13uBKV6TeA04QO/builds/MYc8fkIuZc2C88nj6/openapi.json
