**Version: 202601**

# List market themes

**GET** `/openapi/2026-01/themes/merchant-themes`

Retrieve the installable platform themes in the theme market. Supports filtering by price band, industry, language, category, and features.

## Request

**Query Parameters**

- `price` string

  Filter by price band, comma-separated; values come from `MerchantTheme.price`
- `preset_default` string

  Preset-default filter: `1` returns only preset-default themes. Omit to return all
- `industry` string

  Filter by industry, comma-separated
- `language` string

  Filter by language, comma-separated
- `category` string

  Filter by category, comma-separated; values come from `MerchantTheme.category`
- `features` string

  Filter by features, comma-separated
- `page` int32

  Page number, starts at 1. Omit or pass 0 to use the default (1)
- `limit` int32

  Page size, up to 200. Omit or pass 0 to use the default (200)

## Responses

**200**

OK

**application/json**

**Schema | Example**

**Schema**

- `code` string

  error code
- `message` string

  error message
- `data` object

  - `merchant_themes` object[]

    Installable market themes

    *   Array \[

    - `id` string

      Merchant-theme id
    - `remote_theme_id` string

      Remote theme id (used when installing the theme)
    - `name` string

      Theme display name
    - `type` string

      Theme type: `shoplazza` for internal themes, `developer` for third-party developer themes
    - `category` string

      Theme category
    - `desc` string

      Rich-text theme description (HTML)
    - `preset_name` string

      Preset name
    - `c_version` string

      Current version
    - `version_publish_time` string

      Version publish time, `YYYY-MM-DD HH:MM:SS`
    - `created_at` string

      Creation time, `YYYY-MM-DD HH:MM:SS`
    - `default` string

      Whether this theme is a preset-default theme, as a string boolean: `1` yes, `0` no. Matches the `preset_default` request filter; unrelated to InstallMerchantThemeRequest.default
    - `is_paid` boolean

      Whether the theme is paid
    - `pc_cover_url` string

      PC cover image url
    - `mobile_cover_url` string

      Mobile cover image url
    - `preview_url` string

      Preview url
    - `change_log` string

      Change log (JSON string)
    - `exts` string

      Extra metadata (JSON string: `tags`, `version_type`, ...)
    - `preset_data` object

      Default preset data of the theme (the settings values of `preset_name`)
    - `presets` object

      All available style presets, keyed by preset name — the source of the `preset` parameter when installing this theme
    - `price` object

      Price bands

      - `values` GoogleProtobufValue[]

        Repeated field of dynamically typed values.
    *   \]
  - `total` int32

    Total number of themes
  - `total_pages` int32

    Total number of pages
  - `current_page` int32

    Current page number
  - `limit` int32

    Page size

```json
{
  "code": "string",
  "message": "string",
  "data": {
    "merchant_themes": [
      {
        "id": "string",
        "remote_theme_id": "string",
        "name": "string",
        "type": "string",
        "category": "string",
        "desc": "string",
        "preset_name": "string",
        "c_version": "string",
        "version_publish_time": "string",
        "created_at": "string",
        "default": "string",
        "is_paid": true,
        "pc_cover_url": "string",
        "mobile_cover_url": "string",
        "preview_url": "string",
        "change_log": "string",
        "exts": "string",
        "preset_data": {},
        "presets": {},
        "price": {
          "values": [
            null
          ]
        }
      }
    ],
    "total": 0,
    "total_pages": 0,
    "current_page": 0,
    "limit": 0
  }
}
```
