Real-time access to Sephora product data: 8,500+ products with pricing, reviews and ratings, brand and category directories, store locations, and per-store availability. Clean JSON over a normal REST API, so there is no scraping, no proxy rotation, and no HTML parsing to maintain.
Coverage spans the US, Canada, and France.
Built and maintained by Happy Endpoint.
- Subscribe on RapidAPI: https://rapidapi.com/happyendpoint/api/real-time-sephora-api
- Product page: https://happyendpoint.com/library/sephora-api
- Hosted docs: https://happyendpointhq.github.io/sephora-api/
- Product search by keyword, category, or brand
- Full product records with specifications and real-time pricing
- Customer reviews and ratings
- Brand and category directories
- Store locations
- Per-store product availability
- Autocomplete for product name suggestions
Subscribe on RapidAPI. There is a free tier: https://rapidapi.com/happyendpoint/api/real-time-sephora-api
curl "https://real-time-sephora-api.p.rapidapi.com/search-by-keyword?query=moisturizer" \
-H "x-rapidapi-host: real-time-sephora-api.p.rapidapi.com" \
-H "x-rapidapi-key: YOUR_RAPIDAPI_KEY"import os
import requests
HOST = "real-time-sephora-api.p.rapidapi.com"
HEADERS = {
"x-rapidapi-host": HOST,
"x-rapidapi-key": os.environ["RAPIDAPI_KEY"],
}
def get(path, **params):
r = requests.get(
f"https://{HOST}{path}",
params={k: v for k, v in params.items() if v is not None},
headers=HEADERS,
timeout=30,
)
r.raise_for_status()
return r.json()
results = get("/search-by-keyword", query="moisturizer")
brands = get("/brands-list")const HOST = 'real-time-sephora-api.p.rapidapi.com';
async function get(path, params = {}) {
const url = new URL(`https://${HOST}${path}`);
for (const [k, v] of Object.entries(params)) {
if (v != null) url.searchParams.set(k, v);
}
const res = await fetch(url, {
headers: {
'x-rapidapi-host': HOST,
'x-rapidapi-key': process.env.RAPIDAPI_KEY,
},
});
if (!res.ok) throw new Error(`Sephora API ${res.status}`);
return res.json();
}
const results = await get('/search-by-keyword', { query: 'moisturizer' });Base URL: https://real-time-sephora-api.p.rapidapi.com
| Endpoint | Returns |
|---|---|
GET /auto-complete |
Product name suggestions for a partial query |
GET /search-by-keyword |
Products matching a search term |
GET /search-by-category |
Products within a category |
GET /search-by-brand |
Products from a brand |
| Endpoint | Returns |
|---|---|
GET /product-details |
Full record for a single product |
GET /product-reviews |
Customer reviews and ratings |
GET /product-availability |
Stock availability, including per store |
| Endpoint | Returns |
|---|---|
GET /brands-list |
All brands |
GET /categories-list |
Root product categories |
GET /category-data |
Detail for a single category |
GET /store-list |
Store locations |
GET /status |
Service health |
RapidAPI hosts an MCP server, so you can query this API from an AI assistant without writing any code:
{
"mcpServers": {
"Sephora": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.rapidapi.com",
"--header",
"x-api-host: real-time-sephora-api.p.rapidapi.com",
"--header",
"x-api-key: YOUR_RAPIDAPI_KEY"
]
}
}
}| Client | Config path |
|---|---|
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Cursor | ~/.cursor/mcp.json |
| Claude Code | .mcp.json in your project root |
- Price tracking and competitor monitoring for beauty retail
- Product comparison and review aggregation sites
- Affiliate and shopping assistant tools
- Assortment and catalogue analysis
- Availability monitoring across stores
- Sentiment analysis on review text
- Recommendation engines and beauty tech products
No. Sephora does not publish a public product API. This API is built and maintained by Happy Endpoint to provide that access.
Yes. RapidAPI hosts a free plan with a monthly request quota, enough to prototype against.
Scraping a retailer means maintaining selectors that break on every redesign, rotating proxies, handling bot challenges, and accepting that it may breach the site's terms. This is a REST API returning JSON with a stable contract.
The US, Canada, and France.
Yes. /store-list returns store locations and /product-availability reports
availability, including per store.
Yes. Happy Endpoint sells a Sephora US products dataset of 8,000+ products as a one-off file. See happyendpoint.com/datasets or email happyendpointhq@gmail.com.
Yes. IKEA, Tesco, Kohl's, and H&M, among others. See happyendpoint.com/library.
- ikea-api - IKEA product, category, and store data
- priceline-api - hotel, flight, and car rental data
- bayut-api-python-examples - runnable Python patterns that transfer to this API
- bayut-api-postman-collection - our Postman collection format
Happy Endpoint is an independent provider. This project is not affiliated with, endorsed by, sponsored by, or connected to any of the websites, platforms, retailers, or marketplaces referenced here or reachable through the underlying APIs.
All product names, brands, trademarks, and registered trademarks are the property of their respective owners. Any reference to them is descriptive only, to identify the subject matter of the data, and does not imply any association or endorsement.
Users are responsible for ensuring their use of any data complies with applicable laws and the terms of service of the relevant source.
Happy Endpoint builds and maintains real-time data APIs for property portals, retailers, and marketplaces. All APIs are available on RapidAPI with a free tier.
- Catalogue: happyendpoint.com/library
- Datasets: happyendpoint.com/datasets
- Documentation: docs.happyendpoint.com
- Contact: happyendpointhq@gmail.com
MIT. See LICENSE.