# tys.products.list()

> The store's products, newest first.

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

*Method* · `tryyoursize`

The store's products, newest first. `sku` finds one product by SKU / style ID.

```python
def list(*, sku: Optional[str] = None, limit: Optional[int] = None, cursor: Optional[str] = None) -> ListPage
```

## Parameters

- **`sku`** (`Optional[str]`, optional, default `None`): Find one product by SKU / style ID.
- **`limit`** (`Optional[int]`, optional, default `None`): Page size.
- **`cursor`** (`Optional[str]`, optional, default `None`): `next_cursor` of the previous page.

## Returns

`ListPage`: Products, newest first. A dict with `data`, `has_more`, `next_cursor`; `next_page()` and `auto_paging_iter()` walk the rest. See [ListPage](https://docs.tryyoursize.com/reference/python/list-page.md).

## Example

**Python**

```python
page = tys.products.list(limit=50)

for product in tys.products.list().auto_paging_iter():
    print(product["external_id"], product.get("published_version"))

match = tys.products.list(sku="TEE-001")
```

**Node.js**

```ts
// One page
const page = await tys.products.list({ limit: 50 });

// Every product, across pages
for await (const p of tys.products.list()) {
  console.log(p.external_id, p.published_version);
}

// One product by SKU
const { data } = await tys.products.list({ sku: "TEE-001" });
```

**cURL**

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

## See also

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