> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trychannel3.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Response

Every product in the catalog conforms to the same schema, with high-quality images, rich metadata, and offers across merchants.

## The response shape

**products** `Product[]` *required*

Canonical catalog items matching the request.

**properties**

**id** `string` *required*

Unique Channel3 product ID.

**title** `string` *required*

Display name for the product.

**description** `string | null`

Product description when available.

**brands** `ProductBrand[]`

Ordered list of brands behind the product (`id`, `name`).

**images** `ProductImage[]`

Product images with metadata. Prefer `cleaned_url` for grids — see
[Images](/guides/images#cleaned-images).

**properties**

**url** `string` *required*

Hosted image URL for the shot (regular hero / merchant-hosted asset).

**cleaned\_url** `string | null`

Background-removed square variant on Channel3 CDN when available. Use
for product grids; `url` remains the regular shot.

**is\_main\_image** `boolean`

Whether this is the primary product image.

**is\_cleaned\_image** `boolean` *deprecated*

Deprecated. Always `false` — use `cleaned_url ?? url` for product grids.

**shot\_type** `string | null`

Image type when known (e.g. on-model, flat lay).

**alt\_text** `string | null`

Accessibility text for the image.

**category** `CategorySummary | null`

Taxonomy placement (`slug`, `title`, `path`, `has_children`).

**gender** `string | null`

`male`, `female`, or `unisex`.

**age** `string | null`

Target age group: `newborn`, `infant`, `toddler`, `kids`, or `adult`.

**materials** `string[] | null`

Material composition when known.

**key\_features** `string[] | null`

Highlighted product features.

**offers** `ProductOffer[]`

Retailer listings for this product. Price and buy links live here — not on
the product. See [Offer](/guides/offer).

**properties**

**url** `string` *required*

Buy link / product page at that retailer.

**domain** `string` *required*

Store domain (e.g. `retailer.com`).

**price** `Price` *required*

Current price for this listing.

**properties**

**price** `number` *required*

Current price, including any discounts.

**compare\_at\_price** `number | null`

Original price before discounts, when on sale.

**currency** `string` *required*

ISO currency code (e.g. `USD`, `EUR`).

**availability** `string` *required*

`InStock` or `OutOfStock`.

**condition** `string | null`

`new`, `used`, or `refurbished`. Null when unknown.

**max\_commission\_rate** `number`

Max commission from partner brands (decimal: `0.08` = 8%).

**dimensions** `Dimensions | null`

Physical size and weight for this offer when known.

**variants** `Variants | null`

Variant selector state when the product has options. Absent for single-SKU
products.

**properties**

**options** `VariantOption[]`

Available option dimensions (e.g. Color, Size) and their values.

**selected** `SelectedOption[]`

Currently selected option values (`name`, `label`).

**structured\_attributes** `object`

Category-specific attributes keyed by handle (e.g. `color`, `material`).
Values are canonical strings for that handle.

**next\_page\_token** `string | null`

Opaque token to fetch the next page of results. Null when there are no more
results. See [pagination](/sdk/pagination).

For the full schema, see the [Search API reference](/api-reference/v1/search) or the [Product model](/product-model).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.