# tys.products.list()

> Newest first.

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

*Method* · `@tryyoursize/node`

Newest first. Await for one page, or `for await` over every product.

```ts
list(params: ProductListParams = {}, options?: RequestOptions): PagePromise<ProductPage, Product>
```

## Parameters

- **`params`** (`ProductListParams`, optional, default `{}`): `limit`, `cursor`, and `sku` to find one product by SKU.
- **`options`** (`RequestOptions`, optional)

## Returns

`PagePromise<ProductPage, Product>`: Products, newest first. Await it for one page (`{ data, has_more, next_cursor }`), or `for await` over every item. See [PagePromise](https://docs.tryyoursize.com/reference/node/page-promise.md).

## Example

**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" });
```

**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")
```

**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)
