Decathlon.es - Prices, Discounts, Specs & Reviews avatar

Decathlon.es - Prices, Discounts, Specs & Reviews

Pricing

from $1.00 / 1,000 product results

Go to Apify Store
Decathlon.es - Prices, Discounts, Specs & Reviews

Decathlon.es - Prices, Discounts, Specs & Reviews

Scrape Decathlon Spain (decathlon.es) sporting goods: current price plus strike-through discount, brand, seller, technical specifications, colour/size availability, GTINs, and reviews. Search by keyword/category with brand and price filters, or paste product and listing links.

Pricing

from $1.00 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Decathlon Spain Product Scraper

Pull product data from Decathlon Spain (decathlon.es), a major sporting goods retailer. Search by keyword or a real Decathlon category, filter by brand and price, or paste product and listing links directly. Every record includes the current price, the strike-through original price with discount percentage when a product is marked down, seller information (Decathlon first-party vs marketplace), and reviews.

Why This Scraper?

  • Was-price and discount, structured, not scraped from a badge. When a product is marked down, both prices are captured plus the discount percentage and sale end date -- gated on the site's own real price pair, never fabricated on full-price items.
  • First-party vs marketplace seller. Decathlon Spain also runs a marketplace with third-party sellers; every record tells you which one sold it.
  • Real technical specifications. Practice level, terrain, fit, material, waterproofing, and more -- straight from the product page's own structured attribute list, not scraped free text.
  • Reviews straight from Decathlon's own API. Overall rating, review count, recommended count, and individual reviews (rating, title, body, author, date, verified-buyer flag) -- not a third-party review vendor.
  • Real filters and sort. Brand and on-sale narrow the actual server-side result set; sort by price, highest discount, or highest rated all reorder the full result set, not just one page.
  • Two ways in. Keyword or category search with real site filters, or paste any product/search/category link and continue pagination automatically.
  • Incremental & dedup mode for scheduled monitoring. Run the same search daily and get back only what changed -- NEW, UPDATED, or REAPPEARED products -- instead of the full list every time, with unchanged products suppressed (not returned, not billed) by default.
  • Optional export to your apps. Send results into Notion, Linear, Airtable, or any Apify MCP connector alongside the dataset.

Data You Get

FieldExample value
productId / supermodelId / sku0000000, 000000, 00000000-0000-0000-0000-000000000000
nameSample Running Shoes - Grey and Pink
brandSAMPLE BRAND
urlhttps://www.decathlon.es/es/p/sample-running-shoes/000000/c0000m0000000
price / currency39.99, EUR
originalPrice / discountPercent54.99, 27
isOnSpecial / saleEndsAttrue, 2026-07-31T22:00:00.000Z
onlineAvailabletrue
availableSizes["38", "39 1/3", "40", "41 1/3"]
seller{"name": "Decathlon", "type": "FIRST_PARTY"}
sports["Road running"]
image / images["https://contents.mediadecathlon.com/sample/picture.jpg"]
rating / reviewCount4.6, 607
category / categoryPathAdidas, ["Deportes", "Running", "Marcas", "Adidas"]
descriptionfull product description text
specifications[{"name": "Nivel de práctica", "value": "Iniciación"}, {"name": "Material", "value": "Materia sintética"}]
composition / careInstructions / guaranteematerial composition, care text, guarantee terms when the site provides them
colors[{"name": "rosa", "hexaCode": "#E30076"}]
gtins["0000000000000"]
reviews.averageRating / reviews.totalReviewCount / reviews.recommendedCount4.64, 607, 501
reviews.items[][{"rating": 5, "title": "Excelente", "body": "Sample review text.", "author": "Sample User", "date": "2026-07-16T11:34:20+00:00", "recommended": true, "verifiedBuyer": true}]
scrapedAt2026-07-18T00:00:00.000000+00:00
changeType (incremental mode only)NEW, UPDATED, UNCHANGED, REAPPEARED, or EXPIRED
changedFields (incremental mode only)["price", "isOnSpecial"]
firstSeenAt / lastSeenAt (incremental mode only)2026-07-18T00:00:00Z, 2026-07-19T00:00:00Z

Sample shape: values above are illustrative placeholders, not from a live product.

How to Use

1. Keyword search, first page, with reviews (default):

{
"mode": "search",
"searchTerm": "zapatillas running",
"maxItems": 20
}

2. Category browse, filtered to a brand, sorted by highest discount, on-sale only:

{
"mode": "search",
"category": "deportes/running/zapatillas-running",
"brand": "ADIDAS",
"specialsOnly": true,
"sortBy": "DISCOUNT_DESC",
"maxItems": 50,
"maxPages": 5
}

3. Full product detail (specifications + GTINs) and reviews for a pasted product link:

{
"mode": "url",
"urls": ["https://www.decathlon.es/es/p/sample-running-shoes/000000/c0000m0000000"],
"fetchDetails": true,
"fetchReviews": true
}

4. Paste a search result page and keep paginating forward:

{
"mode": "url",
"urls": ["https://www.decathlon.es/es/search?Ntt=mochila+trekking"],
"maxItems": 100,
"maxPages": 10
}

Input Parameters

ParameterTypeDescription
modestringsearch or url.
searchTermstringKeyword (search mode only).
categorystringA real decathlon.es category path, e.g. deportes/running/zapatillas-running (search mode only, used when Search keyword is empty).
brandstringExact brand name to keep, e.g. ADIDAS (search mode only).
specialsOnlybooleanKeep only products currently marked down (search mode only).
minPrice / maxPricenumberEUR price band to keep (search mode only).
sortBystringRELEVANCE, PRICE_ASC, PRICE_DESC, DISCOUNT_DESC, or RATING_DESC (search mode only).
urlsarrayProduct, search, or category listing URLs to scrape (url mode only).
fetchDetailsbooleanFetch full product detail (breadcrumb category path, description, technical specifications, composition/care/guarantee, colours, GTINs).
fetchReviewsbooleanFetch the product's own reviews.
maxReviewsPerProductintegerCap on reviews per product; the API itself only ever surfaces up to 30 per page.
maxPagesintegerCap on result pages per search/category/URL entry; 0 (default) = unlimited -- the run stops at Max products total instead.
maxItemsintegerCap on total products returned; 0 = unlimited.
resumeFromRunIdstringPaste a previous run id (or its dataset id) to continue that run: products already collected there are skipped, so this run only returns new products (a delta). Leave empty for a normal run.
incrementalModebooleanTurn on for daily/recurring monitoring of the same search. The first run returns everything as NEW; later runs return only NEW/UPDATED/REAPPEARED products, suppressing (not returning, not billing) unchanged ones by default. Distinct from resumeFromRunId -- see "Incremental & dedup mode" below.
stateKeystringIncremental mode only. Optional name for a monitoring campaign so its state stays stable, or is deliberately shared across differently-configured runs. Leave empty to derive a key automatically from the search/category/URL and detail/reviews settings.
emitUnchangedbooleanIncremental mode only. Off by default. Also return (and bill) products that have not changed, marked UNCHANGED.
emitExpiredbooleanIncremental mode only. Off by default. Also return (and bill) products present in a previous run but no longer found, marked EXPIRED -- only produced after a run fully scans the tracked search (not when Max products capped it or Resume was used).
proxyobjectApify proxy configuration. Works on every plan by default.
mcpConnectorsarrayOptional MCP connectors to export results into (Notion, Linear, Airtable, Apify).
notionParentPageUrlstringNotion connector only: page under which item pages are created.
maxNotifyListingsintegerCap on items exported to each connector per run. Does not affect the dataset.

Output Example

{
"productId": "0000000",
"supermodelId": "000000",
"sku": "00000000-0000-0000-0000-000000000000",
"name": "Sample Running Shoes - Grey and Pink",
"brand": "SAMPLE BRAND",
"url": "https://www.decathlon.es/es/p/sample-running-shoes/000000/c0000m0000000",
"image": "https://contents.mediadecathlon.com/sample/picture.jpg",
"images": ["https://contents.mediadecathlon.com/sample/picture.jpg"],
"price": 39.99,
"currency": "EUR",
"originalPrice": 54.99,
"discountPercent": 27,
"isOnSpecial": true,
"saleEndsAt": "2026-07-31T22:00:00.000Z",
"availableSizes": ["38", "39 1/3", "40", "41 1/3"],
"onlineAvailable": true,
"seller": { "name": "Decathlon", "type": "FIRST_PARTY" },
"sports": ["Road running"],
"nature": "zapatillas de deporte",
"rating": 4.64,
"reviewCount": 607,
"categoryPath": ["Deportes", "Running", "Marcas", "Adidas"],
"category": "Adidas",
"description": "Sample product description as shown on the site.",
"specifications": [
{ "name": "Nivel de práctica", "value": "Iniciación" },
{ "name": "Material", "value": "Materia sintética" }
],
"colors": [{ "name": "rosa", "hexaCode": "#E30076" }],
"gtins": ["0000000000000"],
"reviews": {
"averageRating": 4.64,
"totalReviewCount": 607,
"recommendedCount": 501,
"items": [
{ "rating": 5, "title": "Excelente", "body": "Sample review text.", "author": "Sample User", "date": "2026-07-16T11:34:20+00:00", "recommended": true, "verifiedBuyer": true }
]
},
"scrapedAt": "2026-07-18T00:00:00.000000+00:00"
}

Sample shape: values above are illustrative placeholders, not from a live product.

A note on was-price and reviews

Decathlon Spain runs genuine seasonal sales and day-to-day promotions. originalPrice/discountPercent/isOnSpecial are only set when the site's own reference price is genuinely higher than the current price -- a manufacturer's suggested reference price shown with no active promotion is never reported as a was-price. Reviews come directly from Decathlon's own reviews API, not a third-party vendor; each product page surfaces its rating, total review count, and individual reviews.

Incremental & dedup mode (recurring/scheduled monitoring)

Turn on incrementalMode to run the same search/category/URL setup again and again (e.g. daily) and get back only what changed, instead of the full result set every time. The first run returns everything as NEW; later runs classify each product as NEW, UPDATED (with changedFields naming exactly what changed), UNCHANGED, REAPPEARED (was missing, now back), or EXPIRED (tracked previously, no longer found -- only detected after a run fully scans the tracked search). UNCHANGED products are suppressed by default -- neither returned nor billed -- unless emitUnchanged is turned on; EXPIRED products are only returned when emitExpired is turned on. State is kept per search/category/URL and detail/reviews configuration automatically; set stateKey to name or deliberately share a monitoring campaign.

This is a different feature from resumeFromRunId, which continues one specific interrupted run instead of tracking recurring changes.

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 (name 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.

A note on plans

The default connection works on every Apify plan, including the free tier. A residential proxy connection is optional and only worth turning on for very large or sustained runs.