Cdiscount's buy-box, every seller's offer, EAN and specs — as JSON
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 active endpoints. Every call is 1 credit.
- POST/cdiscount/v1/search
- POST/cdiscount/v1/product/detail
- POST/cdiscount/v1/product/offers
- POST/cdiscount/v1/product/reviews
- POST/cdiscount/v1/search/suggest
What Cdiscount endpoints does ReefAPI ship?
5 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Cdiscount API
3 of 5 endpoints, ready to run
One page of Cdiscount buy-box listings: product code, title, URL, brand, the buy-box price with its eco-participation/VAT/levy breakdown, the reference price and discount, condition, seller (Cdiscount or marketplace), CDAV flags, rating, sponsored flag, and how many other new/used offers exist.
{ "ok": true, "meta": { "api": "cdiscount", "endpoint": "search", "mode": "live", "latency_ms": 609.7, "record_count": 47, "cache_hit": false }, "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": "Ultenic France", "is_cdiscount": false, "rating": 4.71, "rating_scale": 5, "rating_count": 505, "sales_count": 34463, "expedition_country": "FRANCE", "comments": "L'adresse email de SAV: [email protected]. 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": "Proscenic Official", "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 } }
How the Cdiscount API works
Cdiscount is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 252 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Search, read the product, then compare every seller
A search row is the buy-box. product/detail opens it in full; product/offers lists every competing seller so you can see whether a marketplace offer beats the buy-box.
{"query": "aspirateur robot", "sort": "price_asc"}47 organic buy-box rows in price order (sponsored rows flagged and counted apart). Take results[].product_id.
{"product_id": "<results[0].product_id>"}EAN, specs, variants, the buy-box price with its eco-participation broken out, the reference price, and delivery cost + date.
{"product_id": "<same>"}Every seller's offer, new and used, with price + condition + seller rating, so the cheapest can be compared against the buy-box.
One flat credit each, with the buy-box price, the tax breakdown, the reference price and the competing offers all kept apart.
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"}'{
"ok": true,
"data": { … },
"meta": {
"api": "cdiscount",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}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.
| Product | price (buy-box, EUR) | reference_price | eco / levy included | other offers |
|---|---|---|---|---|
| Ultenic TP20 Pro robot vacuum | 189.99 | 479.99 (comparison price) | eco 0.30 | 1 offer |
| Apple iPhone 18 Pro Max 256Go | 1,629 | null (no struck price) | eco 3.07, levy 16.80 | 1 offer |
| LEGO Speed Champions 77260 | 22.99 | 27.99 (comparison price) | none | 3 offers |
| Apple iPhone 13 128Go refurbished | 259.99 | 279.99 | none | 27 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.
Which market, what a row is, which price, and what only the detail carries
cdiscount.com only: France, EUR, and a row that is the product's buy-box offer rather than a bare product. Measured on 2026-09-15 across 21 searches, 9 products in 8 categories, and offers/reviews/suggest. Some of these lines go against us.
This API reads cdiscount.com. There is no country parameter because Cdiscount is a French storefront. Every price is EUR, VAT-included.
search and product/detail return the buy-box offer and count the other new and used offers. product/offers returns every seller, new and used, each with price, condition, rating and expedition country, because the buy-box is not always the cheapest once shipping is counted.
The buy-box price is VAT-included and already contains the eco-participation (DEEE) and, on some electronics, the copie-privée levy. The API returns eco_participation, vat_amount and copy_levy separately with price_includes_eco_fee true, so nothing is added on top. "4x sans frais" is a separate installment_4x option with its real fee rate, not part of the price.
Cdiscount puts 11 to 17 sponsored placements before the 47 organic listings. They are removed by default and counted in sponsored_dropped. include_sponsored returns them in place, flagged is_sponsored with the advertiser. count always counts organic rows.
For a keyword it does not know, Cdiscount fills the page with unrelated products. The API returns no results, with fallback_results_dropped and fallback_total, and include_fallback_results returns those rows apart. Typos, synonyms and abbreviations keep their real results. On 2026-09-15, 37 real French queries were all kept and 11 nonsense queries were all emptied.
reference_price is the struck legal comparison price with its type and date, returned only when the page shows one and above the current price. When there is none, it is null and no discount is invented.
Search and offer rows carry the price and seller but not the EAN or the full spec table. product/detail carries the EAN (when the seller published one), the grouped specs, the variants, the energy label, the repairability index, the description and the delivery cost + date.
Every offer carries condition as new, refurbished or used, with a grade. product/offers for a refurbished product returns all its refurbished sellers; the search 'used' filter and price-descending sort surface used offers, each labelled rather than mixed into new silently.
What people build with Cdiscount
The jobs this data is most often used for.
endpoints
credit per call
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.
What Cdiscount data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 252 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
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"}'import requests
r = requests.post(
"https://api.reefapi.com/cdiscount/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "aspirateur robot"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Cdiscount.
Get a free key →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.
91 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Cdiscount, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 251 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-15.