Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Cdiscount API page →
E-commerce & Marketplaces

Cdiscount API & Scraper

The Cdiscount API turns cdiscount.com, France's second-largest e-commerce marketplace, into clean JSON in five actions: search, product/detail, product/offers, product/reviews and search/suggest.

5 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

A Cdiscount product has one buy-box offer (Cdiscount's own or a marketplace seller's) and often several competing offers. search takes a French keyword, offers the site's sorts (relevance, price, best-selling, rating, seller rating) and its clean server-side filters (condition, seller kind, Cdiscount à volonté, minimum rating, brand), pages 47 organic listings at a time and leaves out the sponsored rows it puts first (counted, and returned flagged on request). Each row carries the product code, title, URL, brand, the buy-box price in EUR with its eco-participation, VAT and copie-privée levy broken out (all already included in the price), the legal reference price and discount when the page strikes one, the condition, the seller (Cdiscount or marketplace, with its rating), the CDAV flags, the star rating and how many other new and used offers exist. product/detail adds the EAN, the grouped specifications, the colour and capacity variants each with its own price, the 4x instalment option, the energy label and repairability index, the images, the description, the breadcrumb and the delivery options with cost and date. product/offers returns every seller's offer for a product, new and used, so the buy-box can be compared against the cheapest. product/reviews returns the customer reviews, paged and sortable with a star filter. In a live check on 2026-09-15, every search row carried a price and a seller, and across 9 products in 8 categories the title, price, EAN (where the seller published one), specs, rating and reference price matched the product page. Prices are EUR. France only, no Cdiscount account, no browser, one ReefAPI key and the standard { ok, data, meta, error } envelope.

Reference

The price you see already includes the eco-fee, and the buy-box is not always the cheapest

A Cdiscount price is VAT-included and already contains the eco-participation (DEEE) and, on some electronics, the copie-privée levy. The API returns the price as shown and breaks those parts out separately, so nothing is ever added on top. It also returns the legal reference price only when the page strikes one, and, because the buy-box offer is not always the cheapest, the count and lowest price of the other offers.

Productprice (buy-box, EUR)reference_priceeco / levy includedother offers
Ultenic TP20 Pro robot vacuum189.99479.99 (comparison price)eco 0.301 offer
Apple iPhone 18 Pro Max 256Go1,629null (no struck price)eco 3.07, levy 16.801 offer
LEGO Speed Champions 7726022.9927.99 (comparison price)none3 offers
Apple iPhone 13 128Go refurbished259.99279.99none27 offers, cheaper ones exist

reference_price carries its legal type (a comparison price) and date, and is null when the page shows none, so the API never invents a discount. "4x sans frais" is returned as installment_4x with its real fee rate (2.49% on the iPhone, so not free) and is never mixed into the price.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/cdiscount/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "aspirateur robot"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "cdiscount",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 676,
    "record_count": 47,
    "bytes": 294966,
    "cache_hit": false,
    "pagination": {
      "page": 1,
      "page_size": 47,
      "total": 8371,
      "has_more": true
    }
  },
  "data": {
    "results": [
      {
        "position": 1,
        "product_id": "ult6924843207201",
        "offer_id": "4201449442",
        "title": "Aspirateur robot laveur Ultenic TP20 Pro Ultra-Puissant - Station auto-vidage 4L –200 min – Navigation LDS –compatible Alexa",
        "url": "https://www.cdiscount.com/electromenager/aspirateurs-nettoyeurs/aspirateur-robot-laveur-ultenic-tp20-pro-ultra-pu/f-1101409-ult6924843207201.html#mpos=6|mp",
        "brand_id": "63165",
        "price": 189.99,
        "currency": "EUR",
        "price_without_vat": 158.33,
        "reference_price": 479.99,
        "reference_price_type": "pvm",
        "reference_price_date": "2026-09-15",
        "discount_percent": 60.4,
        "eco_participation": 0.3,
        "vat_amount": 31.67,
        "copy_levy": null,
        "price_includes_eco_fee": true,
        "unit_price": null,
        "unit_price_label": null,
        "condition": "new",
        "condition_grade": null,
        "seller": {
          "id": "365411",
          "name": "[redacted-name]",
          "is_cdiscount": false,
          "rating": 4.71,
          "rating_scale": 5,
          "rating_count": 505,
          "sales_count": 34463,
          "expedition_country": "FRANCE",
          "comments": "L'adresse email de SAV: [redacted-email]. Commande expédiée depuis la France! Livraison dans 1-3 jours. C'est un grand plaisir de faire partie de votre famille et de vous servir."
        },
        "is_cdav": true,
        "cdav_free_shipping": true,
        "free_shipping": true,
        "rating": 4.64,
        "rating_count": 723,
        "rating_scale": 5,
        "is_sponsored": false,
        "advertiser": null,
        "other_new_offers": null,
        "other_used_offers": null,
        "lowest_new_offer_price": null,
        "lowest_used_offer_price": null,
        "category_id": "1000015827",
        "category_code_path": "0I/0I02/0I020F/0I020F01",
        "department_id": "1101409",
        "promotions": [
          "Plus responsable"
        ],
        "image": null,
        "images": []
      },
      {
        "position": 2,
        "product_id": "aacrb80951",
        "offer_id": "4305198143",
        "title": "Proscenic QO20 Plus -Aspirateur Robot Laveur 18000 Pa - Station Eco-Cyclone™ Sans Sac 4 L - 200 min - Idéal Poils d'Animaux & Tapis",
        "url": "https://www.cdiscount.com/electromenager/aspirateurs-nettoyeurs/proscenic-q20-plus-aspirateur-robot-laveur-avec-s/f-1101409-aacrb80951.html#mpos=7|mp",
        "brand_id": "54952",
        "price": 189.99,
        "currency": "EUR",
        "price_without_vat": 158.33,
        "reference_price": 199.99,
        "reference_price_type": "anterior_price",
        "reference_price_date": null,
        "discount_percent": 5,
        "eco_participation": null,
        "vat_amount": 31.67,
        "copy_levy": null,
        "price_includes_eco_fee": false,
        "unit_price": null,
        "unit_price_label": null,
        "condition": "new",
        "condition_grade": null,
        "seller": {
          "id": "406392",
          "name": "[redacted-name]",
          "is_cdiscount": false,
          "rating": 4.71,
          "rating_scale": 5,
          "rating_count": 357,
          "sales_count": 23978,
          "expedition_country": "FRANCE",
          "comments": null
        },
        "is_cdav": true,
        "cdav_free_shipping": true,
        "free_shipping": true,
        "rating": 4.78,
        "rating_count": 112,
        "rating_scale": 5,
        "is_sponsored": false,
        "advertiser": null,
        "other_new_offers": null,
        "other_used_offers": null,
        "lowest_new_offer_price": null,
        "lowest_used_offer_price": null,
        "category_id": "1000015827",
        "category_code_path": "0I/0I02/0I020F/0I020F01",
        "department_id": "1101409",
        "promotions": [
          "Promo"
        ],
        "image": null,
        "images": []
      },
      {
        "position": 3,
        "product_id": "aabrb97432",
        "offer_id": "4312243209",
        "title": "ECOVACS T30C Omni GEN2 - Aspirateur Robot Laveur avec Station - 25000Pa - Lavage à l'eau Chaude 75℃ - Serpillière OZMO Turbo 2.0",
        "url": "https://www.cdiscount.com/electromenager/aspirateurs-nettoyeurs/ecovacs-t30c-omni-gen2-aspirateur-robot-laveur-a/f-1101409-aabrb97432.html#mpos=8|cd",
        "brand_id": "9131",
        "price": 249.99,
        "currency": "EUR",
        "price_without_vat": 208.33,
        "reference_price": 399,
        "reference_price_type": "ppi",
        "reference_price_date": "2026-05-21",
        "discount_percent": 37.3,
        "eco_participation": 3.4,
        "vat_amount": 41.67,
        "copy_levy": null,
        "price_includes_eco_fee": true,
        "unit_price": null,
        "unit_price_label": null,
        "condition": "new",
        "condition_grade": null,
        "seller": {
          "id": "0",
          "name": "CDISCOUNT",
          "is_cdiscount": true,
          "rating": null,
          "rating_scale": null,
          "rating_count": null,
          "sales_count": null,
          "expedition_country": null,
          "comments": null
        },
        "is_cdav": true,
        "cdav_free_shipping": true,
        "free_shipping": true,
        "rating": 4.65,
        "rating_count": 69,
        "rating_scale": 5,
        "is_sponsored": false,
        "advertiser": null,
        "other_new_offers": null,
        "other_used_offers": null,
        "lowest_new_offer_price": null,
        "lowest_used_offer_price": null,
        "category_id": "1000015827",
        "category_code_path": "0I/0I02/0I020F/0I020F01",
        "department_id": "1101409",
        "promotions": null,
        "image": null,
        "images": []
      }
    ],
    "count": 47,
    "sponsored_count": 0,
    "sponsored_dropped": 17,
    "total_results": 8371,
    "total_pages": 101,
    "page": 1,
    "page_size": 47,
    "sort": "relevance",
    "query": "aspirateur robot",
    "did_you_mean": null,
    "applied_filters": null,
    "selected_category": [
      "categorycodepath/\"0i/0i02/0i020f\""
    ],
    "dropped_outside_price_range": 0,
    "keyword_matches_on_page": 47,
    "query_recognised": true,
    "fallback_results_dropped": 0,
    "page_notice": null
  }
}
Actions

What the Cdiscount API does

ActionDescriptionConcrete use caseKey params
searchSearch cdiscount.com by keyword, with the site's sorts and filters (condition, seller kind, Cdiscount à volonté, minimum rating, brand). Each row is the product's buy-box offer: product code, offer id, title, URL, brand, the buy-box price with its eco-participation/VAT/copy-levy breakdown, the legal reference price and discount when shown, condition, seller (Cdiscount or marketplace, with rating), CDAV flags, star rating, sponsored flag, image, and how many other new/used offers exist.Pricing teams call search to search cdiscount.com by keyword, with the site's sorts and filters (condition, seller kind, C….query, page, sort, price_min, price_max, ...
product/detailThe full Cdiscount product record by URL or product_id: title, brand, EAN, buy-box price with its eco-participation/VAT/copy-levy breakdown, the legal reference price and discount, the 4x instalment option, availability, condition, seller, the number of other new/used offers and their lowest prices, star rating with the 1-5 breakdown, energy label, repairability index, images, specs, description, breadcrumb, variants and the delivery options (cost + date).Marketplace operators call product/detail to get the full Cdiscount product record by URL or product_id.url, product_id, max_rotations
product/offersEvery seller's offer for one product (new + used/refurbished), by URL or product_id: each offer's price with its tax breakdown, the legal reference price, condition, the seller (with rating and sales count), CDAV and free-shipping flags, and the offer URL. The buy-box is not always the cheapest, so this is the multi-seller price view.Catalog enrichment teams call product/offers to get every seller's offer for one product (new + used/refurbished), by URL or product_id.url, product_id, sort, page, max_rotations
product/reviewsCustomer reviews for a product, by URL or product_id, paged and sortable, with an optional star filter. Each review carries its score, title, text, author nickname, date, per-criterion scores when present, and whether it was syndicated from the brand.Retail analysts call product/reviews to get customer reviews for a product, by URL or product_id, paged and sortable, with an optional st….url, product_id, page, per_page, sort, ...
search/suggestCdiscount's autocomplete for a partial query: product suggestions (title, url, price, marketplace flag) and keyword suggestions.Pricing teams call search/suggest to get cdiscount's autocomplete for a partial query.query, max_rotations
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/cdiscount/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"aspirateur robot"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.cdiscount.search with {"query":"aspirateur robot"}.
Use cases

Who uses this API and why

  • French price-monitoring teams track the buy-box price and, via product/offers, every competing seller's price so they can spot when a marketplace offer undercuts the buy-box.
  • Brands watch which sellers list their products on Cdiscount, at what price and condition (new, refurbished, used), from which country they ship, and with what seller rating.
  • Catalog teams pull the EAN, grouped specs, variants, energy label and reference price for products they match by GTIN.
  • Repricing tools read the eco-participation and reference price separately so the margin maths uses the real net price, not a number with a hidden fee inside.
FAQ

Questions developers ask before integrating

Is a search result a product or a seller's offer?

The product's buy-box offer. Cdiscount is a marketplace, so a product usually has several competing offers; search returns the buy-box (the winning offer, Cdiscount's own or a marketplace seller's) and tells you how many other new and used offers exist. To see them all, call product/offers with the product_id: it returns every seller, new and used, each with its price, condition, rating and expedition country, so you can compare the buy-box against the cheapest offer including shipping.

Which price does the API return, and are taxes included?

The buy-box price, VAT-included, exactly as the page shows it. The eco-participation (DEEE) and, on some electronics, the copie-privée levy are already inside that number; the API breaks them out as eco_participation and copy_levy with price_includes_eco_fee set to true, so you never add them on top. The legal reference price (a struck comparison price) is returned as reference_price with its type and date only when the page shows one, and discount_percent is computed from it. "4x sans frais" is a separate installment_4x option, not part of the price.

What happens to Cdiscount's sponsored rows?

They are left out by default and counted. Cdiscount puts 11 to 17 sponsored placements before the 47 organic listings on a broad search (12 on page 2 of "tv 55 pouces" and 16 on "lego" on 2026-09-15). The response returns the organic listings, with count holding their number and sponsored_dropped holding how many ads were removed. Set include_sponsored to true to get the ads back in place, each flagged is_sponsored with its advertiser. count still counts organic rows only.

What happens on a keyword Cdiscount does not know, or a typo?

Cdiscount never returns zero results. For a made-up keyword it fills the page with unrelated products, like "The XX - Coexist" for zzqqxxnonexist. The API returns an empty result list with total_results 0, counts the removed rows in fallback_results_dropped and keeps the site's own count in fallback_total. Set include_fallback_results to true to get those products back, kept apart in fallback_results. Typos, synonyms and abbreviations still return their real results, because Cdiscount recognises them: iphnoe, televison, frigo, clim and ordi all kept their full pages. Checked on 2026-09-15: all 37 real French queries kept their results, and all 11 nonsense queries came back empty. The site's own correction appears as did_you_mean. A page past the last one comes back empty with page_notice, not as page 1 again.

How do I get the EAN and full specifications?

From product/detail. Search and offer rows carry the price and seller but not the EAN or the full spec table; the product page does. product/detail returns the EAN (when the seller published one), the grouped specifications, the colour and capacity variants each with its own price and URL, the energy label, the repairability index, the description, the breadcrumb and the delivery options with cost and date.

Can I read the reviews and filter them?

Yes. product/reviews returns the customer reviews for a product, paged and sortable (most helpful, newest, oldest, lowest rating) with an optional star filter, plus the average rating and the 1-5 breakdown. Each review carries its score, title, text, author nickname, date and, where present, the per-criterion scores and whether it was syndicated from the brand.

Which country does this cover?

France only. Cdiscount is a French storefront; there is no country parameter because there is no other market. Every price is EUR.

What is the Cdiscount API?

Cdiscount API is a ReefAPI endpoint group for france's #2 marketplace: buy-box prices, every seller's offer, specs, ean and reviews as json. It returns live JSON through POST requests under /cdiscount/v1.

Is the Cdiscount API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Cdiscount calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Cdiscount login or account?

No login to Cdiscount is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Cdiscount data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Cdiscount API use?

Cdiscount actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Cdiscount from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call cdiscount actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Cdiscount API a Cdiscount scraper?

It is the managed alternative to a DIY Cdiscount scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same france's #2 marketplace: buy-box prices, every seller's offer, specs, ean and reviews as json back as clean JSON.

docs / cdiscount

Cdiscount

France's #2 marketplace: buy-box prices, every seller's offer, specs, EAN and reviews as JSON.

base /cdiscount/v15 endpoints
post/cdiscount/v1/product/detail1 credit

The full Cdiscount product record by URL or product_id: title, brand, EAN, buy-box price with its eco-participation/VAT/copy-levy breakdown, the legal reference price and discount, the 4x instalment option, availability, condition, seller, the number of other new/used offers and their lowest prices, star rating with the 1-5 breakdown, energy label, repairability index, images, specs, description, breadcrumb, variants and the delivery options (cost + date).

ParameterAllowed / rangeDescription
urloptionalA cdiscount.com product URL. Every search row returns one as `url`.
product_idoptionalAlternative to `url`: the product code (the part after -f-<dept>- in a product URL). Every search row returns it as `product_id`.
max_rotations = 4optional1–8Advanced: how many times to retry a difficult request (1-8, default 4).
Try in playground →
post/cdiscount/v1/product/offers1 credit

Every seller's offer for one product (new + used/refurbished), by URL or product_id: each offer's price with its tax breakdown, the legal reference price, condition, the seller (with rating and sales count), CDAV and free-shipping flags, and the offer URL. The buy-box is not always the cheapest, so this is the multi-seller price view.

ParameterAllowed / rangeDescription
urloptionalA cdiscount.com product URL. Every search row returns one as `url`.
product_idoptionalAlternative to `url`: the product code (the part after -f-<dept>- in a product URL). Every search row returns it as `product_id`.
sort = relevanceoptionalrelevance · price_asc · price_descOrder of the seller offers.
page = 1optional1–50Offer page, 1-based. Cdiscount serves 4 offers per page.
max_rotations = 4optional1–8Advanced: how many times to retry a difficult request (1-8, default 4).
Try in playground →
post/cdiscount/v1/product/reviews1 credit

Customer reviews for a product, by URL or product_id, paged and sortable, with an optional star filter. Each review carries its score, title, text, author nickname, date, per-criterion scores when present, and whether it was syndicated from the brand.

ParameterAllowed / rangeDescription
urloptionalA cdiscount.com product URL. Every search row returns one as `url`.
product_idoptionalAlternative to `url`: the product code (the part after -f-<dept>- in a product URL). Every search row returns it as `product_id`.
page = 1optional1–200Review page, 1-based.
per_page = 10optional1–50Reviews per page (1-50).
sort = most_helpfuloptionalmost_helpful · newest · oldest · lowest_ratingOrder of the reviews.
starsoptionalComma-separated star values to keep (1-5), e.g. '1,2' for the low scores.
max_rotations = 4optional1–8Advanced: how many times to retry a difficult request (1-8, default 4).
Try in playground →
post/cdiscount/v1/search/suggest1 credit

Cdiscount's autocomplete for a partial query: product suggestions (title, url, price, marketplace flag) and keyword suggestions.

ParameterAllowed / rangeDescription
queryrequiredKeyword to search on cdiscount.com (French or brand/model words: 'aspirateur robot', 'iphone 15', 'lego technic').
max_rotations = 4optional1–8Advanced: how many times to retry a difficult request (1-8, default 4).
Try in playground →