**Version: 202601**

# List theme custom templates

**GET** `/openapi/2026-01/themes/:theme_id/theme-templates`

List the custom templates bound to products, collections, or custom pages.

## Request

**Path Parameters**

- `theme_id` string (required)

  Theme ID

**Query Parameters**

- `type` string

  Optional filter by template type: `product`, `collection`, `product_coll`, `page`. Empty returns all types
- `page` int32

  Optional page number for pagination (default: 1)
- `per_page` int32

  Optional page size for pagination (default: 100)

## Responses

**200**

OK

**application/json**

**Schema | Example**

**Schema**

- `code` string

  error code
- `message` string

  error message
- `data` object

  - `count` int32

    Total count of templates
  - `theme_templates` object[]

    Array of theme templates

    *   Array \[

    - `id` string

      Template unique ID
    - `theme_id` string

      Theme ID this template belongs to
    - `store_id` string

      Store ID
    - `doc_id` string

      Underlying doc (template file) ID
    - `type` string

      Template type: `product` (product detail page bound to products), `collection` (collection detail page), `product_coll` (product detail page bound to a collection), `page` (custom page, legacy)
    - `title` string

      Template display name
    - `suffix` string

      Template route suffix
    - `from` string

      Source template suffix the template was copied from
    - `obj_id` string

      The FIRST bound object's ID (product / collection / page id); empty when nothing is bound. A template may be bound to many objects — see `count` for the total; this field never lists them all
    - `obj_title` string

      The first bound object's display title (the same object as `obj_id`)
    - `source` string

      Data-operation source: which entry point wrote this record. Read-only, and not the same as `from`, which is the template this one was copied from
    - `created_at` string

      Created at
    - `updated_at` string

      Updated at
    - `icon` string

      Template icon URL
    - `count` string

      Number of objects bound to this template, returned as a decimal string (e.g. `12`), not as a number
    *   \]

```json
{
  "code": "string",
  "message": "string",
  "data": {
    "count": 0,
    "theme_templates": [
      {
        "id": "string",
        "theme_id": "string",
        "store_id": "string",
        "doc_id": "string",
        "type": "string",
        "title": "string",
        "suffix": "string",
        "from": "string",
        "obj_id": "string",
        "obj_title": "string",
        "source": "string",
        "created_at": "string",
        "updated_at": "string",
        "icon": "string",
        "count": "string"
      }
    ]
  }
}
```
