> ## 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.

# Product

A **product** is a single canonical item in Channel3's catalog — for example "Nike Air Force 1 '07".

Every product has a unique `id`, even when many retailers sell it. Those retailer listings are **[offers](/concepts/offer)**, not separate products.

## Example product

```json theme={null}
{
  "id": "2yh8WH5", // Unique ID for this canonical product
  "title": "Nike Air Force 1 '07",
  ...
  "offers": [
    // One product can have offers from multiple retailers
    {
      "domain": "nike.com",
      "price": { "amount": 110, "currency": "USD" },
      "availability": "InStock",
      "url": "https://www.buy.trychannel3.com/..."
    },
    {
      "domain": "footlocker.com",
      "price": { "amount": 105, "currency": "USD" },
      "availability": "InStock",
      "url": "https://www.buy.trychannel3.com/..."
    }
  ]
}
```

See the full [Product Object](/product-model).

## Get products

Search returns a `products[]` array. Each result is a canonical product, with its offers:

<CodeGroup>
  ```typescript TypeScript theme={null}
  import Channel3 from "@channel3/sdk";

  const client = new Channel3();
  const results = await client.products.search({
    query: "Nike Air Force 1",
  });
  ```

  ```python Python theme={null}
  from channel3_sdk import Channel3

  client = Channel3()
  results = client.products.search(query="Nike Air Force 1")
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.trychannel3.com/v1/search -H "x-api-key: $CHANNEL3_API_KEY" -H "Content-Type: application/json" -d '{"query": "Nike Air Force 1"}'
  ```
</CodeGroup>

## Product detail

To fetch one product by its unique ID, use [product detail](/api-reference/v1/product-detail):

<CodeGroup>
  ```typescript TypeScript theme={null}
  const product = await client.products.retrieve("2yh8WH5");
  ```

  ```python Python theme={null}
  product = client.products.retrieve("2yh8WH5")
  ```

  ```bash cURL theme={null}
  curl https://api.trychannel3.com/v1/products/2yh8WH5 -H "x-api-key: $CHANNEL3_API_KEY"
  ```
</CodeGroup>
