---
title: "List products"
method: GET
path: "/products"
tags: ["Products"]
---

# List products

`GET /products`

List products

**Scopes:**
`products.read`
<br>Guide: <a href="https://api-docs.omnisend.com/docs/how-to-sync-products-catalog-categories" target="_blank">Sync products catalog, categories</a>
<br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>

## Query parameters

- `offset` integer
- `limit` integer
- `sort` 'date' | 'updatedAt' | 'createdAt'

## Headers

- `Omnisend-Version` string, required

## Response `200`

List of products

- ListProductsResponse
  - `paging` Paging
    - `limit` integer
    - `next` string
    - `offset` integer
    - `previous` string
  - `products` Product[]
    - `categoryIDs` string[]
    - `createdAt` string
    - `currency` string, required
    - `defaultImageUrl` string — DefaultImageUrl is recommended if more than one image is needed. Other product images should be added to the Images array.
    - `description` string — Description is a short description of the product. It can be used in the email body.
    - `id` string, required
    - `images` string[]
    - `status` 'inStock' | 'outOfStock' | 'notAvailable', required — Status can be inStock, outOfStock, or notAvailable. We recommended to keep it in sync with your shop product to ensure that Omnisend can avoid sending out-of-stock products to your customers.
    - `tags` string[] — Tags can be used to categorize products.
    - `title` string, required
    - `type` string — Product type can be used to categorize products.
    - `updatedAt` string
    - `url` string, required — Url should point to the product page on the website.
    - `variants` Variant[] — Product variants are different versions of the same product. For example, a T-shirt can have different sizes and colors.
      - `defaultImageUrl` string — DefaultImageUrl is recommended if more than one image is needed. Other product images should be added to the Images array.
      - `description` string — Description is a short description of the product. It can be used in the email body.
      - `id` string, required
      - `images` string[]
      - `price` number, required
      - `sku` string
      - `status` 'inStock' | 'outOfStock' | 'notAvailable' — Status can be inStock, outOfStock, or notAvailable. We recommended to keep it in sync with your shop product to ensure that Omnisend can avoid sending out-of-stock products to your customers.
      - `strikeThroughPrice` number — StrikeThroughPrice is the price before the discount.
      - `title` string, required
      - `url` string, required
    - `vendor` string — Vendor is the manufacturer or the brand of the product.

## Other responses

- `400` — Validation failed
- `401` — Authentication is missing or invalid
- `403` — Insufficient permissions for this operation
- `410` — API version has been retired
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.dev/omnisend/apis/events-api.md) · [All operations](https://skmtc.dev/omnisend/apis/events-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/omnisend/events-api/revisions/50214fbc283f/schema)
