~/ecommerce/asos-scraper

ASOS Scraper — Prices, Stock per Size, Reviews & Categories

Scrape ASOS products and categories across 12 storefronts: prices with RRP and 30-day lowest price, stock for every size, EAN barcodes, colour and size variants, images and catwalk videos, ratings, reviews and saved-for-later counts.

fashion TypeScriptCrawlee UKUSFRDEESITNLPLSEDKAURU
proooxy/asos-scraper — spec
categoryecommerce / fashion
languageTypeScript
stackTypeScript, Crawlee
marketsUK, US, FR, DE, ES, IT, NL, PL, SE, DK, AU, RU
outputclean, RAG-ready JSON

key features

Every menu category of a storefront from its home page URL, with product counts and filter facets

Stock for every size, SKU and EAN barcode on each variant

Prices with previous price, RRP, 30-day lowest price and markdown flags

12 storefronts, each in its own currency, language and size schema

Rating distribution, fit/quality/comfort averages, AI review summary and the latest reviews

Model shots, flat-lays, swatches and catwalk videos, linked to their colour

Saved-for-later counts and the other colours of every style

use cases

  • Fashion price monitoring and markdown tracking across markets
  • Size-level stock and sell-through analysis
  • Assortment and category mapping for competitive intelligence
  • Review and fit analytics for product and sizing teams
  • Product catalogs and shopping agents grounded in live data
  • Barcode (EAN) matching against other retailers' catalogs

input parameters

ParameterTypeRequiredDescription
startUrlsarrayrequiredStorefront, department, category, search, product-group or product URLs from any ASOS storefront
withCategoryProductsbooleanoptionalFor storefront and department URLs, also scrape every product of every menu category (default: false)
withReviewsbooleanoptionalFetch rating statistics and the latest reviews (default: true)
maxReviewsPerProductnumberoptionalLatest reviews per product, 0–100 (default: 10)
withSavedCountbooleanoptionalFetch the 30-day saved-for-later count (default: true)
withOtherColoursbooleanoptionalList the other colours of the same style (default: true)
maxRequestsPerCrawlnumberoptionalPage limit, 0 for no limit (default: 0)
maxConcurrencynumberoptionalParallel requests (default: 20)
proxyobjectoptionalResidential proxy recommended for storefront-wide crawls

Output Example

 1{
 2  "source": {
 3    "id": "205774480",
 4    "canonicalUrl": "https://www.asos.com/adidas-originals/adidas-originals-handball-spezial-gum-sole-trainers-in-brown-and-white/prd/205774480",
 5    "retailer": "ASOS",
 6    "store": "COM",
 7    "currency": "GBP",
 8    "sizeSchema": "UK"
 9  },
10  "title": "adidas Originals Handball Spezial gum sole trainers in brown and white",
11  "brand": "adidas Originals",
12  "categories": ["Unisex", "Trainers"],
13  "price": { "current": 9000, "previous": 9000, "stockStatus": "InStock", "currency": "GBP" },
14  "variants": [
15    {
16      "id": "206675555",
17      "sku": "135912910",
18      "gtin": "4066765223623",
19      "options": ["205774481", "596146"],
20      "price": { "current": 9000, "previous": 9000, "stockStatus": "InStock" },
21      "extraInfo": { "brandSize": "UK 3", "colour": "MULTI" }
22    }
23  ],
24  "stats": {
25    "rating": 4.8,
26    "reviewCount": 4016,
27    "percentageRecommended": 98,
28    "lovesCount": 24983,
29    "reviewsSummary": "Customers overwhelmingly praise these trainers for exceptional comfort..."
30  }
31}

Prices are integers in minor units (pence, cents). Category records from storefront URLs share the dataset: they carry handle and productsCount instead of source.

Pricing

Pay-per-event — you are billed for the records you keep:

EventPriceWhat it covers
Product scraped$0.003One product with prices, stock per size, variants, barcodes, images and videos; a product group counts once per piece
Category scraped$0.001One category with its menu paths, product count and filter facets
Reviews & ratings (extra)$0.001Rating statistics, AI review summary and the latest reviews for one product
Saved-for-later count (extra)$0.0005The 30-day saved-for-later count of one product
Other colours (extra)$0.0005The other colours of one product’s style, with price and stock

Extras are charged only when ASOS has the data and the matching switch is on.

Tips

  • Start from the storefront. https://www.asos.com/ returns the whole category tree for one request per category; add withCategoryProducts only when you need the products too.
  • Pick the market with the URL. /us/, /fr/, /de/ and the other storefront prefixes set currency, language and size schema for everything under them.
  • Switch off the extras you don’t need. Each of reviews, saved count and other colours costs one request and one charge per product.
  • Use a residential proxy for large crawls — a single IP gets throttled after a few thousand requests.

faq

Can it scrape every category of ASOS?
Yes. Give it a storefront home page such as https://www.asos.com/ or https://www.asos.com/us/, or a department such as /women/, and it returns one record per menu category — 540 in the UK store — with its menu paths, product count and filter facets. Switch on withCategoryProducts to scrape every product in them too, each product once.
Which currency and sizes do I get?
The storefront in the URL decides: a /us/ URL returns USD prices and US sizes, /fr/ returns EUR, and a URL without a prefix returns the UK store in GBP. There is no need to pick a proxy country.
Do I get stock for each size?
Yes. Every variant carries its own price and in-stock, low-in-stock or out-of-stock status, plus its SKU and EAN barcode when ASOS publishes one.
Do I need a proxy?
Small runs work without one. ASOS rate-limits a single IP after a few thousand requests, so use a residential proxy for storefront-wide or category-wide crawls.

related in ~/ecommerce

Run ASOS Scraper — Prices, Stock per Size, Reviews & Categories, or get a custom build

Start extracting on Apify in minutes, or hire me to build a bespoke scraper and RAG pipeline for your exact source and schema.

run on Apify get custom data