---
title: "Get an Ulta Beauty product's full detail"
method: GET
path: "/ulta/product/{productId}"
tags: ["Ulta Beauty"]
---

# Get an Ulta Beauty product's full detail

`GET /ulta/product/{productId}`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/ulta/product/{productId}`
- Auth: API key in header `x-api-key`

Returns one Ulta Beauty product's full detail: name, brand, description, category, pricing, rating, review count, images, and every purchasable color/shade variant. productId is taken from a search result's product_id field or a product page's URL (e.g. pimprod2020260). sku is optional and selects a specific color/shade variant; an omitted or invalid sku still resolves the base product using its own default variant. An unrecognized productId returns 404.

## Path parameters

- `productId` string, required

## Query parameters

- `sku` string

## Headers

- `x-api-key` string, required

## Response `200`

OK

- UltaProductDetailResponseDoc
  - `code` integer
  - `data` UltaProductDetailResponse
    - `brand_name` string
    - `category` string[]
    - `currency_code` string
    - `description` string
    - `fetched_at` string
    - `images` string[]
    - `list_price` string
    - `product_id` string
    - `product_name` string
    - `rating` number
    - `review_count` integer
    - `sale_price` string
    - `sku_id` string
    - `source_url` string
    - `unavailable` boolean
    - `url` string
    - `variants` UltaProductVariant[]
      - `name` string
      - `product_id` string
      - `sku_id` string
  - `msg` string

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `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/028417aa35bb?raw)
