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

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

UNIQLO Product Scraper

Scrape UNIQLO clothing and accessories from 21 country storefronts, each in its own currency and with its own assortment. Every record carries the identity, price, availability, media, variant and category data the storefront shows, and can be enriched with full product detail and customer reviews.

Search by keyword, category and the storefront's own filters, or paste product, category and search links and let the actor walk them.


What you get

Identity uniqueKey (country plus product code, unique across a multi-country run), productId, styleCode, name, url, country, countryName, language, department (men / women / kids / baby / unisex), genderCategory, sizeGender, breadcrumbs, categoryPath, communicationCode, priceGroup, kind

Price price (what the storefront charges now), originalPrice (pre discount), discountAmount, discountPercent, isOnSale, basePrice, promoPrice, priceMin / priceMax across variants, currency, currencySymbol, taxPolicy, isDualPrice, promotionText

Availability availabilityStatus (IN_STOCK / PARTIAL / OUT_OF_STOCK), variantCount, inStockVariantCount, availableColors, availableSizes, isPurchasable, storeStockOnly

Variants (one row per size and colour combination) variantId, colorCode, colorName, colorGroup, colorHex, sizeCode, sizeName, lengthCode, price, basePrice, promoPrice, currency, stockStatus, stockStatusLabel, stockQuantity, inStock, backInStock, transitStatus, deliveryNote, isReturnable, availableInStores, salesType, flags

Media images, mainImage, subImages, plus a per colour imageUrl and chipUrl

Labels flags, flagCodes, isNew, isNewColor, isComingSoon, isPreOrder, isUnisex, isLimitedOffer, isAppMemberOffer, isRecycledMaterial, isSelectColorsSizesPrice, isBestSeller

Detail (with fetchDetails) description, descriptionShort, descriptionLong, composition (fabric), careInstructions, washingInformation, designDetails, sizeInformation, sizeChartUrl, countriesOfOrigin, productType, recycledMaterial, tags, modelSizes

Reviews (with fetchReviews) rating, reviewCount, ratingBreakdown (one to five star counts), fitRating, and a reviews array with reviewId, rating, title, text, author, location, createdAt, helpfulCount, fitFeedback, purchasedSize, purchasedColor, reviewerGender, reviewerAgeRange, reviewerHeightRange, reviewerWeightRange, reviewerShoeSize, isIncentivized, isSyndicated, images, tags

Incremental mode changeType, changedFields, firstSeenAt, lastSeenAt


Countries

Prices, assortment and reviews are per country. The same product can be a different price, carry a different number of colours and sizes, and have a different review pool in each.

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)

Storefronts this actor does not cover. Four UNIQLO markets are not on the same platform as the 21 above and are therefore out of scope rather than silently missing:

MarketWhy
TaiwanRuns a separate catalogue platform that does not answer the shared endpoints.
Hong Kong and MacauRun on their own domain (uniqlo.com.hk), not the uniqlo.com storefront.
Mainland ChinaRuns on its own domain (uniqlo.cn), not the uniqlo.com storefront.
RussiaRedirects away and serves no catalogue.

Modes

Search mode

Pick a country, then any combination of keywords, categories and filters.

{
"mode": "search",
"country": "uk",
"queries": ["linen shirt"],
"categories": ["men/tops/t-shirts"],
"colors": ["BLACK", "BLUE"],
"sizes": ["M", "L"],
"flags": ["sale"],
"minPrice": 10,
"maxPrice": 40,
"sortBy": "price_asc",
"fetchDetails": true,
"fetchReviews": true,
"maxReviewsPerProduct": 20,
"maxItems": 50
}

Categories use the path exactly as it appears in a storefront link, for example men/tops/t-shirts or women/outerwear-and-blazers/coats. The same path resolves to a different category in each country and in each department, and the actor resolves it against that country's own category tree. A numeric category id also works.

Giving both keywords and categories scrapes every keyword inside every category. Giving neither walks the whole storefront.

URL mode

Paste links. Product links return that one product; category and search links are walked forward through their pages.

{
"mode": "url",
"urls": [
"https://www.uniqlo.com/us/en/products/E465185-000/00",
"https://www.uniqlo.com/uk/en/men/tops/t-shirts",
"https://www.uniqlo.com/jp/ja/search?q=シャツ"
],
"maxItems": 100,
"fetchDetails": true
}

The country, language and any filters already in the link are used, so the search mode fields are ignored in URL mode. Links from different countries can be mixed in one run.


Limits

There is exactly one limit that controls a run.

  • Max products is the cap, and defaults to 20. Set it to 0 for no limit.
  • Max pages per search defaults to 0, meaning no page limit. The run stops at Max products, or when the storefront runs out of results. Set a number only to cut a search short deliberately.

Discounts and the original price

price is always what the storefront charges now. originalPrice is the pre discount price, and is filled in when fetchDetails is on and the storefront still lists the product at its regular price:

price 29.9, originalPrice 49.9, discountAmount 20.0, discountPercent 40.1

Some sale items are re-listed at the reduced price with no prior price published anywhere on the storefront. Those come back with isOnSale: true and originalPrice: null rather than a guessed figure.


Reviews

Reviews are per country: the same product has a different review pool on each storefront. Turn on fetchReviews to get the rating breakdown, the fit score and individual reviews, including the reviewer's purchased size and colour, which is the part most useful for fit analysis.

A product with no reviews returns reviews: [] with reviewCount: 0; nothing is invented. Review order can be newest, most helpful or highest rating.


Incremental mode and resume

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 repeatedly, for example on a daily schedule. The first run returns everything as NEW. Later runs return only what changed:

changeTypeMeaning
NEWFirst time this product appeared in this search.
UPDATEDA real change, for example a price move or a size selling out. changedFields lists what moved.
REAPPEAREDWas gone, is back.
UNCHANGEDNo change. Suppressed unless you turn on Emit unchanged.
EXPIREDNo longer listed. Only when you turn on Emit expired.

Ratings and review counts are deliberately not treated as changes. A popular item gains reviews continuously, and its average is recomputed from them, so counting that as a change would return, and bill for, the entire catalogue on every run. Price and per size stock are treated as real changes, because those are what a catalogue watch is for.

EXPIRED rows are only produced when a run has fully scanned the tracked search. A run that hit Max products, hit Max pages, had a page refused, or used Resume returns no expired rows and says so in the log, because an incomplete scan cannot tell "gone" from "not reached yet".

State is kept per search and filter combination, so two different searches never mix. Set stateKey to name a campaign explicitly.


Connection

The default Apify proxy is what this actor is built around, and it works on every plan. Leave the Connection section as it is unless you have a reason not to.

If a run starts being refused, try a different option in the Connection section and run again. Running with no proxy at all works for very small runs but gets limited quickly.

If every page is refused, the run fails with a clear message rather than reporting a successful empty result, so a connection problem is never mistaken for an empty search.


Send results into your apps (MCP connectors)

Optionally pipe results into the apps you already use, via Model Context Protocol connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in Export to your apps. Set notionParentPageUrl when using Notion.

The connector receives a condensed, human readable summary per item: a title plus key fields flattened to plain text, with nested objects reduced to their main value and arrays trimmed. It is not a mirror of the dataset. The complete record always stays in the Apify dataset.

Supported: Notion, Linear, Airtable, Apify. Leave it empty to skip; the dataset output is byte identical either way.


Sample record

Trimmed for readability. The review shown is illustrative, not a real customer.

{
"uniqueKey": "us:E465185-000",
"productId": "E465185-000",
"styleCode": "465185",
"name": "AIRism Cotton Oversized T-Shirt",
"url": "https://www.uniqlo.com/us/en/products/E465185-000/00",
"country": "us",
"countryName": "United States",
"department": "UNISEX",
"categoryPath": "Men > T-Shirts, Sweats & Fleece > T-Shirts > Uniqlo U",
"price": 24.9,
"originalPrice": null,
"isOnSale": false,
"currency": "USD",
"currencySymbol": "$",
"rating": 4.8,
"reviewCount": 4742,
"ratingBreakdown": { "one": 58, "two": 28, "three": 49, "four": 290, "five": 4317 },
"fitRating": 3.19,
"availabilityStatus": "PARTIAL",
"variantCount": 128,
"inStockVariantCount": 107,
"availableSizes": ["XXS", "XS", "S", "M", "L", "XL", "XXL", "3XL"],
"priceMin": 24.9,
"priceMax": 24.9,
"composition": "53% Cotton, 47% Polyester ( 30% Uses Recycled Polyester Fiber )",
"washingInformation": "Machine wash cold, Dry clean",
"sizeChartUrl": "https://www.uniqlo.com/us/en/size/465185_size.html",
"mainImage": "https://image.uniqlo.com/UQ/ST3/us/imagesgoods/465185/item/usgoods_00_465185_3x4.jpg",
"variants": [
{
"variantId": "07912968",
"colorCode": "COL00",
"colorName": "WHITE",
"sizeCode": "SMA001",
"sizeName": "XXS",
"price": 24.9,
"currency": "USD",
"stockStatus": "IN_STOCK",
"stockStatusLabel": "In stock",
"stockQuantity": 11,
"inStock": true,
"isReturnable": true
}
],
"reviews": [
{
"reviewId": 10000001,
"rating": 5,
"title": "Great everyday tee",
"text": "Relaxed fit and the fabric holds its shape after washing.",
"author": "Sample Reviewer",
"location": "Sample State",
"createdAt": "2026-07-30T00:46:17+00:00",
"helpfulCount": 3,
"fitFeedback": 3,
"purchasedSize": "M",
"purchasedColor": "09 BLACK"
}
],
"changeType": "NEW",
"changedFields": [],
"firstSeenAt": "2026-08-27T00:00:00+00:00",
"lastSeenAt": "2026-08-27T00:00:00+00:00"
}

Input reference

FieldTypeDefaultNotes
modeselectsearchsearch or url.
countryselectusOne of the 21 storefronts. Search mode only.
languagestringstorefront defaultTwo letter code. Rarely needed.
queriesstring listSearch keywords, one per line.
categoriesstring listCategory paths such as men/tops/t-shirts, or numeric ids.
colorsmulti selectColour families to keep. Blue covers navy and light blue, Red covers wine, and so on.
sizesmulti selectSizes to keep, adult and kids/baby bands.
flagsmulti selectStorefront labels such as Sale or New arrival.
minPrice / maxPriceintegerIn the selected country's currency.
sortByselectrecommendedRecommended, Best sellers, New arrivals, Price low to high, Price high to low, Highest rated.
urlsstring listProduct, category or search links. URL mode only.
fetchDetailsbooleantrueDetail, variants and pre discount price. Adds a per product surcharge.
fetchReviewsbooleanfalseRating breakdown and individual reviews. Adds a per product surcharge.
maxReviewsPerProductinteger20Reviews returned per product.
reviewsSortselectnewestNewest, Most helpful, Highest rating.
maxItemsinteger20The run limit. 0 means no limit.
maxPagesinteger0No page limit by default.
resumeFromRunIdstringContinue one interrupted run.
incrementalModebooleanfalseOnly return what changed since the last run.
stateKeystringName an incremental campaign.
emitUnchangedbooleanfalseAlso return, and bill, unchanged products.
emitExpiredbooleanfalseAlso return, and bill, delisted products.
proxyproxyApify proxyThe default works on every plan.
mcpConnectorsmulti selectOptional export into Notion, Linear, Airtable or Apify.
notionParentPageUrlstringNotion parent page for the export.
maxNotifyListingsinteger50Cap on items sent to each connector.

Billing

You are charged for:

  • Starting a run.
  • Each product record returned.
  • Each product record returned that carries detail or review data. Turning both fetchDetails and fetchReviews off means this does not apply at all.

A product whose extra data could not be fetched, or that incremental mode suppressed, is never charged for the extra data.