UNIQLO Scraper: 21 Countries, Variants and Reviews avatar

UNIQLO Scraper: 21 Countries, Variants and Reviews

Pricing

from $1.20 / 1,000 product results

Go to Apify Store
UNIQLO Scraper: 21 Countries, Variants and Reviews

UNIQLO Scraper: 21 Countries, Variants and Reviews

Scrape UNIQLO products across 21 country storefronts in local currency. Price with pre discount original price, per size and colour stock, images, fabric and care, breadcrumbs, ratings and full reviews. Search by keyword, category and native filters, or paste product and category links.

Pricing

from $1.20 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

3

Monthly active users

13 days ago

Last modified

Share

UNIQLO Scraper: Prices, Variants, Stock and Reviews Across 21 Countries

UNIQLO Scraper turns UNIQLO's own storefronts into a clean product data API. Get the current price and any pre discount price, per size and colour stock, images, fabric composition and care text, category breadcrumbs, and customer reviews with fit feedback, from 21 country storefronts each in its own currency. Search by keyword, category and the storefront's own filters, or paste product, category and search links and let the actor walk them, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.

Why This Scraper?

  • 21 country storefronts, each a separate catalogue. The same product can carry a different price, a different set of colours and sizes, and a different review pool in every country. Prices come back in that storefront's own currency.
  • Two ways in. Search by keyword, category and native filters such as colour, size, promo label and price range, or paste product, category and search links and let the actor walk them forward through their pages.
  • Full detail on demand. Switch on fabric composition, care and washing text, the size chart link, category breadcrumbs, and the complete size and colour variant list with per variant price and stock, and pay a surcharge only for the products that actually carry it.
  • Real customer reviews, per country. Rating breakdown, a fit score, and individual reviews that carry the reviewer's purchased size and colour, which is the part most useful for fit analysis.
  • Built for schedules. Incremental mode returns only new and changed products on recurring runs, ratings and review counts are deliberately excluded from what counts as a change, and a genuinely blocked run fails loudly instead of returning an empty dataset.
  • Resume picks up where a run left off. Continue one interrupted run without paying again for products it already collected.
  • Send results where you already work. Optional MCP connectors push a summary of each product into Notion, Linear or Airtable, while the full record always stays in the Apify dataset.

Use Cases

  • Price and stock monitoring: track price moves, sizes selling out and restocks across markets on a recurring schedule.
  • Cross market merchandising QA: compare assortment, pricing and promo labels for the same style across the 21 storefronts.
  • Fit and sizing research: mine reviews for fit feedback plus the reviewer's purchased size and colour.
  • Sale and promotion tracking: capture the pre discount price, discount amount and discount percent whenever an item goes on sale.
  • Catalog and content feeds: build a product feed with images, fabric composition and care instructions for a marketplace, app or comparison site.

Data You Get

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

FieldExample
uniqueKey"ca:E204871-000" (country plus product code)
productId"E204871-000"
name"Ribbed Knit Cardigan"
url"https://www.uniqlo.com/ca/en/products/E204871-000/01"
countryName / department"Canada" / "WOMEN"
categoryPath"Women > Sweaters > Cardigans"
price39.9
originalPrice / discountPercent59.9 / 33.4 (filled when on sale, with details on)
isOnSaletrue
currency / currencySymbol"CAD" / "$"
availabilityStatus"PARTIAL" (also IN_STOCK, OUT_OF_STOCK)
variantCount / inStockVariantCount42 / 31 (with details on)
availableSizes["XS", "S", "M", "L", "XL"]
rating / reviewCount4.3 / 216
fitRating2.9 (with reviews on)
composition"70% Acrylic, 30% Wool" (with details on)
careInstructions / washingInformation"Dry clean recommended" / "Hand wash cold, dry flat"
sizeChartUrllink to the storefront's size guide
mainImageproduct photo URL
variantsone row per size and colour, with price and stock (with details on)
reviewsrating, text, purchased size and colour per review (with reviews on)
changeType"NEW" (incremental mode: also UPDATED, UNCHANGED, REAPPEARED, EXPIRED)
changedFields[] (incremental mode: names what moved on an UPDATED row)
firstSeenAt / lastSeenAtincremental mode only

Every record also carries the style code, price group and communication code; the full colour and size lists with hex and chip images; the storefront's raw promotional and product flags plus derived booleans such as isNew, isNewColor, isComingSoon, isPreOrder, isUnisex, isLimitedOffer, isBestSeller and isRecycledMaterial; tags, modelSizes, countriesOfOrigin and productType from the detail page; basePrice, promoPrice, priceMin and priceMax; isDualPrice and taxPolicy; storeStockOnly and isPurchasable; and bookkeeping fields (sourceSearchUrl, searchRank, scrapedAt, detailFetched, reviewsFetched) that describe how this run found and read the product rather than the product itself.

How to Use

  1. Pick a mode: search (country, keywords, categories and native filters) or url (paste product, category or search links).
  2. For search mode, set the country and any keywords, categories, colours, sizes, promo labels or price range you want. For URL mode, paste the links; the country, language and filters already in each link are used, and the search mode fields are ignored.
  3. Switch on Fetch product details and Fetch customer reviews for the fields you need beyond the catalogue grid. Leave both off to collect catalogue fields only, at no extra charge.
  4. Set Max products to control run size and cost, then click Start. Download the dataset as JSON, CSV or Excel, or read it through the API.

Search a UK storefront by keyword, colour, size and sale flag:

{
"mode": "search",
"country": "uk",
"queries": ["fleece jacket"],
"colors": ["BLACK", "BLUE"],
"sizes": ["M", "L"],
"flags": ["sale"],
"sortBy": "price_asc",
"fetchDetails": true,
"maxItems": 30
}

Paste a product link and a category link from different countries:

{
"mode": "url",
"urls": [
"https://www.uniqlo.com/us/en/products/E204871-000/00",
"https://www.uniqlo.com/jp/ja/women/sweaters"
],
"fetchDetails": true,
"maxItems": 50
}

A recurring catalogue watch that also reports delistings:

{
"mode": "search",
"country": "us",
"categories": ["men/tops/t-shirts"],
"incrementalMode": true,
"emitExpired": true,
"stateKey": "us-mens-tshirts-watch",
"maxItems": 0,
"maxPages": 0
}

A reviews focused run for fit research:

{
"mode": "search",
"country": "jp",
"queries": ["linen shirt"],
"fetchDetails": false,
"fetchReviews": true,
"maxReviewsPerProduct": 100,
"reviewsSort": "most_helpful",
"maxItems": 10
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/uniqlo-com-scraper").call(run_input={"mode": "search", "country": "uk", "queries": ["fleece jacket"], "maxItems": 30})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["name"], product["price"], product["currency"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/uniqlo-com-scraper').call({ mode: 'search', country: 'uk', queries: ['fleece jacket'], maxItems: 30 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Country coverage

United States (USD)United Kingdom (GBP)Canada (CAD)Australia (AUD)
Germany (EUR)France (EUR)Spain (EUR)Italy (EUR)
Netherlands (EUR)Belgium (EUR)Sweden (SEK)Denmark (DKK)
Japan (JPY)South Korea (KRW)Singapore (SGD)Malaysia (MYR)
Thailand (THB)Philippines (PHP)India (INR)Vietnam (VND)
Indonesia (IDR)

Four UNIQLO markets are out of scope rather than silently missing, because each runs on a different platform than the 21 above: Taiwan (a separate catalogue platform), Hong Kong and Macau (their own domain), mainland China (its own domain), and Russia (the storefront redirects away and serves no catalogue).

Max products and Max pages

Max products is the cap that controls a run; set it to 0 for no limit. When a run has several keywords, categories or links, the budget is shared across all of them so the first one cannot spend the whole cap and leave the rest untouched; any share one target does not use stays available to the ones after it. Max pages defaults to 0, meaning no page limit: a search stops at Max products or when the storefront runs out of results. Set a number only to cut a search short on purpose.

Detail, reviews and the surcharge

Turning on Fetch product details adds the description, fabric composition, care and washing text, breadcrumbs, and the full size and colour variant list with per variant price and stock, and fills in the pre discount price for products still on sale. Turning on Fetch customer reviews adds the rating breakdown, the fit score, and individual reviews. Either or both add one extra event per product returned that actually carries detail or review data, never two even when both are on; a product whose extra data could not be fetched is never charged for it, and turning both off returns catalogue fields only, with no surcharge at all.

A pasted single product link is the one exception: building its record already requires reading that product's own detail page, so description, fabric composition, care and washing text, breadcrumbs and the size chart link come back filled in even with Fetch product details switched off. What the toggle still controls, even on a pasted link, is the size and colour variant list with per variant stock and the pre discount price, and the surcharge itself is only charged when the toggle causes that extra enrichment work. Leaving it off on a pasted product link gets you those description fields at no extra charge.

Resume and incremental mode

These are two different features. Resume (resumeFromRunId) continues ONE interrupted run: give it a previous run id or dataset id and this run returns only the products that run had not collected yet. Incremental mode (incrementalMode) is for running the same search again and again, for example on a daily schedule.

The first incremental run returns everything as NEW. Later runs classify each product as NEW, UPDATED (with changedFields naming what moved, such as a price change or a size selling out), UNCHANGED (suppressed and not billed unless emitUnchanged is on), REAPPEARED or EXPIRED. Ratings and review counts drift on their own and are deliberately never treated as a change. EXPIRED rows, and therefore any later REAPPEARED row for the same product, are only ever produced once a run has fully scanned the tracked search with emitExpired on: not when Max products or Max pages capped the scan, not when a page was refused, and not when Resume was used, because an incomplete scan cannot tell "gone" from "not reached yet". A product can only come back as REAPPEARED after some earlier complete scan had already marked it absent this way; it never happens on a run's first sight of a product. State is kept separately per distinct search and filter combination, or by stateKey if you name one, so different campaigns never mix. Incremental mode and Resume cannot both be used once incremental state already exists for a search; run one or the other.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human readable summary of each record, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify, Settings, Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third party credentials. Leave the field empty to skip; the dataset output is identical either way.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch or url.
countrystringusOne of the 21 storefronts. Search mode only.
languagestring(none)Two letter language code. Leave empty for the country's own default.
queriesarrayno default (prefill: ["shirt"])Search keywords, one per line.
categoriesarray(none)Category paths such as men/tops/t-shirts, or numeric category ids.
colorsarray(none)Colour families to keep, for example BLACK or BLUE. Leave empty for every colour.
sizesarray(none)Sizes to keep, adult and kids/baby bands. Leave empty for every size.
flagsarray(none)Storefront labels such as sale or new. Leave empty for everything.
minPriceinteger(none)Lowest price to keep, in the selected country's currency.
maxPriceinteger(none)Highest price to keep, in the selected country's currency.
sortBystringrecommendedHow the storefront orders results.
urlsarrayno default (prefill: ["https://www.uniqlo.com/us/en/men/tops/t-shirts"])Product, category or search links. URL mode only.
fetchDetailsbooleantrueDetail, variants and the pre discount price. Adds a per product surcharge.
fetchReviewsbooleanfalseRating breakdown and individual reviews. Adds a per product surcharge.
maxReviewsPerProductinteger20How many reviews to return per product. Only applies when Fetch customer reviews is on.
reviewsSortstringnewestWhich reviews come first when a product has more than the limit above.
maxItemsinteger20The run limit. 0 means no limit.
maxPagesinteger0No page limit by default. Set a number to cut a search short.
resumeFromRunIdstring(none)ID of a previous run or dataset. Continues ONE interrupted run.
incrementalModebooleanfalseReturn only new and changed products on recurring runs of the same search.
stateKeystring(none)Name an incremental campaign, or share state across differently configured runs.
emitUnchangedbooleanfalseAlso return, and bill, unchanged products.
emitExpiredbooleanfalseAlso return, and bill, delisted products, once a run has fully scanned the tracked search.
proxyobjectApify ProxyConnection settings for the run.
mcpConnectorsarray(none)Optional: send a summary of each product to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which product pages are created.
maxNotifyListingsinteger50Cap on items written to each connector per run.

Output Example

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

{
"uniqueKey": "ca:E204871-000",
"productId": "E204871-000",
"styleCode": "204871",
"name": "Ribbed Knit Cardigan",
"url": "https://www.uniqlo.com/ca/en/products/E204871-000/01",
"country": "ca",
"countryName": "Canada",
"language": "en",
"department": "WOMEN",
"categoryPath": "Women > Sweaters > Cardigans",
"price": 39.9,
"originalPrice": 59.9,
"discountAmount": 20.0,
"discountPercent": 33.4,
"isOnSale": true,
"currency": "CAD",
"currencySymbol": "$",
"availabilityStatus": "PARTIAL",
"variantCount": 42,
"inStockVariantCount": 31,
"availableColors": ["BLACK", "BEIGE"],
"availableSizes": ["XS", "S", "M", "L", "XL"],
"priceMin": 39.9,
"priceMax": 39.9,
"rating": 4.3,
"reviewCount": 216,
"ratingBreakdown": { "one": 6, "two": 9, "three": 21, "four": 68, "five": 112 },
"fitRating": 2.9,
"composition": "70% Acrylic, 30% Wool",
"careInstructions": "Dry clean recommended",
"washingInformation": "Hand wash cold, dry flat",
"sizeChartUrl": "https://www.uniqlo.com/ca/en/size/204871_size.html",
"mainImage": "https://image.uniqlo.com/UQ/ST3/ca/imagesgoods/204871/item/cagoods_09_204871_3x4.jpg",
"flagCodes": ["discount"],
"isNew": false,
"isBestSeller": false,
"variants": [
{
"variantId": "01234567",
"colorCode": "COL09",
"colorName": "BLACK",
"sizeCode": "SMA004",
"sizeName": "M",
"price": 39.9,
"currency": "CAD",
"stockStatus": "IN_STOCK",
"stockStatusLabel": "In stock",
"stockQuantity": 14,
"inStock": true,
"isReturnable": true
}
],
"reviews": [
{
"reviewId": 20000001,
"rating": 4,
"title": "Warm and cozy",
"text": "Fits true to size and layers well over a shirt.",
"author": "Sample Reviewer",
"location": "Sample Province",
"createdAt": "2026-09-02T00:00:00+00:00",
"helpfulCount": 2,
"fitFeedback": 3,
"purchasedSize": "M",
"purchasedColor": "09 BLACK"
}
],
"changeType": "NEW",
"changedFields": [],
"firstSeenAt": "2026-09-20T00:00:00+00:00",
"lastSeenAt": "2026-09-20T00:00:00+00:00"
}

Plan Requirement

This actor uses Apify's pay-per-event pricing: one event per product record returned, plus one extra event for each product returned that carries detail or review data. Turn off Fetch product details and Fetch customer reviews to collect catalogue fields only, with no extra charge. The Pricing tab shows the current rates for every plan. The default Apify proxy works out of the box on every plan and is what this actor is built around; if a run is ever refused repeatedly, try a different option under Connection.

FAQ

How much does it cost?

You pay per product record returned, plus one extra event per product returned with detail or review data attached. Turn off Fetch product details and Fetch customer reviews to avoid that second charge. The Pricing tab shows the current rates. Use Max products to cap the cost of any run.

This actor collects only publicly available storefront data: prices, stock, product descriptions and reviews shown to any visitor. You are responsible for how you use it: follow UNIQLO's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Product photos and review text may be subject to third party rights.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only NEW and UPDATED products by default; REAPPEARED only appears once an earlier run with Emit expired on had completed a full scan and marked the product EXPIRED. Unchanged products are suppressed and not billed unless you turn on Emit unchanged.

Building a record for a pasted product link needs one read of that product's own detail page, so description, fabric composition, care and washing text, breadcrumbs and the size chart link are filled in regardless of the toggle. What the toggle still controls, even on a pasted link, is the size and colour variant list with per variant stock and the pre discount price on sale items, and the surcharge is only charged when the toggle causes that extra enrichment work. Leave it off on a pasted product link to get those description fields at no extra charge.

Why did my run fail instead of returning an empty dataset?

If every request needed to read the catalogue, whether search pages or the category list, is refused, the run fails with a clear message instead of reporting a successful empty result, so a connection problem is never mistaken for an empty search. A genuinely empty search, or an incremental run where nothing changed, still completes normally with zero rows and a status message that says so.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push a summary of each product into Notion, Linear or Airtable.

πŸ”— Want more fashion data?

Pair this actor with these related scrapers from the same team:

πŸ‘— Zara Scraper
Scrape Zara (zara.com) products: current price plus strike-through Rebajas (sale)...
πŸ‘— Mango Scraper
Scrape Mango (shop.mango.com) fashion products: current price plus strike-through Rebajas...
πŸ‘— Myer Scraper
Scrape Myer (myer.com.au) department-store products: name, brand, price, was-price...
πŸ‘— El Corte InglΓ©s Scraper
Scrape El Corte InglΓ©s elcorteingles.es products across fashion, electronics, home...
πŸ‘— 24S Scraper
Scrape 24S luxury fashion by category, filters, or URL. Extract brand, name, price...
πŸ‘— ASOS Scraper
Scrape ASOS by keyword, category or URL. Every row carries the selling price and the...

πŸ‘‰ Browse all abotapi scrapers

πŸ’¬ Support & custom scrapers

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • πŸ› οΈ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.