# tys.products.retrieve()

> A product by its TryYourSize ID or its SKU.

Source: https://docs.tryyoursize.com/reference/python/products-retrieve/

*Method* · `tryyoursize`

A product by its TryYourSize ID or its SKU.

```python
def retrieve(product: str) -> Product
```

## Parameters

- **`product`** (`str`, required): The product's TryYourSize ID or your SKU (URL-encoded for you).

## Returns

`Product`: The product.

- **`id`** (`string`, required)
- **`external_id`** (`string`, required): The brand's SKU or style ID (unique per brand).
- **`name`** (`string`, required)
- **`category`** (`GarmentCategory`, required): The garment type; it sets which POMs are needed.
- **`published_version`** (`integer`, optional): Garment version shoppers are fitted against, if any.
- **`draft_version`** (`integer`, optional): Garment version being edited, if any.
- **`created_at`** (`string`, required)
- **`updated_at`** (`string`, required)
- **`fit_group_id`** (`string`, optional): The fit group whose garment this product uses (absent until grouped).
- **`brand_id`** (`string`, optional): The brand the product belongs to; every store of the brand sees it.
- **`home_store_id`** (`string`, optional): The store the product was created in.
- **`retired_at`** (`string`, optional): Set when the product is retired; shoppers no longer get a size for it.
- **`available`** (`boolean`, optional): Whether the store it was read through offers it (false in the brand list, see `stores`).

## Example

**Python**

```python
product = tys.products.retrieve("TEE-001")  # TryYourSize ID or your SKU
```

**Node.js**

```ts
const product = await tys.products.retrieve("TEE-001"); // TryYourSize ID or your SKU
```

**cURL**

```bash
curl https://api.tryyoursize.com/v1/products/TEE-001 \
  -H "Authorization: Bearer $TRYYOURSIZE_SECRET_KEY" \
  -H "TYS-Version: 2026-10-25"
```

## See also

- [products.retrieve (HTTP API)](https://docs.tryyoursize.com/api/reference/operations/getcatalogproduct.md)
