get-templates
Returns all templates available to the organization. Each template includes its controls: the configurable fields that drive the design (text inputs, image slots, selects, etc.).
Parameters
None.
Response
| Field | Type | Description |
|---|---|---|
templates | array | List of templates |
templates[].id | string | Unique template identifier |
templates[].name | string | Template name |
templates[].type | string | Template type |
templates[].thumbnail | string | null | Thumbnail URL |
templates[].controls | array | Configurable fields (see below) |
templates[].aiTemplateDescription | string | null | AI-generated description of the template |
templates[].defaultColorPaletteId | string | null | Default color palette ID (palette theming is always on) |
templates[].createdAt | string | ISO date |
templates[].updatedAt | string | ISO date |
count | number | Total number of templates |
Control schema
Each control in templates[].controls:
| Field | Type | Description |
|---|---|---|
id | string | Control identifier |
label | string | Display label |
type | string | One of: text_input, textarea, checkbox, select, number, image, image_video, layer_group_select |
maxCharacters | number (optional) | Character limit for text controls |
options | array (optional) | Available options for select controls |
aspectRatio | string (optional) | Expected aspect ratio for image controls |
Example
Request:
{
"tool": "get-templates",
"arguments": {}
}
Response:
{
"templates": [
{
"id": "tmpl_abc123",
"name": "Instagram Post Product",
"type": "template",
"thumbnail": "https://cdn.heycreo.io/...",
"controls": [
{
"id": "headline",
"label": "Headline",
"type": "text_input",
"maxCharacters": 40
},
{
"id": "product_image",
"label": "Product Image",
"type": "image",
"aspectRatio": "1:1"
}
],
"aiTemplateDescription": "Product showcase with headline and CTA",
"defaultColorPaletteId": "pal_xyz",
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-03-20T14:30:00.000Z"
}
],
"count": 1
}