Shein Search Products Scraper โ€” Full Product Details avatar

Shein Search Products Scraper โ€” Full Product Details

Pricing

Pay per usage

Go to Apify Store
Shein Search Products Scraper โ€” Full Product Details

Shein Search Products Scraper โ€” Full Product Details

๐Ÿ›๏ธ Search & scrape Shein product data from 38 countries. ๐Ÿ” Keywords, filters, price range & sort options. ๐Ÿ“ฆ Output: titles, prices, images, ratings & more.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Scrapio

Scrapio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

13 days ago

Last modified

Share

Shein Scraper โ€” Extract Products, Color Variants and Fit Feedback

Shein Scraper searches Shein's product catalog by keyword across 38 regional storefronts and returns typed JSON for every result โ€” product listings plus two depth layers most scrapers never surface: the sibling color-variant gallery and the sizing/fit-feedback breakdown, both already embedded in Shein's own search-results payload. Unlike scraping frameworks that return raw HTML, Shein Search Products Scraper โ€” Full Product Details returns typed JSON โ€” ready for your model, your database, or your pipeline without any parsing. This guide covers every input and output field plus three deployment patterns teams actually run it with: real-time enrichment, scheduled monitoring, and bulk dataset builds.

๐Ÿงญ What Does Shein Search Products Scraper โ€” Full Product Details Do?

Shein Search Products Scraper โ€” Full Product Details searches Shein's storefront by keyword and returns every matching product as a flat JSON row, across 38 regional Shein sites (us, uk, de, and 35 more). No Shein account or login is required โ€” every field comes from Shein's own public search-results payload, read out of the rendered page after a bot-challenge bypass (see below). Alongside the base catalog fields (price, rating, stock, discount, category, deep-link), this variant surfaces two additional layers that ride in the same payload but that most scrapers never promote to columns: a color-variant gallery (every sibling colorway's image and product ID) and a sizing/fit-feedback breakdown ("true to size" / "runs large" / "runs small"). Shein does not publish a public API for third-party product search, so this Actor's browser-driven approach โ€” and the bot-challenge handling it implements โ€” stands in for building and maintaining that access yourself.

Key capabilities:

  • ๐Ÿ”Ž Multi-keyword search โ€” run one or many keywords in a single job, each tagged with its own section / section_index
  • ๐ŸŒ 38 regional storefronts โ€” switch region to search any Shein country site, not just the US one
  • ๐ŸŽจ Color-variant gallery โ€” colorVariantCount, hasMultipleColors, colorVariantImages, colorVariantGoodsIds on every row
  • ๐Ÿ“ Fit-feedback breakdown โ€” fitTrueToSizePercent, fitRunsLargePercent, fitRunsSmallPercent, fitFeedbackSummary
  • ๐Ÿ’ฐ Clean scalar pricing โ€” sale/retail amount, display string, and USD amount as real numbers, never a JSON blob
  • ๐Ÿ”— Product deep-link โ€” a ready-to-open Shein URL that Shein's raw search payload doesn't otherwise assemble
  • ๐Ÿงน Cross-keyword dedup โ€” the same product isn't pushed, or charged, twice if two keywords match it

โšก Features & Capabilities

This Actor's depth comes from three things: what it returns per product, how that compares with the original base Shein Search Products Scraper it extends, and where its coverage stops.

Core features

  • Full-text keyword search (searchQueries) across any of Shein's 38 regional sites (region)
  • Scalar pricing fields: salePriceAmount, salePriceDisplay, salePriceUsd, retailPriceAmount, retailPriceDisplay, retailPriceUsd, discountPercent, isOnSale
  • Trust/merchandising fields already in Shein's payload: ratingValue, reviewCount, inStock, stockRaw, categoryId, categoryName, imageGallery, rankInfoLabel, promotionLabels, storeCode, businessModel, mallCode
  • Color-variant gallery: colorVariantCount, hasMultipleColors, colorVariantImages, colorVariantGoodsIds
  • Fit-feedback breakdown: fitTrueToSizePercent, fitRunsLargePercent, fitRunsSmallPercent, fitFeedbackSummary
  • A constructed productUrl deep-link on every row, plus an onlyMultiColorProducts filter and a dedupeAcrossQueries toggle
  • Live dataset writes โ€” each row lands in the Output table the moment it's scraped, so partial results survive an interrupted run

How this variant compares to the original Shein Search Products Scraper

FeatureFull Product Details (this Actor)Original Shein Search Products Scraper
Scalar sale/retail pricing (no JSON blob)โœ…โœ…
Product deep-link on every rowโœ…โœ…
Rating, stock, discount %, categoryโœ…โœ…
Color-variant gallery (colorVariantCount, colorVariantImages, colorVariantGoodsIds)โœ…โŒ not documented
Sizing/fit-feedback breakdown (fitTrueToSizePercent, fitRunsLargePercent, fitRunsSmallPercent)โœ…โŒ not documented
Multi-color-only filter (onlyMultiColorProducts)โœ…โŒ not documented
Legacy input field names (query, countryCode, orderBy, maxItems, โ€ฆ)โœ… accepted as aliasesโœ… native

The color-variant and fit-feedback columns are the actual decision point between the two: they cost zero extra requests (both ride in the same search-listing payload the base actor already fetches), but they do mean more columns per row in a bulk export.

When another tool might suit you better

If you only need the core catalog fields โ€” price, rating, stock, discount, category, and a deep link โ€” and don't care about color-variant or fit-feedback depth, the original Shein Search Products Scraper's plainer row is a reasonable fit: fewer columns to filter and export. Reach for this variant specifically when a color-variant gallery or a fit-feedback breakdown is what your workflow consumes โ€” a color-matching tool or a fit-prediction model, for example, where those extra fields are the entire point rather than a bonus.

Shein Search Products Scraper โ€” Full Product Details within the Scrapio data stack

This is currently the only Shein-focused scraper in the Scrapio lineup, so its role is depth on one platform rather than breadth across many โ€” it's the source for the color-variant and fit-feedback columns specifically. For product search on other marketplaces in the same account, see Ebay Search Scraper and eBay Product Details Scraper for eBay listings, or Etsy Reviews Scraper for Etsy buyer feedback โ€” useful when a pipeline needs Shein data cross-referenced against another marketplace.

๐Ÿ’ผ Why Do Developers and Data Teams Scrape Shein?

Shein's public search results carry structured pricing, merchandising and fit-feedback signals that are otherwise locked inside the rendered page. Here's who pulls that data and why.

๐Ÿข E-commerce, dropshipping and private-label sellers

A common workflow: feed in a list of category keywords, run the Actor with maxProductsPerQuery capped to a manageable batch, and use salePriceAmount, discountPercent, inStock and colorVariantCount to decide which items to list, restock, or match assortment against. fitFeedbackSummary doubles as a ready-made sizing note for a product description, without re-typing Shein's own crowd-sourced fit data.

๐Ÿ“Š AI training data and RAG indexing

The free-text fields โ€” goods_name, categoryName, fitFeedbackSummary, promotionLabels, rankInfoLabel โ€” carry the most retrievable natural-language context per product. For RAG enrichment, attaching fitFeedbackSummary and categoryName to a shopping-assistant's retrieval index gives it real sizing context it wouldn't otherwise have. For training data, the numeric fields (discountPercent, ratingValue, reviewCount, colorVariantCount) are typed primitives with a consistent shape across every record, so no normalization step is needed before use.

๐Ÿ“ฑ Competitive and market intelligence

Track discountPercent and salePriceAmount for the same goods_id across repeated scheduled runs to detect Shein's markdown cadence on a category, and use colorVariantCount as a proxy for how deep Shein is merchandising a given style.

๐Ÿ”ฌ Research and academic use

Fast-fashion pricing and sizing research draws on exactly this kind of public dataset. fitFeedbackSummary in particular is unusual, crowd-sourced fit data that's rarely available from other apparel platforms, making it useful for sizing-consistency studies. Scope is public data only โ€” no account-gated or personal information is collected.

๐ŸŽฅ Product and SaaS development

Building a "shop the look" or fit-prediction tool means consuming colorVariantImages and fitTrueToSizePercent / fitRunsLargePercent / fitRunsSmallPercent directly as structured inputs, rather than scraping and parsing them yourself from a rendered product card.

๐Ÿš Input Parameters

All parameters are optional (the schema declares no required fields). New field names take precedence; the legacy base-actor names below still work and are used only when the corresponding new field is empty.

ParameterRequiredTypeDescriptionExample Value
searchQueriesNoarrayProduct keywords to search (jacket, dress, shoes...). Each entry runs as its own search section. Legacy alias: query.["jacket", "dress"]
regionNostringWhich Shein regional storefront to search. Enum: us, de, fr, it, ch, pl, pt, es, se, uk, ca, mx, br, ae, sa, ru, jp, kr, cn, tw, hk, au, in, id, ph, my, sg, tr, nl, be, at, dk, no, fi, ie, vn, th, il. Default: us. Legacy alias: countryCode."de"
sortByNostringHow to order search results. Enum: recommend, MostPopular, NewArrivals, TopRated, PriceLowtoHigh, PriceHightoLow. Default: recommend. Legacy alias: orderBy."PriceLowtoHigh"
pageNointegerFirst results page to read (1 = first page). Minimum: 1. Default: 1.1
resultsPerPageNostringHow many products Shein returns per page. Enum: "20", "40", "60", "80", "100", "120". Default: "120". Legacy alias: perPage."60"
maxProductsPerQueryNointegerMaximum products to collect per search keyword. Minimum: 1, maximum: 10000. No default is set at the schema level โ€” if omitted, the run defaults to 10 products per keyword in code. Legacy alias: maxItems.50
priceMinNostringMinimum price in the region's local currency. Default: "". Legacy alias: minPrice."10"
priceMaxNostringMaximum price in the region's local currency. Default: "". Legacy alias: maxPrice."60"
categoryNostringRestrict results to one Shein category ID. Leave empty for all categories. Default: "". Legacy alias: categoryId."1727"
extraFiltersNostringRaw Shein attribute-filter value, passed through unmodified. Leave empty for no filter. Default: "". Legacy alias: filter.""
dedupeAcrossQueriesNobooleanIf the same product shows up under two different search keywords in one run, only push (and charge) it once. Default: true.true
onlyMultiColorProductsNobooleanWhen true, skip any product Shein doesn't show a confirmed alternate colorway for (see hasMultipleColors / colorVariantCount in the output). Default: false.false
queryNoarrayLegacy base-actor field name for search keywords. Same effect as searchQueries. Default: ["jacket"].["jacket"]
countryCodeNostringLegacy base-actor field name for the region. Same effect as region. Same enum as region. Default: "us"."us"
orderByNostringLegacy base-actor field name for sort order. Same effect as sortBy. Same enum as sortBy. Default: "recommend"."recommend"
maxItemsNointegerLegacy base-actor field name for the per-query item cap. Same effect as maxProductsPerQuery. Minimum: 1, maximum: 10000. Default: 10.10
perPageNostringLegacy base-actor field name for results per page. Same effect as resultsPerPage. Same enum. Default: "120"."120"
filterNostringLegacy base-actor field name for the raw attribute filter. Same effect as extraFilters. Default: "".""
categoryIdNostringLegacy base-actor field name for the category ID. Same effect as category. Default: "".""
minPriceNostringLegacy base-actor field name for the minimum price. Same effect as priceMin. Default: "".""
maxPriceNostringLegacy base-actor field name for the maximum price. Same effect as priceMax. Default: "".""
proxyConfigurationNoobjectApify Proxy configuration. Residential is recommended โ€” Shein blocks bare datacenter IPs.{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}

Example input

{
"searchQueries": ["jacket", "denim skirt"],
"region": "us",
"sortBy": "recommend",
"page": 1,
"resultsPerPage": "120",
"maxProductsPerQuery": 50,
"priceMin": "10",
"priceMax": "60",
"category": "",
"extraFilters": "",
"dedupeAcrossQueries": true,
"onlyMultiColorProducts": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Supported keyword and filter formats

This Actor takes keywords and filters, not URLs โ€” Shein's search is reached through the on-page search box, not a direct results URL (see the anti-scraping section below for why). Three real combinations:

  • Single keyword scoped by price โ€” {"searchQueries": ["jacket"], "priceMin": "10", "priceMax": "40"}
  • Bulk multi-keyword run using legacy field names โ€” {"query": ["dress", "jacket"], "countryCode": "uk", "maxItems": 30} (drop-in input for scripts written against the original base actor)
  • Category and sort combo โ€” {"searchQueries": ["sneakers"], "category": "2030", "sortBy": "PriceLowtoHigh", "resultsPerPage": "40"}

๐Ÿ“ฆ Output Format

Every run produces typed, normalized JSON with a consistent schema across runs โ€” no HTML, no re-parsing. Datasets can be exported from the Apify Console or API as JSON, CSV, Excel (XLSX), or XML.

Output for products

Every row carries the fixed fields below, plus any other raw Shein payload fields for that product that aren't already promoted into one of these columns (those pass through unchanged and vary by product/region, so they aren't individually enumerable here):

{
"section_index": 1,
"section": "jacket",
"query": "jacket",
"country": "US",
"sort_order": "recommend",
"goods_id": "167962972",
"goods_name": "Plus Size Blue Denim Casual Skinny Flare Jacket",
"goods_img": "//img.ltwebstatic.com/main.jpg",
"productUrl": "https://us.shein.com/plus-size-blue-denim-casual-skinny-flare-jacket-p-167962972.html",
"salePriceAmount": 23.99,
"salePriceDisplay": "$23.99",
"salePriceUsd": 23.99,
"retailPriceAmount": 29.99,
"retailPriceDisplay": "$29.99",
"retailPriceUsd": 29.99,
"discountPercent": 20.0,
"isOnSale": true,
"ratingValue": 4.7,
"reviewCount": 128,
"inStock": true,
"stockRaw": "120",
"categoryId": "1727",
"categoryName": "Jackets",
"imageGallery": ["//img.ltwebstatic.com/main.jpg", "//img.ltwebstatic.com/a.jpg"],
"rankInfoLabel": "Best Seller",
"promotionLabels": "Flash Sale; Free Shipping",
"storeCode": "sheinofficial",
"businessModel": "1",
"mallCode": "1",
"colorVariantCount": 4,
"hasMultipleColors": true,
"colorVariantImages": ["//img.ltwebstatic.com/color1.jpg", "//img.ltwebstatic.com/color2.jpg"],
"colorVariantGoodsIds": ["167962972", "167962973"],
"fitTrueToSizePercent": 84.0,
"fitRunsLargePercent": 10.0,
"fitRunsSmallPercent": 6.0,
"fitFeedbackSummary": "84% true to size, 10% runs large, 6% runs small",
"scrapedAt": "2026-07-30T12:00:00+00:00"
}

Fields Shein doesn't return for a given product (no active promotion, no stock signal, etc.) are emitted as null rather than a guessed value.

Output for color variants

The color-variant gallery isn't a separate dataset entry โ€” it rides as a set of fields on each product's own row (shown above). The dedicated colorAndFit dataset view isolates just these columns for review:

{
"goods_id": "167962972",
"productUrl": "https://us.shein.com/plus-size-blue-denim-casual-skinny-flare-jacket-p-167962972.html",
"colorVariantCount": 4,
"hasMultipleColors": true,
"colorVariantImages": ["//img.ltwebstatic.com/color1.jpg", "//img.ltwebstatic.com/color2.jpg"],
"colorVariantGoodsIds": ["167962972", "167962973"]
}

colorVariantCount and its related fields are null when Shein doesn't carry a sibling-colorway list for that product โ€” never a fabricated count.

Output for fit feedback

Same pattern: fit-feedback fields ride on the same product row, and the colorAndFit view surfaces them alongside the color-variant columns:

{
"goods_id": "167962972",
"productUrl": "https://us.shein.com/plus-size-blue-denim-casual-skinny-flare-jacket-p-167962972.html",
"fitTrueToSizePercent": 84.0,
"fitRunsLargePercent": 10.0,
"fitRunsSmallPercent": 6.0,
"fitFeedbackSummary": "84% true to size, 10% runs large, 6% runs small"
}

All four fields are null when a product has no fit-feedback submissions yet on Shein's own listing.

Schema stability and export options

The ~38 engineered columns documented above (pricing, rating, stock, category, color variants, fit feedback, deep-link) stay stable even when Shein reshuffles its front end, because they're built by name-matching several known Shein key spellings rather than reading fixed positions. The additional raw pass-through fields mirror whatever Shein's payload currently contains for a product and are not guaranteed stable across Shein's own changes. Results are available through the Apify Console's dataset viewer, the Apify API, apify-client, or as a JSON/CSV/Excel/XML export.

๐Ÿ’ก Shein Search Products Scraper โ€” Full Product Details Strategy Guide

๐ŸŽฏ Strategy 1: Real-time enrichment pipeline

Trigger a run whenever your system needs fresh data for a keyword or SKU โ€” a new product added to a competitor watch-list, for example. Call the Actor with searchQueries set to that keyword and a small maxProductsPerQuery, then append salePriceAmount, discountPercent, inStock, colorVariantCount and fitFeedbackSummary onto the matching record in your own database or PIM. Because rows are pushed live per product, a downstream consumer can start reading before the run finishes.

๐ŸŽฏ Strategy 2: Scheduled monitoring and alerting

Set up an Apify Schedule to re-run the same keyword list daily or weekly. Diff each new run against the previous one on goods_id, and alert on the deltas that matter for your use case โ€” discountPercent crossing a threshold, inStock flipping to false, or colorVariantCount changing for a tracked style. dedupeAcrossQueries keeps a product from being double-charged if it resurfaces under more than one keyword in the same run.

๐ŸŽฏ Strategy 3: Bulk dataset build

For a research or training dataset, split a long keyword list across parallel runs โ€” one per region or keyword batch โ€” and aggregate the dataset exports (CSV or JSON) into your own storage. maxProductsPerQuery (up to 10000) and resultsPerPage (up to 120) are the Actor's own declared caps; no separate run-concurrency limit is documented for this Actor beyond the proxy retry ladder described in the FAQ below.

Strategy comparison at a glance

StrategyBest forRun patternOutput format
Real-time enrichmentKeeping one record fresh on demandSingle run, small maxProductsPerQueryLive dataset rows, read via API
Scheduled monitoringTracking price/stock/color changes over timeApify Schedule, recurring runDataset diffed run-over-run on goods_id
Bulk dataset buildResearch or training datasetsMultiple parallel runs across keywords/regionsAggregated CSV/JSON export

Within the Scrapio account, this is currently the only Shein-focused scraper โ€” it's the source specifically for the color-variant and fit-feedback columns. For product data on other marketplaces in the same account:

ScraperWhat it extracts
Ebay Search ScrapereBay product search results
eBay Product Details ScraperFull eBay product detail pages
Etsy Reviews ScraperEtsy buyer reviews

Reach for these alongside this Actor when a research or price-monitoring pipeline needs Shein data cross-referenced against another marketplace, rather than as a Shein-specific alternative.

๐Ÿ”Œ How to Integrate Shein Search Products Scraper With Your Stack

Shein Search Products Scraper โ€” Full Product Details works with any language or tool that can make an HTTP request, using the Apify API or the official apify-client SDKs.

Python

from apify_client import ApifyClient
import csv
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"searchQueries": ["jacket", "denim skirt"],
"region": "us",
"maxProductsPerQuery": 50,
"onlyMultiColorProducts": True,
}
run = client.actor("<YOUR_USERNAME>/shein-search-products-scraper-full-product-details").call(run_input=run_input)
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
with open("shein_products.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=rows[0].keys())
writer.writeheader()
writer.writerows(rows)
print(f"Saved {len(rows)} products to shein_products.csv")

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('<YOUR_USERNAME>/shein-search-products-scraper-full-product-details').call({
searchQueries: ['jacket', 'denim skirt'],
region: 'us',
maxProductsPerQuery: 50,
onlyMultiColorProducts: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((p) => {
console.log(`${p.goods_name} โ€” ${p.salePriceDisplay} (${p.colorVariantCount ?? 0} colors)`);
});
console.log(`Fetched ${items.length} products`);

Async and scheduled pipelines

Trigger runs on a cron schedule from the Apify Console or API (Apify Schedules) to re-scrape the same keyword list on a recurring basis. This Actor has no built-in webhook of its own โ€” use Apify's platform-level webhooks (for example on run success) to notify your pipeline when a run finishes, then pull the new rows through the dataset API. For long keyword lists, split them across multiple scheduled runs rather than one oversized run, since rows are pushed live as each product is scraped.

๐ŸŽฏ Who Needs Shein Search Products Scraper โ€” Full Product Details? (Use Cases & Industries)

๐Ÿข E-commerce, dropshipping and private-label sellers

Pull salePriceAmount, discountPercent, inStock and colorVariantCount for a shortlist of keywords to decide restocking and assortment matching against Shein's own catalog.

๐Ÿ“Š Market and BI analysts

Build a recurring keyword-scoped export of pricing and discount fields to track Shein's markdown behavior by category over time, without manually re-checking listings.

๐Ÿ“ฑ SaaS and product builders

Consume colorVariantImages and the fitTrueToSizePercent / fitRunsLargePercent / fitRunsSmallPercent fields directly as structured inputs for a fit-prediction or color-matching feature.

๐Ÿ”ฌ Researchers

Fast-fashion pricing and sizing datasets for academic or market research, built from public search results only โ€” no account-gated or personal data involved.

Yes โ€” scraping publicly accessible web pages, including Shein's product search results, is generally lawful; U.S. courts have held that accessing data that isn't access-gated does not amount to unauthorized access under the Computer Fraud and Abuse Act (hiQ Labs, Inc. v. LinkedIn Corp., 9th Cir. 2019). That precedent concerns unauthorized-access claims, not contract law โ€” separately, scraping in a way that breaches a platform's Terms of Service is a potential civil matter between the scraper and the platform, not a criminal one, and how it's enforced varies by jurisdiction. This Actor returns only product, pricing, and aggregate-rating data collected from Shein's public search results โ€” no reviewer names, account details, or other personal data are extracted, so data-protection regimes built around personal data, such as GDPR or CCPA, do not attach to this Actor's output. Shein Search Products Scraper โ€” Full Product Details returns only publicly accessible data. What you do with that data is your responsibility โ€” consult legal counsel for commercial applications involving personal data.

โ“ Frequently Asked Questions

Does Shein Search Products Scraper โ€” Full Product Details work without a Shein account?

Yes. No login or account is required โ€” every field is read from Shein's own public search-results payload after the Actor reaches a rendered /pdsearch/ page.

How does it handle Shein's anti-scraping measures?

It drives a Camoufox (Firefox-based, fingerprint-patched) browser, falling back to stealth-patched Playwright Chromium if Camoufox fails to launch. Rather than loading a results URL directly โ€” which Shein gates behind a /risk/ challenge โ€” it warms up the regional homepage, triggers the search through the on-page search box with trusted keyboard events, and detects and retries through /risk/ challenges as they occur mid-session.

Can I run it at scale without getting blocked?

Scaling is handled through a proxy escalation ladder: if you supply a custom proxyConfiguration, the Actor retries on it up to 3 times before falling back to Apify's Residential proxy, which it retries up to 8 times; if you leave the default, it goes straight to Residential. Each query holds a sticky proxy session so pagination doesn't jump between exit IPs. Beyond that ladder, no fixed concurrency or throughput ceiling is documented for this Actor.

How fresh is the data?

Every run performs a live browser fetch against Shein's current search results โ€” nothing is cached or replayed from a previous run.

Is scraping Shein against its Terms of Service?

Most e-commerce platforms' Terms of Service restrict automated access in some form; violating a Terms of Service is a civil contract matter between the user and the platform, not a criminal one. This Actor does not attempt to access anything beyond Shein's own public search results.

Which fields work best for AI training and RAG indexing?

For RAG, the free-text fields โ€” goods_name, categoryName, fitFeedbackSummary, promotionLabels, rankInfoLabel โ€” carry the most retrievable context. For training data, the numeric fields โ€” discountPercent, ratingValue, reviewCount, colorVariantCount โ€” have the most consistent shape across records. All fields return as typed primitives (numbers, booleans, strings, arrays), so no normalization is needed before passing them into a model context.

Does it work with Claude, ChatGPT, and other AI agent tools?

There's no dedicated MCP server for this Actor. It's callable as an HTTP endpoint by any agent framework through the Apify API or apify-client, and every response is typed JSON โ€” no HTML parsing required before passing results into an LLM's context window.

What happens if a product has no color variants or fit feedback?

Shein doesn't carry that data for every product. A single-colorway product gets colorVariantCount: null and hasMultipleColors: false; a product with no fit-feedback submissions yet gets fitTrueToSizePercent, fitRunsLargePercent, fitRunsSmallPercent and fitFeedbackSummary all as null. Values are never guessed or interpolated.

Can I still use the original Shein Search Products Scraper's input field names?

Yes โ€” query, countryCode, orderBy, maxItems, perPage, filter, categoryId, minPrice and maxPrice are all still accepted as legacy aliases, and an input JSON built for the original actor runs unchanged.

What's the default if I don't set maxProductsPerQuery?

The schema itself declares no default for maxProductsPerQuery โ€” if you omit it entirely, the run collects only 10 products per keyword (matching the legacy maxItems field's default). Set it explicitly for anything larger.

โ„น๏ธ Disclaimer

Shein Search Products Scraper โ€” Full Product Details extracts only publicly available data from Shein's search-results pages. This tool is intended for lawful use cases only. Users are responsible for complying with Shein's terms of service and applicable data protection laws in their jurisdiction.