---
title: "Sephora product search"
method: GET
path: "/sephora/search"
tags: ["Sephora"]
---

# Sephora product search

`GET /sephora/search`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/sephora/search`
- Auth: API key in header `x-api-key`

Searches Sephora's product catalog by keyword, with real page-based pagination. Returns products with brand, pricing, rating, and review count. Sephora's own search never returns a genuine zero-result state for a nonempty keyword -- an unrecognized/nonsense keyword still returns a full, unrelated fallback result set rather than an empty one. price_min/price_max must be provided together (whole dollars) -- upstream silently ignores a one-sided price range rather than filtering or erroring, so this endpoint rejects a one-sided range as invalid instead of passing it through. brand and filter each accept multiple values (OR'd together within the same facet); brand/rating_min/is_new/filter/price_min/price_max can all be combined with each other (AND'd together across different facets).

## Query parameters

- `query` string, required
- `page` integer
- `page_size` integer
- `sort_by` 'featured' | 'top_rated' | 'new' | 'best_selling' | 'price_low_to_high' | 'price_high_to_low'
- `price_min` integer
- `price_max` integer
- `brand` string[]
- `rating_min` integer
- `is_new` boolean
- `filter` string[]

## Headers

- `x-api-key` string, required

## Response `200`

OK

- SephoraSearchResponseDoc
  - `code` integer
  - `data` SephoraSearchResponse
    - `brand` string[]
    - `count` integer
    - `fetched_at` string
    - `filter` string[]
    - `is_new` boolean
    - `page` integer
    - `page_size` integer
    - `price_max` integer
    - `price_min` integer
    - `products` SephoraSearchProduct[]
      - `brand_name` string
      - `image_url` string
      - `list_price` string
      - `more_colors` integer
      - `product_id` string
      - `product_name` string
      - `rating` number
      - `review_count` integer
      - `sku_id` string
      - `sponsored` boolean
      - `url` string
      - `value_price` string
    - `query` string
    - `rating_min` integer
    - `related_searches` string[]
    - `sort_by` string
    - `source_url` string
    - `total_products` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
