ASOS Scraper
Pricing
from $3.00 / 1,000 results
ASOS Scraper
Scrape ASOS (Europe's largest online fashion marketplace) with search by keyword, browse by category, fetch by product ID or URL, or check live stock and pricing. Returns names, brands, prices, sizes, images, descriptions, and stock per size across 10 markets (US, UK, DE, FR, IT, ES, AU, NL, SE, RU)
Pricing
from $3.00 / 1,000 results
Rating
5.0
(7)
Developer
Crawler Bros
Maintained by CommunityActor stats
7
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Scrape ASOS — Europe's largest online fashion marketplace — for product data across 10 country stores: United States, United Kingdom, France, Germany, Italy, Spain, Australia, Netherlands, Sweden, and Russia.
Search by keyword, browse curated categories, look up products by ID or URL, or check live stock + pricing snapshots. Returns names, brands, current and discounted prices, sizes with per-size stock flags, images, video links, and full product descriptions.
Why this actor
- No login, cookies, or proxy required — runs on the free Apify plan.
- 10 markets — country, currency, and language switch automatically.
- Per-size stock — see exactly which sizes are sold out before you buy.
- Live discount % calculation — compares current vs RRP / previous prices.
- Five modes in one actor — search, category browse, ID lookup, URL lookup, lightweight stock check.
Modes
search— free-text keyword search (e.g.dress,levis jeans,nike air max). The default mode.byCategory— browse a curated top-level category like Women — Dresses or Men — Shoes. Use the advancedcategoryIdfield for any other ASOS category.byProductIds— fetch full product detail for a list of numeric ASOS product IDs (e.g.210484705).byUrls— fetch full product detail for a list of ASOS product URLs.stockCheck— lightweight snapshot of current stock + price per product ID; useful for daily price-monitor jobs.
Filters
store— US, GB, FR, DE, IT, ES, AU, NL, SE, RUcurrency— USD, GBP, EUR, AUD, SEK, RUB, CAD (or use the store default)gender— Women, Men, or AllbrandIds,colourIds,sizeIds— multi-select numeric IDs; inspect thefacetsblock of any search response for the full mapping per category.sortBy— Recommended, Newest, Price low → high, Price high → lowminPrice/maxPrice— price bounds in the active currencyonSaleOnly— restrict to marked-down itemsinStockOnly— drop out-of-stock products (mainly useful with byProductIds / byUrls)containsKeyword— client-side substring filter across name / brand / colour / descriptionincludeDetails— for search and category modes, also fetch each PDP to get sizes, stock, description, etc.
Input example
{"mode": "search","searchQuery": "dress","store": "US","currency": "USD","gender": "women","onSaleOnly": false,"inStockOnly": false,"maxItems": 15}
Category browse:
{"mode": "byCategory","category": "women_dresses","store": "GB","minPrice": 20,"maxPrice": 80,"sortBy": "freshness","maxItems": 50}
Lookup by product ID:
{"mode": "byProductIds","productIds": ["210484705", "206776454"],"store": "US"}
Live stock check:
{"mode": "stockCheck","productIds": ["210484705", "206776454"]}
Output fields
Each record is a flat JSON object with recordType: "product" (or "stock"
for stockCheck) and the following fields (any field with no value is omitted):
| Field | Description |
|---|---|
productId | Numeric ASOS product ID |
productCode | Vendor product code |
name | Product name |
brand | Brand name (e.g. ASOS DESIGN, Levi's) |
productType | Product type (e.g. Dresses, Shoes) |
gender | Women / Men |
colour | Display colour name |
colourWayId | Numeric colour-way ID |
totalColourways | Number of colour-ways available |
currentPrice | Current selling price (numeric) |
currentPriceFormatted | Localized price string |
previousPrice | Previous / strike-through price |
rrpPrice | Manufacturer's RRP |
currency | ISO 4217 currency code |
discountPercent | Computed discount % vs previous / RRP |
isOnSale | True if marked down |
isInStock | True if at least one size is available |
isSellingFast | ASOS "selling fast" flag |
isRestockingSoon | ASOS "back soon" flag |
sizes | Array { size, brandSize, variantId, sku, colour, price, isInStock, isLowInStock } |
description | Cleaned plain-text description |
descriptionPoints | Bullet points extracted from the description |
countryOfManufacture | Two-letter country code |
fitType | Fit descriptor |
mainImageUrl | Primary CDN image URL |
imageUrls | All available CDN image URLs |
videoUrl | Catwalk video URL (if any) |
productUrl | Canonical PDP URL |
rating | Average customer rating (if shown) |
reviewCount | Total review count (if shown) |
recordType | product or stock |
scrapedAt | ISO 8601 UTC timestamp |
FAQs
Do I need to log in or supply cookies? No. ASOS exposes a public search API. The scraper fingerprints itself as Chrome 131 and reaches the same endpoints the website uses.
Does it work for all ASOS country stores? Ten stores are supported out of the box: US, GB, FR, DE, IT, ES, AU, NL, SE, RU. Each store has its own catalog and currency; pick the one closest to your audience.
Can I get every size's stock state?
Yes. The sizes array reports isInStock and isLowInStock per variant.
For search mode, set includeDetails: true to merge per-PDP stock into each
record; in byProductIds / byUrls modes this is on by default.
How fresh is the data?
ASOS updates pricing and stock continuously. Each record is timestamped with
scrapedAt so you can compute freshness from your snapshot.
Where do the brand / colour / size IDs come from?
They are ASOS's internal facet IDs. Run a search with no filters, inspect the
facets field of the raw response, and pick the IDs you need. The README's
Filters section documents the most common values.
Can I use this to monitor prices?
Yes — use the lightweight stockCheck mode on a list of product IDs to get
just the current price + stock per variant. It's much cheaper than full
detail mode.
Data source
This actor scrapes the publicly accessible ASOS website
(https://www.asos.com). It uses the same JSON endpoints the ASOS web app
itself calls and parses the embedded product JSON from product pages — no
authenticated APIs, no third-party data brokers.