# Sephora — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and browse Sephora's product catalog to find detailed information about beauty items, including specifications, customer reviews, Q&A discussions, pricing, and real-time availability. Filter products by category or brand, and access comprehensive brand listings to discover exactly what you're looking for.

**Category:** E-commerce | **Website:** [sephora.com/](https://sephora.com/) | **Docs:** [parse.bot/marketplace/703e2c79-3f29-4582-aa21-db6a57868fcf/sephora-com-api](https://parse.bot/marketplace/703e2c79-3f29-4582-aa21-db6a57868fcf/sephora-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-sephora-com-api-703e2c79/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_brands

Retrieve the list of brands available on Sephora with product counts. Aggregates brands from major categories (Skincare, Makeup, Fragrance, Hair). Returns brand name, URL slug, and product count for each brand.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sephora-com-api-703e2c79/get_brands \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_category_products

Retrieve products within a specific Sephora category. Returns products with brand, pricing, rating data, plus facets (brand, price range, rating filters), subcategory groups, sorting options, and total result count. Paginates via page number.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | Yes | Sephora category ID (e.g., 'cat140006' for Makeup, 'cat150006' for Skincare, 'cat130038' for Hair, 'cat130044' for Fragrance) |
| `limit` | integer | No | Number of results per page |
| `page` | integer | No | Page number for pagination |
| `sort` | string | No | Sort option for results |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sephora-com-api-703e2c79/get_category_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>","limit":"<integer>","page":"<integer>","sort":"<string>"}'
```

### get_product_details

Retrieve full product details for a single Sephora product by its product ID. Returns SKU variants with pricing, images, alternate images, action flags, and related ancillary product recommendations. The productId comes from search_products results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_id` | string | Yes | Sephora product ID (e.g., 'P510799') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sephora-com-api-703e2c79/get_product_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product_id":"<string>"}'
```

### get_product_reviews

Retrieve customer reviews for a specific product from Bazaarvoice. Returns paginated review results sorted by most recent submission. Each review includes rating, text, user nickname, submission time, photos, and context data (skin type, age range, etc.).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of reviews to return |
| `offset` | integer | No | Offset for pagination |
| `product_id` | string | Yes | Sephora product ID (e.g., 'P510799') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sephora-com-api-703e2c79/get_product_reviews \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","offset":"<integer>","product_id":"<string>"}'
```

### get_search_autocomplete

Get search suggestions and matching product highlights for a query. Returns categorized suggestions including search term completions, product matches with images and pricing, and category matches. Useful for building type-ahead search interfaces.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search query string |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sephora-com-api-703e2c79/get_search_autocomplete \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```

### search_products

Full-text search over Sephora's product catalog by keyword. Returns matching products with brand, pricing, rating, and image data, plus category facets and total result count. Paginates via page number. Each product carries a productId usable with get_product_details and get_product_reviews.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of results per page |
| `page` | integer | No | Page number for pagination |
| `query` | string | Yes | Search keyword |
| `sort` | string | No | Sort order for results |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sephora-com-api-703e2c79/search_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","page":"<integer>","query":"<string>","sort":"<string>"}'
```
