YesStyle Scraper - K‑Beauty, Fashion, Prices & Reviews

Scrape YesStyle products by keyword or URL. Extract prices, discounts, ratings, stock, images, categories, variants and customer reviews across K-beauty, fashion and lifestyle. Incremental mode tracks daily changes.

Open actor on Apify ↗Need a custom scraper?Telegram @abotapi ↗

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.

Supported input fields
InputWhat it controls
modestringChoose '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.

Choices: search, url

queriesarrayOnly used when mode = search, ignored in url mode. One or more keywords, for example sheet mask, anua serum, korean dress.
sortBystringSearch 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.

Choices: bestsellers, new_arrivals, price_low_high, price_high_low, best_value, availability, discount_high_low

urlsarrayOnly used when mode = url, ignored in search mode. Paste product page links, browse links (brand/category listings) or search links from yesstyle.com.
minPricestringBoth modes. Keep only products priced at or above this value (in the storefront currency your run reads). Leave empty for no lower bound.
maxPricestringBoth modes. Keep only products priced at or below this value. Leave empty for no upper bound.
inStockOnlybooleanBoth modes. Keep only products the product page marks as in stock. Needs Fetch product details enabled.
Show 15 more inputs
More input fields
InputWhat it controls
fetchDetailsbooleanRead 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.
fetchReviewsbooleanAttach 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.
reviewSortstringBoth modes. Which reviews come first, using the store's own review orderings.

Choices: relevant, newest, highest, helpful

reviewFilterstringBoth modes. Which reviews the store includes, using its own review filters.

Choices: all, five_star, four_star, three_star, two_star, one_star, positive, negative, photo, video

maxReviewsPerProductintegerBoth modes. Stop reading a product's reviews after this many. Use 0 to read every review the store returns for the product.
maxItemsintegerStop after this many products. The run ends cleanly once the cap is reached.
maxPagesintegerWalk at most this many result pages per keyword or listing. Leave empty or 0 to walk every page of results.
resumeFromRunIdstringContinue an interrupted run: paste a previous run's ID (or a dataset ID) from this account and every product it already collected is skipped.
incrementalModebooleanTrack 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.
stateKeystringOptional name for the incremental baseline. Runs sharing a state key share one baseline; leave empty to derive it from the search configuration automatically.
emitUnchangedbooleanAlso return products that did not change since the last incremental run (changeType UNCHANGED) instead of suppressing them.
emitExpiredbooleanAfter a complete scan, also return tracked products that are no longer in the results (changeType EXPIRED).
mcpConnectorsarrayOptional MCP connector IDs. Each returned product is also sent to the connector (for example a Notion database).
notionParentPageUrlstringUsed with a Notion MCP connector: the parent page or database the product pages are created under.
maxNotifyListingsintegerCap 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)
imageCountImages
nameProduct
variantVariant
changeTypeChange type (incremental mode) (text)
productIdProduct ID
brandBrand
brandIdBrand ID
pricePrice
originalPriceOriginal price
discountPercentDiscount %
itemStatusSale status
Show 58 more fields
currencyCurrency
priceUsdPrice (USD)
priceDisplayPrice as shown
ratingRating (0-5)
reviewCountReview count
bestsellerRankBestseller rank
availabilityAvailability
conditionCondition
selectedOptionSelected variant
badgesBadges
promotionsPromotions
originCountryOrigin
categoriesCategories
urlProduct page
scrapedAtScraped at
changedFieldsChanged fields (text)
firstSeenAtFirst seen
lastSeenAtLast seen
searchRankRank in results
sourceQuerySearch keyword
imagesImages
productDescriptionProduct description
productDetailsProduct details
sizeSize
howToUseHow to use
benefitsBenefits
ingredientsIngredients
ratingBreakdownRating breakdown
reviewsSummaryReviews summary
bestsellerRanksBestseller ranks
brandOriginBrand origin
brandDescriptionBrand description
brandSatisfactionPercentBrand satisfaction percent
categoryIdsCategory ids
variantProductIdsVariant product ids
variantCountVariant count
bundlesBundles
availabilityTextAvailability text
dealClaimedPercentDeal claimed percent
saleEndDateSale end date
importedFromImported from
catalogNumberCatalog number
shipsToShips to
deliveryEstimateDelivery estimate
freeShippingOfferFree shipping offer
purchaseNotePurchase note
reviewsreviews
reviewIdReview ID
reviewTitleTitle
reviewRatingRating (0-5)
reviewTextReview text
reviewDateDate
reviewerNameReviewer
reviewHelpfulVotesHelpful votes
reviewTotalVotesTotal votes
reviewImagesReview images
reviewImageThumbnailsImage thumbnails
reviewProductIdReviewed variant ID

Example 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.