SnozeDevelopers
API referenceTemplates

Browse the template gallery

Lists template listings from every registered provider for this workspace, ranked for the gallery and returned with category facets counted before the category filter is applied. The gallery deliberately shows only this workspace's own templates plus the ones Snoze curates, not every template any workspace made public. `search` and `category` narrow the results, and `source` selects `snoze` (Snoze's builtin starters plus curated listings) or `yours` (this workspace's own); reading the workspace's own rows requires `resources:read`. Paginated: pass `limit` and the `cursor` from the previous response, which continues only the workspace provider so builtin rows are never repeated.

GET
/v1/workspaces/{workspaceId}/template-gallery
AuthorizationBearer <token>

Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.

In: header

Path Parameters

workspaceId*string

Query Parameters

search?string|null
category?string|null
source?string|null
cursor?string|null
limit?string|null

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/workspaces/string/template-gallery"
{  "data": [    {      "id": "string",      "provider": "workspace",      "scope": "builtin",      "reviewStatus": "draft",      "installCount": 0,      "author": {        "workspaceId": "string",        "name": "string",        "icon": "string"      },      "name": "string",      "description": "string",      "icon": "string",      "cover": "string",      "category": "string",      "tags": [        "string"      ],      "kind": "folder",      "inputCount": 0,      "contents": {        "total": 0,        "counts": [          {            "kind": "database",            "count": 0          }        ]      },      "coverPreview": {        "sourceId": "string",        "name": "string",        "kind": "folder",        "icon": "string",        "blocks": [          {            "id": "string",            "parentBlockId": "string",            "kind": "paragraph",            "orderKey": "string",            "manifest": {},            "layout": {              "x": 0,              "y": 0,              "w": 0,              "h": 0,              "tab": "string"            }          }        ],        "fields": [          {            "key": "string",            "label": "string",            "kind": "text",            "options": [              {                "key": "string",                "name": "string",                "color": "string"              }            ]          }        ],        "records": [          {            "id": "string",            "title": "string",            "data": {}          }        ],        "elements": [          {            "id": "string",            "elementType": "rectangle",            "x": 0,            "y": 0,            "w": 0,            "h": 0,            "props": {}          }        ],        "truncated": true      },      "availability": {        "available": true      },      "updatedAt": "string"    }  ],  "cursor": "string",  "hasMore": true,  "facets": [    {      "value": "string",      "count": 0    }  ]}