Yes, you can search Sephora products by an ingredient its filters do not offer. Scavio's Sephora API returns the full ingredient list of every shade and size: page a category such as conditioner with /api/v1/sephora/category, call /api/v1/sephora/product for each result, and keep the products whose skus[].ingredients contain the name you want. On November 2, 2026, 21 of the 60 conditioners on the first page of Sephora's conditioner category listed amodimethicone. Every call is 1 credit, about $0.002 on the Growth plan billed yearly.
The question was asked on r/webscraping: a self-described beginner wanted to find conditioners on sephora.com/shop/conditioner-hair with the ingredient amodimethicone, "since their own filters dont include that", and wanted results from that category only, not a Google site search. The thread still ranks near the top of Google for r/webscraping Sephora questions. Here is the same search as three API steps, with no scraper to write.
Step 1: List the category
curl -s https://api.scavio.dev/api/v1/sephora/category \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"category": "conditioner-hair"}'The name is the last part of the sephora.com/shop/ URL from the thread, and the full URL works too. The response confirms the category and its size:
{
"category": {
"category_id": "cat60131",
"name": "Conditioner",
"seo_name": "conditioner-hair",
"url": "https://www.sephora.com/shop/conditioner-hair",
"page_type": "NthCategory"
},
"page": 1,
"total_results": 264,
"total_pages": 5,
"count": 60,
"parent_category": {
"category_id": "cat1230050",
"name": "Shampoo & Conditioner",
"url": "https://www.sephora.com/shop/shampoo-conditioner"
}
}Each of the 60 products comes with its url, product_id, brand, name, price range, rating and review count. Pass page 2 to 5 for the other 204.
Step 2: Read each product's ingredients
curl -s https://api.scavio.dev/api/v1/sephora/product \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.sephora.com/product/pureology-hydrate-conditioner-P461603"}'Every sku carries the ingredient text as Sephora shows it, key ingredients first. One size of Pureology Hydrate Conditioner, as captured (ingredients cut after the opening of the INCI list):
{
"sku_id": "2390771",
"size": "9 oz/266 mL",
"price": 39,
"in_stock": true,
"ingredients": "-Jojoba: Moisturizes hair.\n-Green Tea: Promotes a healthy-looking scalp.\n-Sage: Supports hair follicles.\n\nAqua / Water / Eau, Cetearyl Alcohol, Amodimethicone, Behentrimonium Chloride, Cetyl Esters, ..."
}Step 3: Filter
import re, requests
API_KEY = "sk_live_your_key" # load from your secret store in real code
H = {"Authorization": f"Bearer {API_KEY}"}
BASE = "https://api.scavio.dev/api/v1/sephora"
def post(endpoint, body):
r = requests.post(f"{BASE}/{endpoint}", headers=H, json=body, timeout=120)
r.raise_for_status()
return r.json()["data"]
matches, page = [], 1
while True:
cat = post("category", {"category": "conditioner-hair", "page": page})
for row in cat["products"]:
item = post("product", {"url": row["url"]})
skus = [s for s in item["skus"] if re.search("amodimethicone", s.get("ingredients") or "", re.I)]
if skus:
matches.append((item["brand"], item["name"], [(s["size"], s["price"]) for s in skus]))
if page >= cat["total_pages"]:
break
page += 1We ran it on the first page. 21 of the 60 products listed amodimethicone in at least one size, including Pureology Hydrate and Strength Cure, Olaplex No.5, OUAI Medium Hair and Thick Hair, Kérastase Gloss Absolu and Première, and four Oribe conditioners. K18 Damage Shield, Kérastase Genesis and Gisou Honey Gloss did not. The category also held a hair mask and a gift set, so check the product name if you only want conditioners.
Check every size, not just one
The sizes of one product do not always share an ingredient list. Moroccanoil Moisture Repair Conditioner returned three sizes with three different lists: the 2.4 oz ($14) included amodimethicone, while the 8.5 oz ($30) and 16.9 oz ($52) did not. Had we read only the size a product page opens on, we would have classed it wrongly. Of the 115 skus across the 60 products, 3 had no ingredient text at all, so treat an empty field as unknown rather than as "free of".
What it costs and how long it takes
The 60 product calls took a median of 3.5 seconds each, from 1.3 to 15.7. A full pass of the conditioner category is 5 category calls plus 264 product calls, 269 credits: about $0.54 on the Growth plan billed yearly, and the 50 free signup credits cover one category page plus 49 product calls. Because ingredient lists change slowly, re-check monthly and run the category pages daily to catch new arrivals. The same pattern works for any ingredient and any category, from niacinamide in face serums to fragrance in moisturizers.
Try the Sephora API free, 50 credits, no card, or run a product call in the playground.
Reference: Sephora API overview · category docs · product docs · how to get Sephora product data · the best Sephora product data APIs
Frequently asked questions
Can you filter Sephora products by ingredient?
Not with Sephora's own filters, as a Reddit poster found: they do not offer a named ingredient such as amodimethicone. To filter by any ingredient, page a category with Scavio's /api/v1/sephora/category and read the ingredients field on each product's skus from /api/v1/sephora/product, then match the name you want.
Do all sizes of a Sephora product have the same ingredients?
Not always. On November 2, 2026 Moroccanoil Moisture Repair Conditioner listed amodimethicone in its 2.4 oz size, while its 8.5 oz and 16.9 oz sizes carried different ingredient lists without it. Check the ingredients of the sku you plan to buy or recommend, not only the first one.
How many API calls does an ingredient search of a Sephora category take?
One category call per 60 products plus one product call per product. Sephora's conditioner category held 264 products on November 2, 2026, so a full pass is 5 category calls and 264 product calls: 269 credits, about $0.54 on Scavio's Growth plan billed yearly.
Is there a free Sephora ingredients dataset?
Kaggle hosts a Sephora products and skincare reviews dataset scraped in March 2023 with more than 8,000 products, which is useful for analysis but frozen in time. Formulas, sizes and prices change, so for current ingredient lists read them live with an API.