YesStyle Scraper at a glance
YesStyle Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its output documents 70 fields, including image, images, product, variant and change type (incremental mode), which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.20 per 1,000 results on the Apify Free plan and from $1.70 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Web data
- Pricing
- $2.20 per 1,000 results (Free plan), from $1.70 on paid plans
- Output
- 70 documented fields · JSON, CSV, Excel
- Inputs
- 22 options
What YesStyle Scraper can do
- Two ways in. Run keywords through the store's own search, or paste product, brand, category and search links for a fixed catalogue.
- 75+ fields per product. Price in local currency and USD, original price, discount, rating to two decimals, review count, brand id, variant and variant family, bestseller rank, awards, sale status, every active promotion, origin country, plus where the row came from and its rank in those results.
- Full product pages. Every gallery image at full size, the complete product details (size, benefits, how to use), ingredients, the rating breakdown by star, bestseller ranks per category, brand profile and satisfaction score, bundle offers, catalog number, delivery estimate and the category trail with ids.
- Customer reviews attached. Each product can carry its reviews as a nested list: title, rating, text, date, reviewer, helpful-vote counts, review images with thumbnails and the exact variant reviewed, sorted and filtered the way you choose.
- Regional storefronts. The connection's exit country decides which YesStyle storefront and currency a run reads (US by default).
- Built for schedules. Incremental mode returns only new, changed, reappeared or expired products on later runs, with the changed fields named on each row.
Choose what to collect
These inputs let you configure YesStyle Scraper - K-Beauty, Fashion, Prices & Reviews. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring | Choose 'search' to run one or more keywords through YesStyle's own search, or 'url' to scrape pasted links: product pages, browse (list.html) pages and search pages are all accepted. |
queriesarray | Only used when mode = search, ignored in url mode. One or more keywords, for example sheet mask, anua serum, korean dress. |
sortBystring | Search mode only. Sort order applied to keyword searches, using the store's own sort codes. Pasted links in URL mode always keep their own ordering. |
urlsarray | Only used when mode = url, ignored in search mode. Paste product page links, browse links (brand/category listings) or search links from yesstyle.com. |
minPricestring | Both modes. Keep only products priced at or above this value (in the storefront currency your run reads). Leave empty for no lower bound. |
maxPricestring | Both modes. Keep only products priced at or below this value. Leave empty for no upper bound. |
inStockOnlyboolean | Both modes. Keep only products the product page marks as in stock. Needs Fetch product details enabled. |
Show 15 more inputs
| Input | What it controls |
|---|---|
fetchDetailsboolean | Read each product's own page for the description, availability, condition, selected variant, full image set and category trail. Costs one Detail enrichment unit per product returned. |
fetchReviewsboolean | Attach the product's customer reviews to its record as a nested list. Costs one Review enrichment unit per review attached. Reviews are only read for products actually returned. |
reviewSortstring | Both modes. Which reviews come first, using the store's own review orderings. |
reviewFilterstring | Both modes. Which reviews the store includes, using its own review filters. |
maxReviewsPerProductinteger | Both modes. Stop reading a product's reviews after this many. Use 0 to read every review the store returns for the product. |
maxItemsinteger | Stop after this many products. The run ends cleanly once the cap is reached. |
maxPagesinteger | Walk at most this many result pages per keyword or listing. Leave empty or 0 to walk every page of results. |
resumeFromRunIdstring | Continue an interrupted run: paste a previous run's ID (or a dataset ID) from this account and every product it already collected is skipped. |
incrementalModeboolean | Track the same search or links across scheduled runs and return only what changed: NEW, UPDATED, UNCHANGED (suppressed by default), REAPPEARED and EXPIRED products. The first run for a scope reports everything as NEW. |
stateKeystring | Optional name for the incremental baseline. Runs sharing a state key share one baseline; leave empty to derive it from the search configuration automatically. |
emitUnchangedboolean | Also return products that did not change since the last incremental run (changeType UNCHANGED) instead of suppressing them. |
emitExpiredboolean | After a complete scan, also return tracked products that are no longer in the results (changeType EXPIRED). |
mcpConnectorsarray | Optional MCP connector IDs. Each returned product is also sent to the connector (for example a Notion database). |
notionParentPageUrlstring | Used with a Notion MCP connector: the parent page or database the product pages are created under. |
maxNotifyListingsinteger | Cap how many of the returned products are sent to MCP connectors. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
imageUrlImage (image)imageCountImagesnameProductvariantVariantchangeTypeChange type (incremental mode) (text)productIdProduct IDbrandBrandbrandIdBrand IDpricePriceoriginalPriceOriginal pricediscountPercentDiscount %itemStatusSale statusShow 58 more fields
currencyCurrencypriceUsdPrice (USD)priceDisplayPrice as shownratingRating (0-5)reviewCountReview countbestsellerRankBestseller rankavailabilityAvailabilityconditionConditionselectedOptionSelected variantbadgesBadgespromotionsPromotionsoriginCountryOrigincategoriesCategoriesurlProduct pagescrapedAtScraped atchangedFieldsChanged fields (text)firstSeenAtFirst seenlastSeenAtLast seensearchRankRank in resultssourceQuerySearch keywordimagesImagesproductDescriptionProduct descriptionproductDetailsProduct detailssizeSizehowToUseHow to usebenefitsBenefitsingredientsIngredientsratingBreakdownRating breakdownreviewsSummaryReviews summarybestsellerRanksBestseller ranksbrandOriginBrand originbrandDescriptionBrand descriptionbrandSatisfactionPercentBrand satisfaction percentcategoryIdsCategory idsvariantProductIdsVariant product idsvariantCountVariant countbundlesBundlesavailabilityTextAvailability textdealClaimedPercentDeal claimed percentsaleEndDateSale end dateimportedFromImported fromcatalogNumberCatalog numbershipsToShips todeliveryEstimateDelivery estimatefreeShippingOfferFree shipping offerpurchaseNotePurchase notereviewsreviewsreviewIdReview IDreviewTitleTitlereviewRatingRating (0-5)reviewTextReview textreviewDateDatereviewerNameReviewerreviewHelpfulVotesHelpful votesreviewTotalVotesTotal votesreviewImagesReview imagesreviewImageThumbnailsImage thumbnailsreviewProductIdReviewed variant IDExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"productId": "1000000001",
"url": "https://www.yesstyle.com/en/sample-sheet-mask/info.html/pid.1000000001",
"name": "Sample Hydrating Sheet Mask",
"brand": "Sample Brand",
"brandId": 300001,
"variant": "25ml",
"price": 12.34,
"currency": "USD",
"priceDisplay": "US$ 12.34",
"originalPrice": 18,
"originalPriceDisplay": "US$ 18.00",
"discountPercent": 31,
"priceUsd": 12.34,
"discountAmountUsd": 5.66,
"rating": 4.82,
"reviewCount": 1000,
"ratingBreakdown": {
"1": 10,
"2": 10,
"3": 30,
"4": 150,
"5": 800
},
"itemStatus": "FLASH SALE",
"promotions": [
"limitedDeal",
"highDiscount"
],
"bestsellerRank": 2,
"bestsellerRanks": [
{
"rank": 2,
"category": "Face Masks",
"categoryId": 10002
}
],
"variantProductIds": [
"1000000002",
"1000000003"
],
"variantCount": 3,
"originCountry": "KR",
"images": [
"https://d1flfk77wl2xk4.cloudfront.net/Assets/00/000/l_p0000000000.jpg",
"https://d1flfk77wl2xk4.cloudfront.net/Assets/GalleryImage/00/000/L_g0000000001.jpg"
],
"imageCount": 2,
"productDescription": "Full product description appears here when detail enrichment is on.",
"size": "25ml",
"howToUse": "Apply to cleansed skin and remove after 15 minutes.",
"ingredients": "Water, Glycerin, Niacinamide",
"brandOrigin": "South Korea",
"brandSatisfactionPercent": 98.5,
"availability": "InStock",
"dealClaimedPercent": 60,
"saleEndDate": "2026-01-01T00:00:00Z",
"categories": [
"Home",
"Beauty",
"Skin Care",
"Face Masks"
],
"categoryIds": [
10000,
10001,
10002
],
"bundles": [
{
"bundleProductId": "1000000009",
"bundleTitle": "Sample Sheet Mask Bundle Set",
"bundlePrice": 49
}
],
"importedFrom": "South Korea",
"deliveryEstimate": "6 - 8 business days",
"searchRank": 3,
"sourceQuery": "sheet mask",
"scrapedAt": "2026-01-01T00:00:00Z",
"reviewsSummary": {
"totalReviews": 1000,
"satisfactionPercent": "98%",
"ratingBreakdown": {
"1": 10,
"2": 10,
"3": 30,
"4": 150,
"5": 800
}
},
"reviews": [
{
"reviewId": 10000001,
"reviewTitle": "Excellent for hydrating",
"reviewRating": 5,
"reviewText": "Review text appears here.",
"reviewDate": "January 1, 2026",
"reviewerName": "Jane Doe",
"reviewHelpfulVotes": 10,
"reviewTotalVotes": 12,
"reviewImages": [],
"reviewImageThumbnails": [],
"reviewProductId": "1000000001"
}
]
}Ways to use this data
- Price and discount monitoring: schedule a daily run over your brands or keywords and let incremental mode return only what changed.
- Review mining: pull ratings, review text, dates and helpful-vote counts for sentiment analysis or competitor research.
- Catalogue feeds: build a structured feed of a brand's or category's listings with full image galleries, ingredients, product details and category trails.
- Stock, ranking and launch tracking: watch availability, bestseller ranks and search positions, and catch new arrivals as they enter the results.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does YesStyle Scraper return?
YesStyle Scraper returns 70 documented fields, including image, images, product, variant, change type (incremental mode), product id, brand and brand id. Availability of each field depends on the source page and the selected mode.
How much does YesStyle Scraper cost?
It costs $2.20 per 1,000 results on the Apify Free plan and from $1.70 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I get only new or changed products on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. The first run records a baseline; later runs return only new, updated and reappeared products (and expired ones after a complete scan, if you turn on Emit expired products). Unchanged products are not billed.
Why did a run return fewer products than the store shows?
Max products, Max pages, the price bounds and In stock only all narrow results. The store also reorders results between visits, so two runs of the same keyword can differ slightly near the cut-off.
Why did my run fail instead of returning an empty dataset?
If every listing page is refused after retries, the run stops with a clear message, so "no products" is never confused with "nothing could be read". Run it again in a few minutes, or check the connection setting you selected.
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 results into Notion, Linear or Airtable.
