---
title: "Search Ulta Beauty products"
method: GET
path: "/ulta/search"
tags: ["Ulta Beauty"]
---

# Search Ulta Beauty products

`GET /ulta/search`

## Request

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

Searches Ulta Beauty's product catalog by keyword, with real page-based pagination. Returns products with brand, pricing, rating, and review count. An unrecognized/nonsense keyword returns a genuine empty result rather than a fallback set. Requesting a page beyond the available results returns a normal, empty result rather than an error.

## Query parameters

- `query` string, required
- `page` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- UltaSearchResponseDoc
  - `code` integer
  - `data` UltaSearchResponse
    - `count` integer
    - `fetched_at` string
    - `has_more` boolean
    - `page` integer
    - `page_size` integer
    - `products` UltaProductSummary[]
      - `brand_name` string
      - `discount` string
      - `image_url` string
      - `is_limited_stock` boolean
      - `list_price` string
      - `product_id` string
      - `product_name` string
      - `promo_text` string
      - `rating` number
      - `review_count` integer
      - `sale_price` string
      - `sku_id` string
      - `sponsored` boolean
      - `url` string
      - `variant_label` string
    - `query` string
    - `result_count` integer
    - `source_url` string
  - `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/0497899e2016?raw)
