Resources
List templates
Search, sort, and paginate the templates in a workspace.
GET /api/templatesRequires templates:read.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
workspace | string | Yes | Workspace slug or id. |
search | string | No | Case-insensitive match on the template name. |
collectionId | string | No | Only templates in this template collection. currentCollection in the response then holds its id and name. |
sortBy | string | No | recent (default, by creation), name, or updated. |
page | number | No | Page number. Defaults to 1. |
limit | number | No | Items per page. Defaults to 9, maximum 100. |
curl "https://app.kalpana.one/api/templates?workspace=acme&search=product&sortBy=updated&limit=20" \
--header "x-api-key: $KALPANA_API_KEY"Response
{
"templates": [
{
"id": "tpl_123",
"name": "Product card",
"description": null,
"workspaceId": "ws_123",
"width": 1080,
"height": 1080,
"isAnimated": false,
"createdAt": "2026-09-01T10:00:00.000Z",
"previewImageUrl": "https://cdn.example/preview.png",
"pages": [
{
"id": "page_123",
"name": "Page 1",
"width": 1080,
"height": 1080,
"isAnimated": false,
"previewImageUrl": "https://cdn.example/preview.png"
}
],
"publication": null
}
],
"total": 1,
"page": 1,
"limit": 9,
"currentCollection": null
}List items do not include variables, the design, tags or collections. width and height are the first page's, and isAnimated is true when any page has motion. Each page has an image preview, and previewImageUrl is the first page's that has one. Video previews are not listed. publication is null for every workspace except Kalpana's own gallery workspace. Call Get a template for those.
Errors
| Status | Cause |
|---|---|
403 | Your role or key lacks templates:read. |
Was this page helpful?
Updated 4 Nov 2026