> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# List Template Versions

> Lists the published versions of a template, newest first, with the changelog and manifest of each one, to pick a version or read what changed.

Returns the ready versions of a template, newest first, up to 100. Versions never change after they are published. Visibility is the one of [Get Template](https://docs.vertracloud.app/api-reference/endpoint/templates/get.md): public templates need no authentication, a private one is visible only to its owner or workspace readers, and anyone else gets `TEMPLATE_NOT_FOUND`. With an API key the scope is `templates:read`. Reads are limited to 60 requests per minute per client.

**template\_id** `string` *required*

The template ID or its slug.

**workspace\_id** `string`

The workspace of a private template. Needed to resolve a workspace template by slug.

You can deploy an earlier version only when the template allows it; see `version` in [Deploy Template](https://docs.vertracloud.app/api-reference/endpoint/templates/deploy.md).

### Response

**response** `object[]`

An array of versions.

**Toggle object**

**id** `string`

The version ID.

**version** `string`

The semantic version, such as `1.2.0`.

**security** `boolean`

`true` for a security release. Owners of applications on an earlier version are told about it.

**created\_at** `string`

When the version was published.

**changelog** `object | null`

What changed, as a text per language (`pt-br`, `en`, `es`), or `null`.

**manifest** `object | null`

The manifest of the version: `id`, `version`, `name`, `description`, `category`, `tags`, `inputs`, `services`, `permissions`, `outputs` and the other fields described in the [manifest reference](https://docs.vertracloud.app/templates/create/manifest-reference.md). Values of hidden variables are never included. It is `null` when the template is closed and you are not its owner.

```bash cURL theme={null}
curl https://api.vertracloud.app/v1/templates/discord-bot-js/versions \
  -H "Authorization: Bearer $VERTRA_API_KEY"
```

```json Response theme={null}
{
  "response": [
    {
      "id": "e0b7a2c9-5d14-4f8e-8c3a-92d6b1f47a10",
      "version": "1.1.0",
      "security": true,
      "created_at": "2026-10-28T10:30:00Z",
      "changelog": { "en": "Updated discord.js to a release with a security fix." },
      "manifest": {
        "id": "discord-bot-js",
        "version": "1.1.0",
        "name": { "pt-br": "Bot de Discord (JavaScript)", "en": "Discord bot (JavaScript)" },
        "description": { "pt-br": "Bot de Discord com discord.js e o comando /ping." },
        "category": "bots",
        "inputs": [{ "id": "discord_token", "type": "secret", "required": true, "label": { "pt-br": "Token do bot", "en": "Bot token" } }],
        "services": {
          "app": {
            "source": { "type": "code", "path": "src" },
            "language": "javascript",
            "main": "index.js",
            "start": "node index.js",
            "ram": { "min": 256, "recommended": 256 },
            "web": "none",
            "env": { "DISCORD_TOKEN": "{{inputs.discord_token}}" }
          }
        }
      }
    },
    {
      "id": "b4f81c36-0a5e-47d2-b1c9-6e3a7d90f2a8",
      "version": "1.0.0",
      "security": false,
      "created_at": "2026-10-26T13:05:00Z",
      "changelog": null,
      "manifest": { "id": "discord-bot-js", "version": "1.0.0", "category": "bots", "services": { "app": { "source": { "type": "code", "path": "src" }, "ram": { "min": 256, "recommended": 256 } } } }
    }
  ]
}
```

### Error Responses

**code** `string`

The error code indicating the reason for the failure. Possible values:

* `VALIDATION_ERROR`: A parameter is not valid (`400`).
* `API_KEY_SCOPE_DENIED`: The API key does not have the `templates:read` scope (`403`).
* `TEMPLATE_NOT_FOUND`: The template does not exist, was removed or is not visible to you (`404`).
* `WORKSPACE_NOT_FOUND`: The workspace in `workspace_id` does not exist or you are not part of it (`404`).
* `RATE_LIMIT_EXCEEDED`: Too many requests (`429`).
* `INTERNAL_SERVER_ERROR`: Unexpected failure (`500`).

```json Error Response theme={null}
{
  "code": "TEMPLATE_NOT_FOUND"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.