**Version: 202601**

# List collections

**GET** `/openapi/2026-01/collections`

Retrieves a list of collections based on various filter criteria, such as product\_id, title, or update timestamps.

## Request

**Query Parameters**

- `cursor` string

  Cursor for pagination
- `page_size` int32

  A limit on the number of objects to return. Range: 1-100 (default is 10)
- `page` int32

  Page number (1-based). Mutually exclusive with cursor
- `ids` string[]

  List of collection IDs to retrieve specific collections. Example: ?ids=1001&ids=1002
- `title` string

  Filter collections by their title (supports partial matching)
- `updated_at_min` string

  Minimum timestamp for filtering collections by their last updated date. Format: YYYY-MM-DDTHH:mm:ssZ
- `updated_at_max` string

  Maximum timestamp for filtering collections by their last updated date. Format: YYYY-MM-DDTHH:mm:ssZ
- `product_id` string

  UUID of a product to filter collections that include the product
- `smart` boolean

  Filter whether smart collection

## Responses

**200**

OK

**application/json**

**Schema | Example**

**Schema**

- `code` string

  error code
- `message` string

  error message
- `data` object

  - `collections` object[]

    List of collections

    *   Array \[

    - `id` string

      Collection ID
    - `title` string

      Title
    - `description` string

      Description
    - `handle` string

      URL-friendly identifier (handle)
    - `smart` boolean

      Smart
    - `image` object

      Image

      - `src` string

        The source URL of the image
      - `width` int32

        The width of the image in pixels
      - `height` int32

        The height of the image in pixels
      - `alt` string

        Alt text for the image
    - `seo_title` string

      SEO title
    - `seo_keywords` string[]

      SEO keywords
    - `seo_description` string

      SEO description
    - `sort_order` string

      Sort order
    - `created_at` string

      Creation timestamp, in ISO-8601 format
    - `updated_at` string

      Last update timestamp, in ISO-8601 format
    - `match_rules` object

      Smart collection match rules

      - `disjunctive` boolean

        Whether conditions are disjunctive (OR)
      - `rule_modules` object[]

        List of rule modules

        *   Array \[

        - `disjunctive` boolean

          Whether conditions are disjunctive (OR)
        - `rules` object[]

          List of rules in this module

          *   Array \[

          - `column` string

            Column
          - `relation` string

            Relation
          - `condition` string

            Condition
          *   \]
        *   \]
    - `tags` string[]

      List of tags for the collection
    - `product_count` int64

      Number of products in the collection
    *   \]
  - `cursor` string

    Cursor for pagination
  - `has_more` boolean

    Whether there are more records
  - `total` int32

    Total number of records across all pages (for page-mode pagination)

```json
{
  "code": "string",
  "message": "string",
  "data": {
    "collections": [
      {
        "id": "string",
        "title": "string",
        "description": "string",
        "handle": "string",
        "smart": true,
        "image": {
          "src": "string",
          "width": 0,
          "height": 0,
          "alt": "string"
        },
        "seo_title": "string",
        "seo_keywords": [
          "string"
        ],
        "seo_description": "string",
        "sort_order": "string",
        "created_at": "string",
        "updated_at": "string",
        "match_rules": {
          "disjunctive": true,
          "rule_modules": [
            {
              "disjunctive": true,
              "rules": [
                {
                  "column": "string",
                  "relation": "string",
                  "condition": "string"
                }
              ]
            }
          ]
        },
        "tags": [
          "string"
        ],
        "product_count": 0
      }
    ],
    "cursor": "string",
    "has_more": true,
    "total": 0
  }
}
```
