Dataspryva

Sephora Catalog Price & Rating Finder

Search Sephora's product catalog by keyword, bestsellers, or new arrivals, filtered by rating, brand, and price, with merchandising flags, review counts, and images for every matching product.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredWhat to fetch: keyword search, category or brand browse, product URLs, bestsellers, new arrivals, sale, reviews or questions.
searchQueriesarrayoptionalKeywords to search (mode=search). Enter one or more terms, e.g. `moisturizer`, `vitamin c serum`.
categoriesarrayoptionalCategory slugs, `cat...` IDs or Sephora category URLs (mode=category, bestsellers, newArrivals, sale; also a filter in search). Empty browse modes use the six top-level categories.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredWhat to fetch: keyword search, category or brand browse, product URLs, bestsellers, new arrivals, sale, reviews or questions.
searchQueriesarrayoptionalKeywords to search (mode=search). Enter one or more terms, e.g. `moisturizer`, `vitamin c serum`.
categoriesarrayoptionalCategory slugs, `cat...` IDs or Sephora category URLs (mode=category, bestsellers, newArrivals, sale; also a filter in search). Empty browse modes use the six top-level categories.
brandsarrayoptionalBrand names, slugs or Sephora brand URLs (mode=brand; also an optional filter in other listing modes). Example: `Rare Beauty` or `/brand/rare-beauty-by-selena-gomez`.
productUrlsarrayoptionalSephora product URLs or `P...` IDs (mode=product, reviews, questions). A `?skuId=` in the URL selects that variant.
marketstringoptionalStorefront and currency: United States (USD), Canada English (CAD) or Canada French (CAD).
sortBystringoptionalResult ordering for listing modes. Bestsellers and sale default to best selling; new arrivals default to newest.
minRatingintegeroptionalOnly include products rated at or above this value (1-5).
priceMinintegeroptionalOnly include products whose current price is at or above this amount, in the selected market's currency.
priceMaxintegeroptionalOnly include products whose current price is at or below this amount, in the selected market's currency.
includeNewOnlybooleanoptionalOnly include products Sephora flags as new.
includeBestsellersOnlybooleanoptionalOnly include products flagged as bestsellers in listing modes. Not available in product-URL mode.
saleOnlybooleanoptionalOnly include products currently discounted by Sephora.
refinementsarrayoptionalOptional Sephora facet values, e.g. `filters[skinType]=drySk` or `filters[ingredientPreferences]=crueltyFree`. Up to 20.
includeDetailsbooleanoptionalFetch descriptions, ingredients, highlights, variants, stock, category path and brand information for every product in listing modes. Product-URL mode always includes details.
includeImagesbooleanoptionalCopy product images into the run's key-value store so the image links stay publicly accessible.
maxImagesPerProductintegeroptionalMaximum number of product images to keep and rehost for each product.
includeReviewsbooleanoptionalAdd recent or most-helpful review samples to product records, and fetch review samples in reviews mode.
maxReviewsPerProductintegeroptionalMaximum review rows or samples per product.
reviewsSortstringoptionalOrdering for review rows and review samples.
includeReviewStatsbooleanoptionalAdd the rating histogram, recommendation counts, review dates and GTIN/UPC/EAN identifiers.
includeQuestionsbooleanoptionalAdd questions with their answers to product records, and fetch question rows in questions mode.
maxQuestionsPerProductintegeroptionalMaximum question rows or embedded questions per product.
maxItemsintegeroptionalHard cap on all records emitted by the run.
maxItemsPerQueryintegeroptionalCap records per keyword, category, brand or product URL. 0 means no per-source cap.
onlyNewProductsbooleanoptionalSkip product IDs that were already returned under the same state key in earlier runs.
stateKeystringoptionalName for the saved product-ID state used by 'Only new products'.
resetStatebooleanoptionalForget previously seen product IDs for this state key before the run.
proxyConfigurationobjectoptionalOptional. Sephora's public catalog and review endpoints work without a proxy.

Download the published input schema

View complete JSON
{
  "description": "Search or browse Sephora products, fetch product URLs, exports reviews or questions. Choose a mode, then set keywords, categories, brands, market, filters and optional detail enrichment.",
  "properties": {
    "brands": {
      "default": [],
      "description": "Brand names, slugs or Sephora brand URLs (mode=brand; also an optional filter in other listing modes). Example: `Rare Beauty` or `/brand/rare-beauty-by-selena-gomez`.",
      "editor": "stringList",
      "prefill": [],
      "title": "Brands",
      "type": "array"
    },
    "categories": {
      "default": [],
      "description": "Category slugs, `cat...` IDs or Sephora category URLs (mode=category, bestsellers, newArrivals, sale; also a filter in search). Empty browse modes use the six top-level categories.",
      "editor": "stringList",
      "prefill": [],
      "title": "Categories",
      "type": "array"
    },
    "includeBestsellersOnly": {
      "default": false,
      "description": "Only include products flagged as bestsellers in listing modes. Not available in product-URL mode.",
      "prefill": false,
      "title": "Bestsellers only",
      "type": "boolean"
    },
    "includeDetails": {
      "default": false,
      "description": "Fetch descriptions, ingredients, highlights, variants, stock, category path and brand information for every product in listing modes. Product-URL mode always includes details.",
      "prefill": false,
      "title": "Include product details",
      "type": "boolean"
    },
    "includeImages": {
      "default": true,
      "description": "Copy product images into the run's key-value store so the image links stay publicly accessible.",
      "prefill": false,
      "title": "Include rehosted images",
      "type": "boolean"
    },
    "includeNewOnly": {
      "default": false,
      "description": "Only include products Sephora flags as new.",
      "prefill": false,
      "title": "New products only",
      "type": "boolean"
    },
    "includeQuestions": {
      "default": false,
      "description": "Add questions with their answers to product records, and fetch question rows in questions mode.",
      "prefill": false,
      "title": "Include questions and answers",
      "type": "boolean"
    },
    "includeReviewStats": {
      "default": false,
      "description": "Add the rating histogram, recommendation counts, review dates and GTIN/UPC/EAN identifiers.",
      "prefill": false,
      "title": "Include review statistics",
      "type": "boolean"
    },
    "includeReviews": {
      "default": false,
      "description": "Add recent or most-helpful review samples to product records, and fetch review samples in reviews mode.",
      "prefill": false,
      "title": "Include review samples",
      "type": "boolean"
    },
    "market": {
      "default": "us",
      "description": "Storefront and currency: United States (USD), Canada English (CAD) or Canada French (CAD).",
      "editor": "select",
      "enum": [
        "us",
        "ca-en",
        "ca-fr"
      ],
      "enumTitles": [
        "United States (USD)",
        "Canada - English (CAD)",
        "Canada - French (CAD)"
      ],
      "prefill": "us",
      "title": "Market",
      "type": "string"
    },
    "maxImagesPerProduct": {
      "default": 3,
      "description": "Maximum number of product images to keep and rehost for each product.",
      "maximum": 20,
      "minimum": 1,
      "prefill": 3,
      "title": "Maximum images per product",
      "type": "integer"
    },
    "maxItems": {
      "default": 50,
      "description": "Hard cap on all records emitted by the run.",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 1,
      "title": "Maximum records",
      "type": "integer"
    },
    "maxItemsPerQuery": {
      "default": 0,
      "description": "Cap records per keyword, category, brand or product URL. 0 means no per-source cap.",
      "maximum": 10000,
      "minimum": 0,
      "prefill": 0,
      "title": "Maximum records per source",
      "type": "integer"
    },
    "maxQuestionsPerProduct": {
      "default": 10,
      "description": "Maximum question rows or embedded questions per product.",
      "maximum": 200,
      "minimum": 1,
      "prefill": 10,
      "title": "Maximum questions per product",
      "type": "integer"
    },
    "maxReviewsPerProduct": {
      "default": 20,
      "description": "Maximum review rows or samples per product.",
      "maximum": 1000,
      "minimum": 1,
      "prefill": 20,
      "title": "Maximum reviews per product",
      "type": "integer"
    },
    "minRating": {
      "description": "Only include products rated at or above this value (1-5).",
      "maximum": 5,
      "minimum": 1,
      "title": "Minimum rating",
      "type": "integer"
    },
    "mode": {
      "default": "search",
      "description": "What to fetch: keyword search, category or brand browse, product URLs, bestsellers, new arrivals, sale, reviews or questions.",
      "editor": "select",
      "enum": [
        "search",
        "category",
        "brand",
        "product",
        "bestsellers",
        "newArrivals",
        "sale",
        "reviews",
        "questions"
      ],
      "enumTitles": [
        "Search products by keyword",
        "Browse categories",
        "Browse brands",
        "Fetch product URLs or IDs",
        "Bestsellers by category",
        "New arrivals by category",
        "Products on sale",
        "Reviews for product URLs",
        "Questions and answers for product URLs"
      ],
      "prefill": "search",
      "title": "Mode",
      "type": "string"
    },
    "onlyNewProducts": {
      "default": false,
      "description": "Skip product IDs that were already returned under the same state key in earlier runs.",
      "prefill": false,
      "title": "Only new products",
      "type": "boolean"
    },
    "priceMax": {
      "description": "Only include products whose current price is at or below this amount, in the selected market's currency.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Maximum price",
      "type": "integer"
    },
    "priceMin": {
      "description": "Only include products whose current price is at or above this amount, in the selected market's currency.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Minimum price",
      "type": "integer"
    },
    "productUrls": {
      "default": [],
      "description": "Sephora product URLs or `P...` IDs (mode=product, reviews, questions). A `?skuId=` in the URL selects that variant.",
      "editor": "stringList",
      "prefill": [],
      "title": "Product URLs or IDs",
      "type": "array"
    },
    "proxyConfiguration": {
      "default": {
        "useApifyProxy": false
      },
      "description": "Optional. Sephora's public catalog and review endpoints work without a proxy.",
      "editor": "proxy",
      "prefill": {
        "useApifyProxy": false
      },
      "title": "Proxy configuration",
      "type": "object"
    },
    "refinements": {
      "default": [],
      "description": "Optional Sephora facet values, e.g. `filters[skinType]=drySk` or `filters[ingredientPreferences]=crueltyFree`. Up to 20.",
      "editor": "stringList",
      "prefill": [],
      "title": "Advanced refinements",
      "type": "array"
    },
    "resetState": {
      "default": false,
      "description": "Forget previously seen product IDs for this state key before the run.",
      "prefill": false,
      "title": "Reset saved state",
      "type": "boolean"
    },
    "reviewsSort": {
      "default": "mostHelpful",
      "description": "Ordering for review rows and review samples.",
      "editor": "select",
      "enum": [
        "mostHelpful",
        "newest",
        "oldest",
        "highestRating",
        "lowestRating"
      ],
      "enumTitles": [
        "Most helpful",
        "Newest first",
        "Oldest first",
        "Highest rating",
        "Lowest rating"
      ],
      "prefill": "mostHelpful",
      "title": "Review order",
      "type": "string"
    },
    "saleOnly": {
      "default": false,
      "description": "Only include products currently discounted by Sephora.",
      "prefill": false,
      "title": "On sale only",
      "type": "boolean"
    },
    "searchQueries": {
      "default": [],
      "description": "Keywords to search (mode=search). Enter one or more terms, e.g. `moisturizer`, `vitamin c serum`.",
      "editor": "stringList",
      "prefill": [
        "moisturizer"
      ],
      "title": "Search keywords",
      "type": "array"
    },
    "sortBy": {
      "default": "relevance",
      "description": "Result ordering for listing modes. Bestsellers and sale default to best selling; new arrivals default to newest.",
      "editor": "select",
      "enum": [
        "relevance",
        "bestSelling",
        "topRated",
        "priceLowToHigh",
        "priceHighToLow",
        "newArrivals"
      ],
      "enumTitles": [
        "Relevance",
        "Best selling",
        "Top rated",
        "Price: low to high",
        "Price: high to low",
        "Newest first"
      ],
      "prefill": "relevance",
      "title": "Sort order",
      "type": "string"
    },
    "stateKey": {
      "default": "default",
      "description": "Name for the saved product-ID state used by 'Only new products'.",
      "editor": "textfield",
      "prefill": "default",
      "title": "State key",
      "type": "string"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Sephora Catalog Price & Rating Finder Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
productsstringoptionalDataset containing Sephora products, reviews and questions, distinguished by recordType.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Sephora product, review and question records with prices, variants, ingredients, stock, ratings, review statistics and Q&A across US, Canada English and Canada French.",
  "properties": {
    "products": {
      "description": "Dataset containing Sephora products, reviews and questions, distinguished by recordType.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Sephora records",
      "type": "string"
    }
  },
  "title": "Sephora Catalog Price & Rating Finder Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "products": {
      "display": {
        "component": "table",
        "properties": {
          "brandName": {
            "format": "text",
            "label": "Brand"
          },
          "displayName": {
            "format": "text",
            "label": "Product"
          },
          "inStock": {
            "format": "boolean",
            "label": "In stock"
          },
          "market": {
            "format": "text",
            "label": "Market"
          },
          "price": {
            "format": "number",
            "label": "Price"
          },
          "priceMax": {
            "format": "number",
            "label": "Price max"
          },
          "priceMin": {
            "format": "number",
            "label": "Price min"
          },
          "productId": {
            "format": "text",
            "label": "Product ID"
          },
          "productUrl": {
            "format": "link",
            "label": "Product URL"
          },
          "rating": {
            "format": "number",
            "label": "Rating"
          },
          "reviews": {
            "format": "number",
            "label": "Reviews"
          },
          "salePrice": {
            "format": "number",
            "label": "Sale price"
          },
          "variantsCount": {
            "format": "number",
            "label": "Variants"
          }
        }
      },
      "title": "Products",
      "transformation": {
        "fields": [
          "productId",
          "brandName",
          "displayName",
          "rating",
          "reviews",
          "price",
          "priceMin",
          "priceMax",
          "salePrice",
          "inStock",
          "variantsCount",
          "market",
          "productUrl"
        ]
      }
    },
    "questions": {
      "display": {
        "component": "table",
        "properties": {
          "answersCount": {
            "format": "number",
            "label": "Answers"
          },
          "author": {
            "format": "text",
            "label": "Author"
          },
          "brandName": {
            "format": "text",
            "label": "Brand"
          },
          "market": {
            "format": "text",
            "label": "Market"
          },
          "productName": {
            "format": "text",
            "label": "Product"
          },
          "question": {
            "format": "text",
            "label": "Question"
          },
          "questionId": {
            "format": "text",
            "label": "Question ID"
          },
          "recordType": {
            "format": "text",
            "label": "Type"
          },
          "submittedAt": {
            "format": "text",
            "label": "Submitted"
          }
        }
      },
      "title": "Questions",
      "transformation": {
        "fields": [
          "recordType",
          "questionId",
          "productName",
          "brandName",
          "question",
          "author",
          "submittedAt",
          "answersCount",
          "market"
        ]
      }
    },
    "reviews": {
      "display": {
        "component": "table",
        "properties": {
          "author": {
            "format": "text",
            "label": "Author"
          },
          "brandName": {
            "format": "text",
            "label": "Brand"
          },
          "helpfulVotes": {
            "format": "number",
            "label": "Helpful"
          },
          "isVerifiedPurchase": {
            "format": "boolean",
            "label": "Verified"
          },
          "market": {
            "format": "text",
            "label": "Market"
          },
          "productName": {
            "format": "text",
            "label": "Product"
          },
          "rating": {
            "format": "number",
            "label": "Rating"
          },
          "recordType": {
            "format": "text",
            "label": "Type"
          },
          "reviewId": {
            "format": "text",
            "label": "Review ID"
          },
          "submittedAt": {
            "format": "text",
            "label": "Submitted"
          },
          "title": {
            "format": "text",
            "label": "Title"
          }
        }
      },
      "title": "Reviews",
      "transformation": {
        "fields": [
          "recordType",
          "reviewId",
          "productName",
          "brandName",
          "rating",
          "title",
          "author",
          "submittedAt",
          "isVerifiedPurchase",
          "helpfulVotes",
          "market"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Sephora Catalog Price & Rating Finder

Sephora's beauty catalog changes constantly: new launches, rotating sale prices, shade and size variants, and thousands of reviews arriving every week. This actor turns that catalog into structured records for price tracking, assortment analysis, ingredient research and review intelligence. Search by keyword, browse categories or brands, or paste product URLs, then optionally add full product details, variants, stock, images, review samples, rating histograms and Q&A. Works in the United States and Canada (English and French), with no login, cookie or proxy setup.

What this actor does

  • Nine modes: search, category, brand, product, bestsellers, newArrivals, sale, reviews and questions
  • Three storefronts: US (USD), Canada English (CAD) and Canada French (CAD), with French product text for Quebec
  • Rich product detail: descriptions, how-to-use, ingredients, highlights, brand copy, category path, variants/SKUs, stock, sale prices and full-size image links
  • Review intelligence: review text, ratings, titles, verified/incentivized/staff badges, helpful votes, photos, reviewer demographics, rating histograms and GTIN/UPC/EAN identifiers
  • Q&A export: questions with their answers, authors, dates, brand-answer and best-answer flags
  • Server-side filters and six sort orders: brand, category, rating, price, new, sale, advanced facet refinements, and relevance / best selling / top rated / price / newest ordering
  • Empty fields are omitted from each record instead of being returned as null

Output per product

  • productId, brandName, brandId, displayName, productName, skuId — product identity
  • market, country, locale, currency — storefront context
  • rating, reviews, lovesCount — rating and engagement
  • price, priceMin, priceMax, priceText — current price, or price range for multi-variant products
  • listPrice, listPriceMin, listPriceMax, salePrice, salePriceMin, salePriceMax, savingsAmount, savingsPercent — original and discounted pricing
  • isNew, isBestseller, isSephoraExclusive, isLimitedEdition, isLimitedTimeOffer, isOnlineOnly, isOnSale, sponsored — merchandising flags
  • inStock, outOfStockSkus, isReturnable, maxPurchaseQuantity — stock and purchase limits
  • size, shade, variationType, variantsCount, variants[] — size/shade matrix with per-variant price, sale price, stock, image and product URL
  • description, shortDescription, howToUse, ingredients, highlights[] — product content
  • categoryPath[], categoryId, categoryUrl, brandDescription, brandUrl, seoTitle, seoDescription — taxonomy and brand context
  • images[] with url (rehosted when available) and originalUrl; imageOriginal, altImage, altImageOriginal, imageAltText
  • reviewStats with ratingHistogram[], averageRating, totalReviews, recommendation counts, photo/video counts, review dates and vote totals
  • reviewSamples[] — review samples with demographics and badges
  • questions[], questionCount — Q&A embedded in product rows
  • gtins[], upcs[], eans[] — product identifiers when available
  • sourceType, searchTerm, rank, page, searchUrl, categorySlug, brandSlug, sourceUrl, canonicalUrl — where the record came from
  • pickupEligible, pickupNearbyEligible, sameDayEligible, nextDayEligible, shipToHomeEligible — fulfillment flags
  • productUrl, recordType, scrapedAt

Output: per review (mode = reviews)

reviewId, productId, productName, brandName, productUrl, market, country, locale, currency, rating, title, text, author, submittedAt, isRecommended, isVerifiedPurchase, isIncentivized, isStaff, helpfulVotes, notHelpfulVotes, photos[], contentLocale, reviewer (skinType, skinTone, eyeColor, hairColor, ageRange, skinConcerns), recordType, scrapedAt.

Output: per question (mode = questions)

questionId, productId, productName, brandName, productUrl, question, author, submittedAt, answersCount, answers[] (text, author, submittedAt, isBrandAnswer, isBestAnswer, helpfulVotes), market, country, locale, currency, recordType, scrapedAt.

Input

Field Type Default Description
mode string search search, category, brand, product, bestsellers, newArrivals, sale, reviews, questions
searchQueries array [] Keywords for search (1–100)
categories array [] Category slugs, cat... IDs or URLs (category, browse modes; search filter)
brands array [] Brand names, slugs or URLs (brand; optional filter in listing modes)
productUrls array [] Product URLs or P... IDs (product, reviews, questions)
market string us us, ca-en, ca-fr
sortBy string relevance relevance, bestSelling, topRated, priceLowToHigh, priceHighToLow, newArrivals
minRating integer – Minimum average rating (1–5)
priceMin / priceMax integer – Current-price bounds in the selected market's currency
includeNewOnly boolean false Only products flagged new
includeBestsellersOnly boolean false Only products flagged as bestsellers in listing modes
saleOnly boolean false Only discounted products
refinements array [] Facet values such as filters[skinType]=drySk (maximum 20)
includeDetails boolean false Fetch full detail, variants and stock for listing results
includeImages boolean true Rehost product images for public access
maxImagesPerProduct integer 3 Image cap per product (1–20)
includeReviews boolean false Add review samples to product rows
maxReviewsPerProduct integer 20 Review cap per product (1–1000)
reviewsSort string mostHelpful mostHelpful, newest, oldest, highestRating, lowestRating
includeReviewStats boolean false Add histograms, dates, recommendation counts and identifiers
includeQuestions boolean false Add Q&A to product rows
maxQuestionsPerProduct integer 10 Question cap per product (1–200)
maxItems integer 50 Overall record cap (1–10000)
maxItemsPerQuery integer 0 Per-keyword/category/brand/URL cap; 0 means unlimited
onlyNewProducts boolean false Skip product IDs already seen under stateKey
stateKey string default Name of the saved product-ID state
resetState boolean false Clear saved product IDs before the run
proxyConfiguration object off Optional; the catalog and review data work without a proxy

Example: US search with variants, reviews and stock

{
  "mode": "search",
  "searchQueries": ["moisturizer", "serum"],
  "market": "us",
  "sortBy": "topRated",
  "minRating": 4,
  "priceMin": 15,
  "priceMax": 80,
  "includeDetails": true,
  "includeReviewStats": true,
  "maxItems": 20
}

Example: Canada French product with a selected size

{
  "mode": "product",
  "productUrls": [
    "https://www.sephora.com/ca/fr/product/the-ordinary-hyaluronic-acid-2-b5-hydrating-serum-P427419?skuId=2735140"
  ],
  "includeImages": true,
  "includeReviews": true,
  "maxReviewsPerProduct": 5
}

Example: category browse with sale and rating filters

{
  "mode": "category",
  "categories": ["skincare"],
  "market": "us",
  "saleOnly": true,
  "minRating": 4,
  "sortBy": "priceLowToHigh",
  "includeDetails": true,
  "maxItems": 100
}

Example: brand review and Q&A export

{
  "mode": "reviews",
  "productUrls": ["P427419", "P511921"],
  "reviewsSort": "newest",
  "maxReviewsPerProduct": 50,
  "maxItems": 100
}
{
  "mode": "questions",
  "productUrls": ["P427419"],
  "maxQuestionsPerProduct": 25,
  "maxItems": 25
}

Use cases

  • Price and promotion tracking — snapshot current and sale prices, discounts and stock for a watchlist
  • Assortment analysis — compare brand and category catalogs, shade ranges and size options
  • Ingredient and INCI research — export ingredients and highlights for formulation or clean-beauty screening
  • Review intelligence — analyze ratings, review text, photos and reviewer demographics by product or brand
  • Launch monitoring — use newArrivals with onlyNewProducts to capture only newly listed products
  • Q&A and customer-care research — collect questions with answers, including brand and best answers

FAQ

Is this affiliated with Sephora? No. This is an independent third-party actor that reads publicly accessible Sephora catalog and review data. It is not operated by or affiliated with Sephora.

Do I need an account, cookies or an API key? No. The actor uses public catalog and review data and works without login or credentials.

Do I need to configure a proxy? No. Direct requests work for the catalog and review endpoints. A proxy input is available only if you want to route traffic yourself.

Why are some products missing ingredients, highlights or size? Those fields are product-specific. When Sephora does not publish them for a product, the field is omitted rather than filled with a placeholder.

Why do some products show a price range and others a single price? Multi-size or multi-shade products can have different prices. priceMin and priceMax show the current range; price is the default variant's current price. listPrice* and salePrice* keep the original and discounted values separate.

Why are review demographics missing on some reviews? Reviewers choose whether to share skin type, tone, eye color, hair color, age range and concerns. Fields are included only when the reviewer provided them.

Why isn't mainland France supported? The US and Canada storefronts (English and French) are supported. Mainland France is not reachable reliably from the actor's network path, so it is not offered as a market.

Why aren't product videos included? Sephora's video media links are not publicly reachable without a browser session. Product images, descriptions, ingredients and variants are included instead.

Why does a product page show a different price than the dataset? Prices and promotions change frequently, and the dataset reflects the moment of the run. Prices also differ by market and currency; use the market field to compare like with like.

How many records can I get? maxItems caps the run at up to 10,000 records. Search returns up to 60 products per page, while category and brand browsing return up to 200 per page. Very large result sets are split across categories, brands and filters, and duplicates are removed by product, review or question ID.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build CmWi1inWXx3Khxocm. Documentation is regenerated from the default published build; private drafts are not included.