JD Sports Scraper avatar

JD Sports Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
JD Sports Scraper

JD Sports Scraper

Scrape JD Sports UK (jdsports.co.uk) -- search or browse sneakers, streetwear, and sportswear by category or brand. Get title, brand, price, sale price, colour, sizes in stock, images, and full product detail. No login required.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape JD Sports UK — sneakers, streetwear, and sportswear from Nike, adidas, Jordan, New Balance, ASICS, and 40+ other brands. Search by keyword, browse by category or brand, or fetch full detail for specific product URLs. Get price, sale price and discount, colour, per-size stock, images, and a full product description. No login, cookies, or paid proxy required.

What this actor does

  • Four modes: search, category, brand, url
  • Full category tree: Footwear (trainers, running, classic, hi-tops, boots, sandals, and more), Clothing, Accessories, and Sale — for Men, Women, and Kids
  • 44 brands available as a dropdown filter or dedicated browse mode
  • Live pricing: current price, pre-discount "was" price, and computed discount %
  • Per-size stock: UK shoe sizes / clothing sizes with in-stock / out-of-stock status (opt-in — adds one request per product)
  • Filters: price range, sale-only, colour, brand, gender/department, size-in-stock
  • Empty fields are omitted — every record only contains data JD Sports actually returned

Output per product

FieldDescription
productIdJD Sports internal product code (PLU)
titleProduct name
brandBrand name
colourColourway
gendermen / women / kids, derived from the category breadcrumb
category, categoryPathCategory breadcrumb, e.g. Men / Mens Footwear / Trainers
priceCurrent price (GBP)
wasPricePre-discount price, only present when the item is on sale
discountPercentComputed % off, only present when on sale
onSaletrue if currently discounted
currencyAlways GBP (JD Sports UK)
descriptionFull product description (mode=url or fetchFullDetail)
articleCodeManufacturer article/style code, e.g. DB3021 (detail only)
imagesFull image gallery URLs (detail only; listing pages return a single imageUrl)
imageUrlListing-page thumbnail (search/category/brand modes, unless fetchFullDetail is set)
sizesArray of {size, inStock, upc, sku} — only when sizes were fetched
sizesAvailableFlat array of in-stock sizes only
availabilityIn Stock / Out of Stock (detail only)
productUrl, sourceUrlCanonical JD Sports product page URL
recordTypeAlways "product"
scrapedAtUTC ISO timestamp

Input

FieldTypeDefaultDescription
modeselectsearchsearch / category / brand / url
searchQuerystringair maxFree-text query (mode=search)
categoryselectfootwear-trainersCategory slug (mode=category); combined with gender
brandselectnikeBrand slug (mode=brand)
genderselectmen / women / kids — scopes category/brand, hints search
productUrlsarrayFull product page URLs (mode=url)
sortByselectrecommendedrecommended / latest / name-a-z / name-z-a / price-low-high / price-high-low
minPrice / maxPriceintegerPrice range filter (GBP, current price)
onSaleOnlybooleanfalseOnly emit discounted products
colourselectColour filter (21 options)
brandFilterselectNarrow search/category results to one brand
genderFilterselectNarrow search/brand results to one department
sizestringOnly emit products with this size currently in stock (adds one request per product)
fetchFullDetailbooleanfalseFetch full detail (description, image gallery, article code, sizes) for every result, not just listing-page fields
maxItemsinteger24Hard cap on emitted records (1–2000)
proxyConfigurationobjectAUTOApify proxy config; the free AUTO datacenter group is used as an automatic fallback if a run is rate-limited — no paid proxy is required

Example: search by keyword

{ "mode": "search", "searchQuery": "air max 90", "maxItems": 20 }

Example: browse Men's trainers on sale, sorted by price

{
"mode": "category",
"category": "footwear-trainers",
"gender": "men",
"onSaleOnly": true,
"sortBy": "price-low-high",
"maxItems": 40
}

Example: browse a brand, filtered by size in stock

{ "mode": "brand", "brand": "adidas", "gender": "men", "size": "9", "maxItems": 20 }

Example: fetch full detail for specific products

{
"mode": "url",
"productUrls": [
"https://www.jdsports.co.uk/product/black-adidas-originals-handball-spezial/16227358/"
]
}

Use cases

  • Price monitoring — track sale prices and discount % across sneaker drops
  • Assortment / catalog research — pull a brand's or category's full live JD Sports range
  • Stock alerts — poll size availability for a specific shoe size
  • Competitor / market intelligence — benchmark pricing against other sneaker retailers
  • Deal aggregation — feed onSaleOnly results into a deals feed

Data source & limitations

Data comes directly from JD Sports UK's server-rendered pages (jdsports.co.uk) — no login, cookies, or paid proxy required. Category/search/brand listing pages embed a full JSON product payload per page (72 products); product detail pages carry standard schema.org/Product JSON-LD plus a stock endpoint for per-size availability.

  • Ratings/reviews are not included: JD Sports loads its review widget via a third-party script that requires JS execution and isn't reliably reachable from a plain HTTP fetch — rather than fabricate a rating, the field is omitted entirely.
  • Kids category coverage is narrower than Men/Women — JD Sports structures its Kids catalog differently (fewer sub-categories are exposed as distinct URLs). footwear-trainers, footwear-football-boots, footwear-all, clothing-all, accessories-all, accessories-sale, and sale-all are available for Kids; sub-categories like footwear-classic-trainers are not.
  • Currency is always GBP, matching JD Sports UK.
  • Fetching sizes/availability (via size filter or fetchFullDetail) makes one extra request per product — use a modest maxItems when enabling it on large runs.

FAQ

Do I need a JD Sports account or cookies? No — every field is publicly visible without logging in.

Why do some products have no wasPrice? Only currently-discounted products carry a wasPrice; full-price products only have price.

What sizes does the size filter use? Whatever JD Sports lists on the product page — UK shoe sizes (e.g. 9, 9.5) or clothing letter sizes (e.g. M, L), matched exactly.

Can I get every image, not just the thumbnail? Yes — set fetchFullDetail: true, or use mode: "url" with specific product URLs, to get the full gallery in images.

How current is the data? Live — every run fetches the current JD Sports site directly; there is no caching layer.