E-commerce & Marketplaces

Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com API & Scraper

Decathlon US and Brazil search/product detail API.

2 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.

country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com API returns live Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com data as clean JSON for decathlon us and brazil search/product detail api. country=br selects source-ranked brazil search; default us preserves its existing catalogue. us scope: search the decathlon.com The primary endpoint, search, returns BR: products[]{product_id,handle,url,title,vendor,description,description_html,image,image_count,available,price_min,price_max,currency,v…. Developers reach for it when they need to track product listings, prices, availability, variants and reviews without maintaining one-off scraping code or separate API contracts. If you were about to build or fix a Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com scraper, this API is the maintained alternative — it returns the same data as clean JSON, with the proxies, rotation and anti-bot handling already solved. This page covers the live example, request shape, response shape and available actions: search, product_detail. Every request uses the same ReefAPI envelope, one API key and one shared credit pool, so it fits alongside the rest of your data stack.

Reference

Decathlon US: which ids resolve, and which unit to trust

This covers decathlon.com, which is the United States store and nothing else. Prices are USD and the whole US catalog was 510 products at measurement time, so a term the US store does not carry legitimately returns nothing. Rows measured 2026-08-27 on handle kiprun-kipride-mens-running-shoes-380020 and its 22 variants unless noted.

FieldWhat it isMeasured example
handleThe key that resolves in a single round trip: the last path segment of decathlon.com/products/<handle>.kiprun-kipride-mens-running-shoes-380020
product_idNumeric store id returned as a string. Accepted, but resolved via a catalog index because the store does not serve a product by id."8042533847102"
variants[].variant_idPer size-and-color variant id, also a string."42582963060798"
variants[].skuDecathlon's own 7-digit item code, one per variant."5815513"
variants[].barcodeEAN-13, one per variant."3608394355507"
grams vs weight + weight_unitgrams is normalized on every variant; weight is the raw figure and its unit changes row to row.433 g on all 22 variants, but weight_unit "kg" on one row and "lb" on the next
inventory_quantityLive per-variant stock count, with inventory_policy deny.9, 5, 10, 2 across the first four sizes
price / compare_at_price / currencyUSD only. compare_at_price is null unless the item is on sale.140.0 USD; compare_at_price present on 0 of 22 variants
collection.products_count vs products_publishedDecathlon's declared collection size against how many it actually serves.107 vs 91 on the `womens` collection
facets.vendorLive counts for Decathlon's house brands within your result set.Quechua 34, Simond 20, Wedze 13, Forclaz 11, Kiprun 9, Van Rysel 4

weight_unit_varies came back true on a product whose every variant weighs exactly the same 433 g, because Decathlon stores identical weights in different units on different rows. Use `grams` for anything you compute and treat weight and weight_unit as raw passthrough.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/decathlon/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "hiking boots"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "decathlon",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 2871.5,
    "record_count": 20,
    "bytes": 4916206,
    "cache_hit": false,
    "completeness_pct": 100,
    "stop_reason": "limit_reached",
    "search_mode": "catalog",
    "ranking": "engine_relevance",
    "source": {
      "route": "/products.json",
      "upstream_calls": 4,
      "catalog_source": "live",
      "scanned": 536
    },
    "pagination": {
      "page": 1,
      "per_page": 20,
      "total_results": 35,
      "returned": 20,
      "has_more": true,
      "next_page": 2
    },
    "filters": {
      "applied": [
        "query"
      ],
      "ignored": []
    },
    "matching": {
      "all_terms": 35,
      "any_term": 0
    },
    "notes": null,
    "charged_credits": 1,
    "version": "1.0.0"
  },
  "data": {
    "products": [
      {
        "product_id": "7840733397054",
        "handle": "quechua-mens-waterproof-snow-hiking-boots-nh100-high-top-zip-black-351123-fw25",
        "url": "https://www.decathlon.com/products/quechua-mens-waterproof-snow-hiking-boots-nh100-high-top-zip-black-351123-fw25",
        "title": "Quechua Men’s NH100 Warm Waterproof Easy-On Snow Hiking Boots",
        "vendor": "Quechua",
        "product_type": "Snow boots",
        "tags": [
          "8851794",
          "FAMILY: 11354",
          "Footwear"
        ],
        "description": "Made for men who want to embrace the simple joys of snow—walking, playing, having fun, and reconnecting with their inner child.",
        "description_html": "<p>Made for men who want to embrace the simple joys of snow—walking, playing, having fun, and reconnecting with their inner child.</p>",
        "image": "https://cdn.shopify.com/s/files/1/1330/6287/files/8851794-product_image-p2904869.jpg?v=1755553663",
        "image_count": 8,
        "available": true,
        "price_min": 45,
        "price_max": 45,
        "compare_at_price_min": 69.99,
        "compare_at_price_max": 69.99,
        "currency": "USD",
        "on_sale": true,
        "variant_count": 9,
        "in_stock_variant_count": 5,
        "grams_min": 986,
        "grams_max": 1318,
        "skus": [
          "5057675",
          "5057676",
          "5057677"
        ],
        "options": [
          "Color",
          "Size"
        ],
        "published_at": "2025-12-29T08:56:20-08:00",
        "created_at": "2025-08-18T14:20:22-07:00",
        "updated_at": "2026-09-23T14:36:07-07:00"
      },
      {
        "product_id": "7840732348478",
        "handle": "quechua-womens-warm-and-waterproof-snow-hiking-boots-nh100-mid-black-346334-fw25",
        "url": "https://www.decathlon.com/products/quechua-womens-warm-and-waterproof-snow-hiking-boots-nh100-mid-black-346334-fw25",
        "title": "Quechua Women's NH100 Warm Waterproof Mid Snow Hiking Boots",
        "vendor": "Quechua",
        "product_type": "Snow boots",
        "tags": [
          "8873835",
          "FAMILY: 11354",
          "FW25"
        ],
        "description": "A great balance of warmth and waterproof protection at an affordable price—perfect for occasional winter outings in town or on trails with light snow.",
        "description_html": "<p>A great balance of warmth and waterproof protection at an affordable price—perfect for occasional winter outings in town or on trails with light snow.</p>",
        "image": "https://cdn.shopify.com/s/files/1/1330/6287/files/8873835-product_image-p2904938.jpg?v=1755553615",
        "image_count": 8,
        "available": true,
        "price_min": 30,
        "price_max": 30,
        "compare_at_price_min": 49.99,
        "compare_at_price_max": 49.99,
        "currency": "USD",
        "on_sale": true,
        "variant_count": 7,
        "in_stock_variant_count": 2,
        "grams_min": 725,
        "grams_max": 978,
        "skus": [
          "5177939",
          "5177940",
          "5177941"
        ],
        "options": [
          "Color",
          "Size"
        ],
        "published_at": "2026-01-21T11:03:25-08:00",
        "created_at": "2025-08-18T14:11:42-07:00",
        "updated_at": "2026-09-23T14:36:07-07:00"
      },
      {
        "product_id": "7278947926078",
        "handle": "womens-sh500-warm-waterproof-snow-hiking-boots-332914",
        "url": "https://www.decathlon.com/products/womens-sh500-warm-waterproof-snow-hiking-boots-332914",
        "title": "Quechua Women's SH500 Warm Waterproof Snow Hiking Boots",
        "vendor": "Quechua",
        "product_type": "Snow boots",
        "tags": [
          "8644860",
          "BSG",
          "DEAL"
        ],
        "description": "As elegant as they are technical, these warm leather winter snow boots are suitable for all types of terrain thanks to their Snowcontact soles",
        "description_html": "As elegant as they are technical, these warm leather winter snow boots are suitable for all types of terrain thanks to their Snowcontact soles",
        "image": "https://cdn.shopify.com/s/files/1/1330/6287/files/8644860-product_image-p2289103.jpg?v=1703075803",
        "image_count": 13,
        "available": true,
        "price_min": 95,
        "price_max": 95,
        "compare_at_price_min": 139,
        "compare_at_price_max": 139,
        "currency": "USD",
        "on_sale": true,
        "variant_count": 7,
        "in_stock_variant_count": 2,
        "grams_min": 900,
        "grams_max": 1300,
        "skus": [
          "4294662",
          "4294663",
          "4294664"
        ],
        "options": [
          "Color",
          "Size"
        ],
        "published_at": "2023-11-14T14:55:43-08:00",
        "created_at": "2023-11-14T14:55:43-08:00",
        "updated_at": "2026-09-23T14:36:09-07:00"
      }
    ],
    "collection": null,
    "facets": {
      "product_type": [
        {
          "value": "Shoes",
          "count": 24
        },
        {
          "value": "Snow boots",
          "count": 9
        },
        {
          "value": "Trousers/pants",
          "count": 2
        }
      ],
      "vendor": [
        {
          "value": "Quechua",
          "count": 35
        }
      ],
      "tag": [
        {
          "value": "Published",
          "count": 30
        },
        {
          "value": "INVENTORY_FC_IS_NOT_0",
          "count": 26
        },
        {
          "value": "SIZE_MSG_TOO_SMALL",
          "count": 26
        }
      ],
      "price": {
        "min": 14,
        "max": 100
      }
    }
  }
}
Actions

What the Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com API does

ActionDescriptionConcrete use caseKey params
searchSelect country=br for Brazil's source-ranked query search: relevance only, page 1..50, max_results 1..24. BR prices are BRL, source pages contain up to 24 products, and US filters/collections/suggest are unavailable in BR. With default country=us: search or browse the decathlon.com (US) catalogue. Give a free-text `query` ('hiking boots', 'bike helmet', 'kiprun'), a `collection` handle to browse (`running`, `womens`, `mens-hiking-boots`, `all`), or both to search inside one collection. Every result carries Decathlon's own product id and handle, the product title, house brand, product type, tags, image, price range, sale price, stock flag and — in catalogue and collection mode — the variant count, SKU list and shipping-weight range. Narrow with product_type, vendor, tag, min_price, max_price and available_only; sort by price, name or publish date; page through the whole match set. Live facet vocabularies with counts come back with every catalogue-mode response, so the filter values are never a guess. Feed a result's `handle` straight into `product_detail` for barcodes and per-variant weights.Pricing teams call search to get select country=br for Brazil's source-ranked query search.country, query, collection, mode, max_results, ...
product_detailFor country=br: resolve a search product_id by exact source search match, then fetch its actual product page. Or pass the returned handle / Brazil URL. Detail includes source identity, BRL SKU offers, availability, images, description, published EAN and seller fields; weights are optional/null. Default US scope: get one Decathlon product in full, by handle, product id or decathlon.com URL — title, house brand, product type, tags, the marketing description in both plain text and its original HTML, every image with dimensions and the variants it belongs to, product video and 3D media, the option axes with their values, and one row per size x colour variant. Each variant row carries Decathlon's own variant id, the retail SKU, the **EAN-13 barcode**, the **shipping weight in grams** (plus the merchant's own weight + unit pair), the live **inventory quantity** as a real integer, the buyable flag, price, compare-at price, tax and shipping flags, and any volume-pricing rules. Built for shipping-cost and catalogue-matching work: barcode and grams are the two fields this endpoint exists for.Marketplace operators call product_detail to get for country=br.country, handle, product_id, url
Code samples

Call search from your stack

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

Who uses this API and why

  • Pricing teams use Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com to get select country=br for Brazil's source-ranked query search.
  • Marketplace operators use Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com to get for country=br.
  • Catalog enrichment teams use Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com to track product listings, prices, availability, variants and reviews, all from one ReefAPI key and credit pool.
FAQ

Questions developers ask before integrating

Which Decathlon country store does this cover?

The United States store at decathlon.com, and only that one. Every price came back with currency USD and a live catalog read scanned 510 products in total. Decathlon's European storefronts are separate sites with separate catalogs, different prices and different product handles, and none of them sit behind this API. A US catalog that small also means a search returning nothing is usually a real answer rather than a failure.

Should I pass handle or product_id?

handle, whenever you have it. It is the only key the store's own product route resolves, so it costs a single round trip. product_id is accepted for convenience, but the store returns 404 for a product fetched by id, so the id has to be mapped to its handle through a cached catalog index first, and the first such call after that cache expires also pays for a full catalog read. The search action returns both, so store the handle.

Why does weight_unit change between variants of the same product?

Because Decathlon's own records store them that way. On one running shoe all 22 variants returned grams 433, but weight and weight_unit alternated between 0.433 kg and 0.9546 lb depending on the row, and the product-level weight_units_seen came back as ["kg", "lb"] with weight_unit_varies true. Read `grams`: it is normalized on every variant and does not vary for variants that genuinely weigh the same.

Does this return real stock levels?

Yes, as an integer per variant. The measured running shoe returned inventory_quantity 9, 5, 10 and 2 for its first four size-and-color combinations, with inventory_policy "deny" (the store will not oversell) and inventory_management "shopify". At the product level, variant_count against in_stock_variant_count lets you spot partial sell-through without walking the variant list: a snow boot in the same run returned 9 variants with only 6 in stock.

Why is compare_at_price null on a product I know was discounted?

compare_at_price is populated only while the item is actually on sale. The running shoe measured returned compare_at_price null on all 22 variants, meta.coverage.with_compare_at_price 0 and on_sale false. A snow boot in the same run returned price_min 45.0 against compare_at_price_min 69.99 with on_sale true. So null means not currently discounted rather than missing data, and on_sale is the flag to branch on.

Why does a collection's products_count not match how many products I get back?

Because Decathlon's declared figure and its served figure disagree, and both are returned rather than one being quietly preferred. Browsing the `womens` collection returned collection.products_count 107, collection.products_published 91 and pagination.total_results 91. products_published is what you can actually page through; products_count is Decathlon's own number. Page against total_results and pagination.has_more.

What are the odd values in the tags array?

Decathlon mixes merchandising tags with internal bookkeeping in one list and they are returned verbatim. A single snow boot came back with tags including "hiking_boots" and "FW25" (a season code) next to "FAMILY: 11354" and a bare numeric "8851794". Rather than guessing which tags exist, read facets.tag from your own result set: it lists only the values your matches actually carry, with counts.

What is the difference between catalog mode and suggest mode?

catalog is the default and searches the full US catalog: a query for "hiking boots" returned pagination.total_results 35 out of 510 products scanned, with facets, sorting and paging. suggest calls the store's type-ahead index instead, which is one fast request but hard-capped at 10 results with no total and no second page. Use suggest only behind a search box, never for data collection. Any explicit `sort` forces catalog mode so the ordering covers the whole match set rather than one page.

What is the Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com API?

Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com API is a ReefAPI endpoint group for decathlon us and brazil search/product detail api. country=br selects source-ranked brazil search; default us preserves its existing catalogue. us scope: search the decathlon.com It returns live JSON through POST requests under /decathlon/v1.

Is the Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com login or account?

No login to Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com 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 Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com 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 Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com API use?

Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com actions currently cost 1 credit per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com from an AI assistant or MCP client?

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

docs / decathlon

Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com

Decathlon US and Brazil search/product detail API. country=br selects source-ranked Brazil search; default US preserves its existing catalogue. US scope: search the decathlon.com

base /decathlon/v12 endpoints
post/decathlon/v1/product_detail1 credit

For country=br: resolve a search product_id by exact source search match, then fetch its actual product page. Or pass the returned handle / Brazil URL. Detail includes source identity, BRL SKU offers, availability, images, description, published EAN and seller fields; weights are optional/null. Default US scope: get one Decathlon product in full, by handle, product id or decathlon.com URL — title, house brand, product type, tags, the marketing description in both plain text and its original HTML, every image with dimensions and the variants it belongs to, product video and 3D media, the option axes with their values, and one row per size x colour variant. Each variant row carries Decathlon's own variant id, the retail SKU, the **EAN-13 barcode**, the **shipping weight in grams** (plus the merchant's own weight + unit pair), the live **inventory quantity** as a real integer, the buyable flag, price, compare-at price, tax and shipping flags, and any volume-pricing rules. Built for shipping-cost and catalogue-matching work: barcode and grams are the two fields this endpoint exists for.

ParameterAllowed / rangeDescription
country = usoptionalus · brStore country. US preserves all existing modes and filters. BR supports query, relevance, page 1..50 and max_results 1..24; other countries are not qualified.
handleoptional—The product's Decathlon handle — the last path segment of a decathlon.com/products/<handle> URL, and the `handle` returned by `search`. This is the fast path: it is the only key Decathlon's own product route resolves, so it costs exactly one round trip. Provide `handle`, `product_id` or `url`.
product_idoptional—Shopify's numeric product id, exactly as `search` returns it. Accepted for convenience, but be aware decathlon.com does NOT serve a product by id (/products/<id>.json is a 404), so the id is resolved to its handle through this API's cached catalogue index — the first such call after the cache expires also pays for the catalogue read. Pass `handle` when you have it.
urloptional—A full decathlon.com product URL — an alternative to `handle`. A `?variant=<id>` suffix is accepted and ignored (every variant is returned anyway).
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.